diff --git a/.github/actions/build-and-test.yml b/.github/actions/build-and-test.yml new file mode 100644 index 0000000..245b88e --- /dev/null +++ b/.github/actions/build-and-test.yml @@ -0,0 +1,44 @@ +name: "Build and Test" +description: "Builds and test a package" + +inputs: + name: + description: “Name of the package” + required: true + +runs: + using: "composite" + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 16 + + - uses: pnpm/action-setup@v2.0.1 + name: Install pnpm + id: pnpm-install + with: + version: 7 + run_install: false + + - name: Get pnpm store directory + id: pnpm-cache + run: | + echo "::set-output name=pnpm_cache_dir::$(pnpm store path)" + + - uses: actions/cache@v3 + name: Setup pnpm cache + with: + path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} + key: ${{ runner.os }}-lucide-preact-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-lucide-preact-pnpm-store- + + - name: Install dependencies + run: pnpm install --filter lucide-preact + + - name: Build + run: pnpm --filter lucide-preact build + + - name: Test + run: pnpm --filter lucide-preact test diff --git a/.gitignore b/.gitignore index 0be26d5..2333157 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,6 @@ stats outlined packages/**/src/icons/*.js packages/**/src/icons/*.ts +packages/**/src/icons/*.tsx +packages/**/src/aliases.ts packages/**/LICENSE diff --git a/icons/edit-2.json b/icons/edit-2.json index 3d25019..c950d73 100644 --- a/icons/edit-2.json +++ b/icons/edit-2.json @@ -6,5 +6,8 @@ ], "categories": [ "text" + ], + "aliases": [ + "pen" ] -} \ No newline at end of file +} diff --git a/icons/edit-3.json b/icons/edit-3.json index 3d25019..1ebeab2 100644 --- a/icons/edit-3.json +++ b/icons/edit-3.json @@ -6,5 +6,8 @@ ], "categories": [ "text" + ], + "aliases": [ + "pen-line" ] -} \ No newline at end of file +} diff --git a/icons/edit.json b/icons/edit.json index 3d25019..3dcea6e 100644 --- a/icons/edit.json +++ b/icons/edit.json @@ -6,5 +6,8 @@ ], "categories": [ "text" + ], + "aliases": [ + "pen-box" ] -} \ No newline at end of file +} diff --git a/packages/lucide-angular/package.json b/packages/lucide-angular/package.json index 993410d..7786d39 100644 --- a/packages/lucide-angular/package.json +++ b/packages/lucide-angular/package.json @@ -28,7 +28,7 @@ "build": "pnpm clean && pnpm copy:license && pnpm build:icons && pnpm build:ng", "copy:license": "cp ../../LICENSE ./LICENSE", "clean": "rm -rf dist && rm -rf ./src/icons/*.ts", - "build:icons": "node ../../scripts/buildIcons.mjs --output=./src --templateSrc=./scripts/exportTemplate.mjs --iconFileExtension=.ts --exportFileName=index.ts", + "build:icons": "build-icons --output=./src --templateSrc=./scripts/exportTemplate.mjs --iconFileExtension=.ts --exportFileName=index.ts", "build:ng": "ng build --configuration production", "test": "ng test --no-watch --no-progress --browsers=ChromeHeadlessCI", "test:watch": "ng test", @@ -48,6 +48,7 @@ "@angular/core": "~14.2.7", "@angular/platform-browser": "~14.2.7", "@angular/platform-browser-dynamic": "~14.2.7", + "@lucide/build-icons": "workspace:*", "@types/jasmine": "~4.3.0", "@types/node": "^18.11.4", "codelyzer": "^6.0.2", diff --git a/packages/lucide-preact/package.json b/packages/lucide-preact/package.json index 2904e9f..a54cf34 100644 --- a/packages/lucide-preact/package.json +++ b/packages/lucide-preact/package.json @@ -25,7 +25,7 @@ "build": "pnpm clean && pnpm copy:license && pnpm build:icons && pnpm build:bundles && pnpm build:types", "copy:license": "cp ../../LICENSE ./LICENSE", "clean": "rm -rf dist && rm -rf stats && rm -rf ./src/icons/*.js", - "build:icons": "node ../../scripts/buildIcons.mjs --output=./src --templateSrc=./scripts/exportTemplate.mjs --renderUniqueKey --iconFileExtension=.ts --exportFileName=index.ts", + "build:icons": "build-icons --output=./src --templateSrc=./scripts/exportTemplate.mjs --renderUniqueKey --withAliases --aliasesFileExtension=.ts --iconFileExtension=.ts --exportFileName=index.ts", "build:types": "node ./scripts/buildTypes.mjs", "build:bundles": "rollup -c ./rollup.config.mjs", "test": "vitest run", @@ -33,6 +33,7 @@ }, "devDependencies": { "@lucide/rollup-plugins": "workspace:*", + "@lucide/build-icons": "workspace:*", "@preact/preset-vite": "^2.4.0", "@testing-library/jest-dom": "^5.16.5", "@testing-library/preact": "^2.0.1", diff --git a/packages/lucide-preact/rollup.config.mjs b/packages/lucide-preact/rollup.config.mjs index 49add5a..4ba8276 100644 --- a/packages/lucide-preact/rollup.config.mjs +++ b/packages/lucide-preact/rollup.config.mjs @@ -1,4 +1,4 @@ -import plugins from '@lucide/rollup-plugins'; +import plugins, { replace } from '@lucide/rollup-plugins'; import pkg from './package.json' assert { type: "json" }; const packageName = 'LucidePreact'; @@ -39,7 +39,19 @@ const configs = bundles .map(({ inputs, outputDir, format, minify, preserveModules }) => inputs.map(input => ({ input, - plugins: plugins(pkg, minify), + plugins: [ + ...( + format !== 'esm' ? [ + replace({ + "export * from './aliases';": '', + "export * as icons from './icons';": '', + delimiters: ['', ''], + preventAssignment: false, + }), + ] : [] + ), + ...plugins(pkg, minify) + ], external: ['preact', 'prop-types'], output: { name: packageName, diff --git a/packages/lucide-preact/scripts/buildTypes.mjs b/packages/lucide-preact/scripts/buildTypes.mjs index 1bb2247..a6f8095 100644 --- a/packages/lucide-preact/scripts/buildTypes.mjs +++ b/packages/lucide-preact/scripts/buildTypes.mjs @@ -1,18 +1,27 @@ import path from 'path'; +// eslint-disable-next-line import/no-extraneous-dependencies +import { getAliases } from '@lucide/build-icons'; import { writeFile, readSvgDirectory, resetFile, toPascalCase, - appendFile, - getCurrentDirPath + getCurrentDirPath, } from '../../../scripts/helpers.mjs'; -const currentDir = getCurrentDirPath(import.meta.url) +const currentDir = getCurrentDirPath(import.meta.url); const srcDirectory = path.join(currentDir, '../dist'); +const writeDeclarationFile = (typesFile, directory, content) => { + resetFile(typesFile, directory); + writeFile(content, typesFile, directory); +}; + +const ICONS_DIR = path.resolve(currentDir, '../../../icons'); +const TYPES_FILE = 'lucide-preact.d.ts'; + // Declare type definitions -const typeDefinitions = `\ +let declarationFileContent = `\ /// import { JSX, RefObject } from 'preact' @@ -24,23 +33,59 @@ interface LucideProps extends Partial> { strokeWidth?: string | number } +export type LucideIcon = (props: LucideProps) => JSX.Element; + +export type IconNode = [elementName: keyof ReactSVG, attrs: Record][] + +export declare const createLucideIcon: (iconName: string, iconNode: IconNode) => LucideIcon; + // Generated icons `; -const ICONS_DIR = path.resolve(currentDir, '../../../icons'); -const TYPES_FILE = 'lucide-preact.d.ts'; - -resetFile(TYPES_FILE, srcDirectory); -writeFile(typeDefinitions, TYPES_FILE, srcDirectory); - const svgFiles = readSvgDirectory(ICONS_DIR); -svgFiles.forEach(svgFile => { +svgFiles.forEach((svgFile) => { const iconName = path.basename(svgFile, '.svg'); const componentName = toPascalCase(iconName); - const exportTypeString = `export declare const ${componentName}: (props: LucideProps) => JSX.Element;\n`; - appendFile(exportTypeString, TYPES_FILE, srcDirectory); + declarationFileContent += `export declare const ${componentName}: LucideIcon;\n`; }); -console.log(`Generated ${TYPES_FILE} file with`, svgFiles.length, 'icons'); +const aliases = await getAliases(ICONS_DIR); + +declarationFileContent += ` +// Generated icon aliases + +`; + +let aliasesCount = 0; + +svgFiles.forEach((svgFile) => { + const iconName = path.basename(svgFile, '.svg'); + const componentName = toPascalCase(iconName); + const iconAliases = aliases[iconName]?.aliases; + + declarationFileContent += `// ${componentName} aliases\n`; + declarationFileContent += `export declare const ${componentName}Icon: LucideIcon;\n`; + declarationFileContent += `export declare const Lucide${componentName}: LucideIcon;\n`; + aliasesCount += 1; + if (iconAliases != null && Array.isArray(iconAliases)) { + iconAliases.forEach((alias) => { + const componentNameAlias = toPascalCase(alias); + declarationFileContent += `export declare const ${componentNameAlias}: LucideIcon;\n`; + + aliasesCount += 1; + }); + } + + declarationFileContent += '\n'; +}); + +writeDeclarationFile(TYPES_FILE, srcDirectory, declarationFileContent); +console.log( + `Generated ${TYPES_FILE} file with`, + svgFiles.length, + 'icons and with', + aliasesCount, + 'aliases', +); diff --git a/packages/lucide-preact/scripts/exportTemplate.mjs b/packages/lucide-preact/scripts/exportTemplate.mjs index 580bcf2..ee09fea 100644 --- a/packages/lucide-preact/scripts/exportTemplate.mjs +++ b/packages/lucide-preact/scripts/exportTemplate.mjs @@ -1,7 +1,7 @@ export default ({ componentName, children }) => ` -import createPreactComponent from '../createPreactComponent'; +import createLucideIcon from '../createLucideIcon'; -const ${componentName} = createPreactComponent('${componentName}', ${JSON.stringify(children)}); +const ${componentName} = createLucideIcon('${componentName}', ${JSON.stringify(children)}); export default ${componentName}; `; diff --git a/packages/lucide-preact/src/createPreactComponent.ts b/packages/lucide-preact/src/createLucideIcon.ts similarity index 76% rename from packages/lucide-preact/src/createPreactComponent.ts rename to packages/lucide-preact/src/createLucideIcon.ts index a823729..b453363 100644 --- a/packages/lucide-preact/src/createPreactComponent.ts +++ b/packages/lucide-preact/src/createLucideIcon.ts @@ -1,15 +1,14 @@ -import { ComponentType, h, JSX, toChildArray } from 'preact'; +import { ComponentType, FunctionComponent, h, JSX, RefObject, toChildArray } from 'preact'; import defaultAttributes from './defaultAttributes'; type IconNode = [elementName: keyof JSX.IntrinsicElements, attrs: Record][] -interface LucideProps extends Omit, "ref" | "size"> { +interface LucideProps extends Partial> { + color?: string size?: string | number - color: string + strokeWidth?: string | number } - - /** * Converts string to KebabCase * Copied from scripts/helper. If anyone knows how to properly import it here @@ -20,7 +19,7 @@ interface LucideProps extends Omit, "ref" | "size" */ export const toKebabCase = (string: string) => string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase(); -const createPreactComponent = (iconName: string, iconNode: IconNode) => { +const createLucideIcon = (iconName: string, iconNode: IconNode): FunctionComponent => { const Component = ( { color = 'currentColor', size = 24, strokeWidth = 2, children, ...rest }: LucideProps ) => @@ -43,4 +42,4 @@ const createPreactComponent = (iconName: string, iconNode: IconNode) => { return Component; }; -export default createPreactComponent +export default createLucideIcon diff --git a/packages/lucide-preact/src/lucide-preact.ts b/packages/lucide-preact/src/lucide-preact.ts index 838008a..2ddd5eb 100644 --- a/packages/lucide-preact/src/lucide-preact.ts +++ b/packages/lucide-preact/src/lucide-preact.ts @@ -1 +1,4 @@ export * from './icons'; +export * as icons from './icons'; +export * from './aliases'; +export { default as createLucideIcon } from './createLucideIcon'; diff --git a/packages/lucide-preact/tests/lucide-preact.spec.tsx b/packages/lucide-preact/tests/lucide-preact.spec.tsx index a7fc9e5..d79f180 100644 --- a/packages/lucide-preact/tests/lucide-preact.spec.tsx +++ b/packages/lucide-preact/tests/lucide-preact.spec.tsx @@ -1,6 +1,6 @@ import { describe, it, expect } from 'vitest'; -import { render } from '@testing-library/preact' -import { Grid } from '../src/icons' +import { render, cleanup } from '@testing-library/preact' +import { Pen, Edit2, Grid } from '../src/lucide-preact'; describe('Using lucide icon components', () => { it('should render an component', () => { @@ -27,4 +27,31 @@ describe('Using lucide icon components', () => { expect(attributes['stroke-width'].value).toBe('4'); expect( container.innerHTML ).toMatchSnapshot(); }); + + it('should render the alias icon', () => { + const testId = 'pen-icon'; + const { container } = render( + , + ); + + const PenIconRenderedHTML = container.innerHTML + + cleanup() + + const { container: Edit2Container } = render( + , + ); + + expect(PenIconRenderedHTML).toBe(Edit2Container.innerHTML) + }); }) diff --git a/packages/lucide-preact/tsconfig.json b/packages/lucide-preact/tsconfig.json index f5c5ed5..73575d5 100644 --- a/packages/lucide-preact/tsconfig.json +++ b/packages/lucide-preact/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "strict": true, - "declaration": true, + "declaration": false, "noEmitOnError": true, "noEmit": true, "noFallthroughCasesInSwitch": true, @@ -17,7 +17,6 @@ "downlevelIteration": true, "sourceMap": true, "outDir": "./dist", - "declarationMap": true, "jsx": "react-jsx", "jsxImportSource": "preact", }, diff --git a/packages/lucide-react-native/lucide-react-native.d.ts b/packages/lucide-react-native/lucide-react-native.d.ts new file mode 100644 index 0000000..ec23492 --- /dev/null +++ b/packages/lucide-react-native/lucide-react-native.d.ts @@ -0,0 +1,883 @@ +/// + +declare module 'lucide-react-native' + +// Create interface extending SVGProps +export interface LucideProps extends Partial> { + size?: string | number +} + +export declare const createLucideIcon: (iconName: string, iconNode: any[]) => (props: LucideProps) => JSX.Element; + +export type Icon = React.FC; + +// Generated icons +export declare const Accessibility: (props: LucideProps) => JSX.Element; +export declare const Activity: (props: LucideProps) => JSX.Element; +export declare const AirVent: (props: LucideProps) => JSX.Element; +export declare const Airplay: (props: LucideProps) => JSX.Element; +export declare const AlarmCheck: (props: LucideProps) => JSX.Element; +export declare const AlarmClockOff: (props: LucideProps) => JSX.Element; +export declare const AlarmClock: (props: LucideProps) => JSX.Element; +export declare const AlarmMinus: (props: LucideProps) => JSX.Element; +export declare const AlarmPlus: (props: LucideProps) => JSX.Element; +export declare const Album: (props: LucideProps) => JSX.Element; +export declare const AlertCircle: (props: LucideProps) => JSX.Element; +export declare const AlertOctagon: (props: LucideProps) => JSX.Element; +export declare const AlertTriangle: (props: LucideProps) => JSX.Element; +export declare const AlignCenterHorizontal: (props: LucideProps) => JSX.Element; +export declare const AlignCenterVertical: (props: LucideProps) => JSX.Element; +export declare const AlignCenter: (props: LucideProps) => JSX.Element; +export declare const AlignEndHorizontal: (props: LucideProps) => JSX.Element; +export declare const AlignEndVertical: (props: LucideProps) => JSX.Element; +export declare const AlignHorizontalDistributeCenter: (props: LucideProps) => JSX.Element; +export declare const AlignHorizontalDistributeEnd: (props: LucideProps) => JSX.Element; +export declare const AlignHorizontalDistributeStart: (props: LucideProps) => JSX.Element; +export declare const AlignHorizontalJustifyCenter: (props: LucideProps) => JSX.Element; +export declare const AlignHorizontalJustifyEnd: (props: LucideProps) => JSX.Element; +export declare const AlignHorizontalJustifyStart: (props: LucideProps) => JSX.Element; +export declare const AlignHorizontalSpaceAround: (props: LucideProps) => JSX.Element; +export declare const AlignHorizontalSpaceBetween: (props: LucideProps) => JSX.Element; +export declare const AlignJustify: (props: LucideProps) => JSX.Element; +export declare const AlignLeft: (props: LucideProps) => JSX.Element; +export declare const AlignRight: (props: LucideProps) => JSX.Element; +export declare const AlignStartHorizontal: (props: LucideProps) => JSX.Element; +export declare const AlignStartVertical: (props: LucideProps) => JSX.Element; +export declare const AlignVerticalDistributeCenter: (props: LucideProps) => JSX.Element; +export declare const AlignVerticalDistributeEnd: (props: LucideProps) => JSX.Element; +export declare const AlignVerticalDistributeStart: (props: LucideProps) => JSX.Element; +export declare const AlignVerticalJustifyCenter: (props: LucideProps) => JSX.Element; +export declare const AlignVerticalJustifyEnd: (props: LucideProps) => JSX.Element; +export declare const AlignVerticalJustifyStart: (props: LucideProps) => JSX.Element; +export declare const AlignVerticalSpaceAround: (props: LucideProps) => JSX.Element; +export declare const AlignVerticalSpaceBetween: (props: LucideProps) => JSX.Element; +export declare const Anchor: (props: LucideProps) => JSX.Element; +export declare const Angry: (props: LucideProps) => JSX.Element; +export declare const Annoyed: (props: LucideProps) => JSX.Element; +export declare const Aperture: (props: LucideProps) => JSX.Element; +export declare const Apple: (props: LucideProps) => JSX.Element; +export declare const ArchiveRestore: (props: LucideProps) => JSX.Element; +export declare const Archive: (props: LucideProps) => JSX.Element; +export declare const Armchair: (props: LucideProps) => JSX.Element; +export declare const ArrowBigDown: (props: LucideProps) => JSX.Element; +export declare const ArrowBigLeft: (props: LucideProps) => JSX.Element; +export declare const ArrowBigRight: (props: LucideProps) => JSX.Element; +export declare const ArrowBigUp: (props: LucideProps) => JSX.Element; +export declare const ArrowDownCircle: (props: LucideProps) => JSX.Element; +export declare const ArrowDownLeft: (props: LucideProps) => JSX.Element; +export declare const ArrowDownRight: (props: LucideProps) => JSX.Element; +export declare const ArrowDown: (props: LucideProps) => JSX.Element; +export declare const ArrowLeftCircle: (props: LucideProps) => JSX.Element; +export declare const ArrowLeftRight: (props: LucideProps) => JSX.Element; +export declare const ArrowLeft: (props: LucideProps) => JSX.Element; +export declare const ArrowRightCircle: (props: LucideProps) => JSX.Element; +export declare const ArrowRight: (props: LucideProps) => JSX.Element; +export declare const ArrowUpCircle: (props: LucideProps) => JSX.Element; +export declare const ArrowUpDown: (props: LucideProps) => JSX.Element; +export declare const ArrowUpLeft: (props: LucideProps) => JSX.Element; +export declare const ArrowUpRight: (props: LucideProps) => JSX.Element; +export declare const ArrowUp: (props: LucideProps) => JSX.Element; +export declare const Asterisk: (props: LucideProps) => JSX.Element; +export declare const AtSign: (props: LucideProps) => JSX.Element; +export declare const Award: (props: LucideProps) => JSX.Element; +export declare const Axe: (props: LucideProps) => JSX.Element; +export declare const Axis3d: (props: LucideProps) => JSX.Element; +export declare const Baby: (props: LucideProps) => JSX.Element; +export declare const Backpack: (props: LucideProps) => JSX.Element; +export declare const BaggageClaim: (props: LucideProps) => JSX.Element; +export declare const Banana: (props: LucideProps) => JSX.Element; +export declare const Banknote: (props: LucideProps) => JSX.Element; +export declare const BarChart2: (props: LucideProps) => JSX.Element; +export declare const BarChart3: (props: LucideProps) => JSX.Element; +export declare const BarChart4: (props: LucideProps) => JSX.Element; +export declare const BarChartHorizontal: (props: LucideProps) => JSX.Element; +export declare const BarChart: (props: LucideProps) => JSX.Element; +export declare const Baseline: (props: LucideProps) => JSX.Element; +export declare const Bath: (props: LucideProps) => JSX.Element; +export declare const BatteryCharging: (props: LucideProps) => JSX.Element; +export declare const BatteryFull: (props: LucideProps) => JSX.Element; +export declare const BatteryLow: (props: LucideProps) => JSX.Element; +export declare const BatteryMedium: (props: LucideProps) => JSX.Element; +export declare const Battery: (props: LucideProps) => JSX.Element; +export declare const Beaker: (props: LucideProps) => JSX.Element; +export declare const BeanOff: (props: LucideProps) => JSX.Element; +export declare const Bean: (props: LucideProps) => JSX.Element; +export declare const BedDouble: (props: LucideProps) => JSX.Element; +export declare const BedSingle: (props: LucideProps) => JSX.Element; +export declare const Bed: (props: LucideProps) => JSX.Element; +export declare const Beer: (props: LucideProps) => JSX.Element; +export declare const BellMinus: (props: LucideProps) => JSX.Element; +export declare const BellOff: (props: LucideProps) => JSX.Element; +export declare const BellPlus: (props: LucideProps) => JSX.Element; +export declare const BellRing: (props: LucideProps) => JSX.Element; +export declare const Bell: (props: LucideProps) => JSX.Element; +export declare const Bike: (props: LucideProps) => JSX.Element; +export declare const Binary: (props: LucideProps) => JSX.Element; +export declare const Bitcoin: (props: LucideProps) => JSX.Element; +export declare const BluetoothConnected: (props: LucideProps) => JSX.Element; +export declare const BluetoothOff: (props: LucideProps) => JSX.Element; +export declare const BluetoothSearching: (props: LucideProps) => JSX.Element; +export declare const Bluetooth: (props: LucideProps) => JSX.Element; +export declare const Bold: (props: LucideProps) => JSX.Element; +export declare const Bomb: (props: LucideProps) => JSX.Element; +export declare const Bone: (props: LucideProps) => JSX.Element; +export declare const BookOpenCheck: (props: LucideProps) => JSX.Element; +export declare const BookOpen: (props: LucideProps) => JSX.Element; +export declare const Book: (props: LucideProps) => JSX.Element; +export declare const BookmarkMinus: (props: LucideProps) => JSX.Element; +export declare const BookmarkPlus: (props: LucideProps) => JSX.Element; +export declare const Bookmark: (props: LucideProps) => JSX.Element; +export declare const Bot: (props: LucideProps) => JSX.Element; +export declare const BoxSelect: (props: LucideProps) => JSX.Element; +export declare const Box: (props: LucideProps) => JSX.Element; +export declare const Boxes: (props: LucideProps) => JSX.Element; +export declare const Briefcase: (props: LucideProps) => JSX.Element; +export declare const Brush: (props: LucideProps) => JSX.Element; +export declare const Bug: (props: LucideProps) => JSX.Element; +export declare const Building2: (props: LucideProps) => JSX.Element; +export declare const Building: (props: LucideProps) => JSX.Element; +export declare const Bus: (props: LucideProps) => JSX.Element; +export declare const Cake: (props: LucideProps) => JSX.Element; +export declare const Calculator: (props: LucideProps) => JSX.Element; +export declare const CalendarCheck2: (props: LucideProps) => JSX.Element; +export declare const CalendarCheck: (props: LucideProps) => JSX.Element; +export declare const CalendarClock: (props: LucideProps) => JSX.Element; +export declare const CalendarDays: (props: LucideProps) => JSX.Element; +export declare const CalendarHeart: (props: LucideProps) => JSX.Element; +export declare const CalendarMinus: (props: LucideProps) => JSX.Element; +export declare const CalendarOff: (props: LucideProps) => JSX.Element; +export declare const CalendarPlus: (props: LucideProps) => JSX.Element; +export declare const CalendarRange: (props: LucideProps) => JSX.Element; +export declare const CalendarSearch: (props: LucideProps) => JSX.Element; +export declare const CalendarX2: (props: LucideProps) => JSX.Element; +export declare const CalendarX: (props: LucideProps) => JSX.Element; +export declare const Calendar: (props: LucideProps) => JSX.Element; +export declare const CameraOff: (props: LucideProps) => JSX.Element; +export declare const Camera: (props: LucideProps) => JSX.Element; +export declare const CandyOff: (props: LucideProps) => JSX.Element; +export declare const Candy: (props: LucideProps) => JSX.Element; +export declare const Car: (props: LucideProps) => JSX.Element; +export declare const Carrot: (props: LucideProps) => JSX.Element; +export declare const Cast: (props: LucideProps) => JSX.Element; +export declare const Cat: (props: LucideProps) => JSX.Element; +export declare const CheckCheck: (props: LucideProps) => JSX.Element; +export declare const CheckCircle2: (props: LucideProps) => JSX.Element; +export declare const CheckCircle: (props: LucideProps) => JSX.Element; +export declare const CheckSquare: (props: LucideProps) => JSX.Element; +export declare const Check: (props: LucideProps) => JSX.Element; +export declare const ChefHat: (props: LucideProps) => JSX.Element; +export declare const Cherry: (props: LucideProps) => JSX.Element; +export declare const ChevronDown: (props: LucideProps) => JSX.Element; +export declare const ChevronFirst: (props: LucideProps) => JSX.Element; +export declare const ChevronLast: (props: LucideProps) => JSX.Element; +export declare const ChevronLeft: (props: LucideProps) => JSX.Element; +export declare const ChevronRight: (props: LucideProps) => JSX.Element; +export declare const ChevronUp: (props: LucideProps) => JSX.Element; +export declare const ChevronsDownUp: (props: LucideProps) => JSX.Element; +export declare const ChevronsDown: (props: LucideProps) => JSX.Element; +export declare const ChevronsLeftRight: (props: LucideProps) => JSX.Element; +export declare const ChevronsLeft: (props: LucideProps) => JSX.Element; +export declare const ChevronsRightLeft: (props: LucideProps) => JSX.Element; +export declare const ChevronsRight: (props: LucideProps) => JSX.Element; +export declare const ChevronsUpDown: (props: LucideProps) => JSX.Element; +export declare const ChevronsUp: (props: LucideProps) => JSX.Element; +export declare const Chrome: (props: LucideProps) => JSX.Element; +export declare const CigaretteOff: (props: LucideProps) => JSX.Element; +export declare const Cigarette: (props: LucideProps) => JSX.Element; +export declare const CircleDot: (props: LucideProps) => JSX.Element; +export declare const CircleEllipsis: (props: LucideProps) => JSX.Element; +export declare const CircleSlashed: (props: LucideProps) => JSX.Element; +export declare const Circle: (props: LucideProps) => JSX.Element; +export declare const Citrus: (props: LucideProps) => JSX.Element; +export declare const Clapperboard: (props: LucideProps) => JSX.Element; +export declare const ClipboardCheck: (props: LucideProps) => JSX.Element; +export declare const ClipboardCopy: (props: LucideProps) => JSX.Element; +export declare const ClipboardEdit: (props: LucideProps) => JSX.Element; +export declare const ClipboardList: (props: LucideProps) => JSX.Element; +export declare const ClipboardSignature: (props: LucideProps) => JSX.Element; +export declare const ClipboardType: (props: LucideProps) => JSX.Element; +export declare const ClipboardX: (props: LucideProps) => JSX.Element; +export declare const Clipboard: (props: LucideProps) => JSX.Element; +export declare const Clock1: (props: LucideProps) => JSX.Element; +export declare const Clock10: (props: LucideProps) => JSX.Element; +export declare const Clock11: (props: LucideProps) => JSX.Element; +export declare const Clock12: (props: LucideProps) => JSX.Element; +export declare const Clock2: (props: LucideProps) => JSX.Element; +export declare const Clock3: (props: LucideProps) => JSX.Element; +export declare const Clock4: (props: LucideProps) => JSX.Element; +export declare const Clock5: (props: LucideProps) => JSX.Element; +export declare const Clock6: (props: LucideProps) => JSX.Element; +export declare const Clock7: (props: LucideProps) => JSX.Element; +export declare const Clock8: (props: LucideProps) => JSX.Element; +export declare const Clock9: (props: LucideProps) => JSX.Element; +export declare const Clock: (props: LucideProps) => JSX.Element; +export declare const CloudCog: (props: LucideProps) => JSX.Element; +export declare const CloudDrizzle: (props: LucideProps) => JSX.Element; +export declare const CloudFog: (props: LucideProps) => JSX.Element; +export declare const CloudHail: (props: LucideProps) => JSX.Element; +export declare const CloudLightning: (props: LucideProps) => JSX.Element; +export declare const CloudMoonRain: (props: LucideProps) => JSX.Element; +export declare const CloudMoon: (props: LucideProps) => JSX.Element; +export declare const CloudOff: (props: LucideProps) => JSX.Element; +export declare const CloudRainWind: (props: LucideProps) => JSX.Element; +export declare const CloudRain: (props: LucideProps) => JSX.Element; +export declare const CloudSnow: (props: LucideProps) => JSX.Element; +export declare const CloudSunRain: (props: LucideProps) => JSX.Element; +export declare const CloudSun: (props: LucideProps) => JSX.Element; +export declare const Cloud: (props: LucideProps) => JSX.Element; +export declare const Cloudy: (props: LucideProps) => JSX.Element; +export declare const Clover: (props: LucideProps) => JSX.Element; +export declare const Code2: (props: LucideProps) => JSX.Element; +export declare const Code: (props: LucideProps) => JSX.Element; +export declare const Codepen: (props: LucideProps) => JSX.Element; +export declare const Codesandbox: (props: LucideProps) => JSX.Element; +export declare const Coffee: (props: LucideProps) => JSX.Element; +export declare const Cog: (props: LucideProps) => JSX.Element; +export declare const Coins: (props: LucideProps) => JSX.Element; +export declare const Columns: (props: LucideProps) => JSX.Element; +export declare const Command: (props: LucideProps) => JSX.Element; +export declare const Compass: (props: LucideProps) => JSX.Element; +export declare const Component: (props: LucideProps) => JSX.Element; +export declare const ConciergeBell: (props: LucideProps) => JSX.Element; +export declare const Contact: (props: LucideProps) => JSX.Element; +export declare const Contrast: (props: LucideProps) => JSX.Element; +export declare const Cookie: (props: LucideProps) => JSX.Element; +export declare const Copy: (props: LucideProps) => JSX.Element; +export declare const Copyleft: (props: LucideProps) => JSX.Element; +export declare const Copyright: (props: LucideProps) => JSX.Element; +export declare const CornerDownLeft: (props: LucideProps) => JSX.Element; +export declare const CornerDownRight: (props: LucideProps) => JSX.Element; +export declare const CornerLeftDown: (props: LucideProps) => JSX.Element; +export declare const CornerLeftUp: (props: LucideProps) => JSX.Element; +export declare const CornerRightDown: (props: LucideProps) => JSX.Element; +export declare const CornerRightUp: (props: LucideProps) => JSX.Element; +export declare const CornerUpLeft: (props: LucideProps) => JSX.Element; +export declare const CornerUpRight: (props: LucideProps) => JSX.Element; +export declare const Cpu: (props: LucideProps) => JSX.Element; +export declare const CreditCard: (props: LucideProps) => JSX.Element; +export declare const Croissant: (props: LucideProps) => JSX.Element; +export declare const Crop: (props: LucideProps) => JSX.Element; +export declare const Cross: (props: LucideProps) => JSX.Element; +export declare const Crosshair: (props: LucideProps) => JSX.Element; +export declare const Crown: (props: LucideProps) => JSX.Element; +export declare const CupSoda: (props: LucideProps) => JSX.Element; +export declare const CurlyBraces: (props: LucideProps) => JSX.Element; +export declare const Currency: (props: LucideProps) => JSX.Element; +export declare const Database: (props: LucideProps) => JSX.Element; +export declare const Delete: (props: LucideProps) => JSX.Element; +export declare const Diamond: (props: LucideProps) => JSX.Element; +export declare const Dice1: (props: LucideProps) => JSX.Element; +export declare const Dice2: (props: LucideProps) => JSX.Element; +export declare const Dice3: (props: LucideProps) => JSX.Element; +export declare const Dice4: (props: LucideProps) => JSX.Element; +export declare const Dice5: (props: LucideProps) => JSX.Element; +export declare const Dice6: (props: LucideProps) => JSX.Element; +export declare const Dices: (props: LucideProps) => JSX.Element; +export declare const Diff: (props: LucideProps) => JSX.Element; +export declare const Disc: (props: LucideProps) => JSX.Element; +export declare const DivideCircle: (props: LucideProps) => JSX.Element; +export declare const DivideSquare: (props: LucideProps) => JSX.Element; +export declare const Divide: (props: LucideProps) => JSX.Element; +export declare const DnaOff: (props: LucideProps) => JSX.Element; +export declare const Dna: (props: LucideProps) => JSX.Element; +export declare const Dog: (props: LucideProps) => JSX.Element; +export declare const DollarSign: (props: LucideProps) => JSX.Element; +export declare const DownloadCloud: (props: LucideProps) => JSX.Element; +export declare const Download: (props: LucideProps) => JSX.Element; +export declare const Dribbble: (props: LucideProps) => JSX.Element; +export declare const Droplet: (props: LucideProps) => JSX.Element; +export declare const Droplets: (props: LucideProps) => JSX.Element; +export declare const Drumstick: (props: LucideProps) => JSX.Element; +export declare const Dumbbell: (props: LucideProps) => JSX.Element; +export declare const EarOff: (props: LucideProps) => JSX.Element; +export declare const Ear: (props: LucideProps) => JSX.Element; +export declare const Edit2: (props: LucideProps) => JSX.Element; +export declare const Edit3: (props: LucideProps) => JSX.Element; +export declare const Edit: (props: LucideProps) => JSX.Element; +export declare const EggFried: (props: LucideProps) => JSX.Element; +export declare const EggOff: (props: LucideProps) => JSX.Element; +export declare const Egg: (props: LucideProps) => JSX.Element; +export declare const EqualNot: (props: LucideProps) => JSX.Element; +export declare const Equal: (props: LucideProps) => JSX.Element; +export declare const Eraser: (props: LucideProps) => JSX.Element; +export declare const Euro: (props: LucideProps) => JSX.Element; +export declare const Expand: (props: LucideProps) => JSX.Element; +export declare const ExternalLink: (props: LucideProps) => JSX.Element; +export declare const EyeOff: (props: LucideProps) => JSX.Element; +export declare const Eye: (props: LucideProps) => JSX.Element; +export declare const Facebook: (props: LucideProps) => JSX.Element; +export declare const Factory: (props: LucideProps) => JSX.Element; +export declare const Fan: (props: LucideProps) => JSX.Element; +export declare const FastForward: (props: LucideProps) => JSX.Element; +export declare const Feather: (props: LucideProps) => JSX.Element; +export declare const Figma: (props: LucideProps) => JSX.Element; +export declare const FileArchive: (props: LucideProps) => JSX.Element; +export declare const FileAudio2: (props: LucideProps) => JSX.Element; +export declare const FileAudio: (props: LucideProps) => JSX.Element; +export declare const FileAxis3d: (props: LucideProps) => JSX.Element; +export declare const FileBadge2: (props: LucideProps) => JSX.Element; +export declare const FileBadge: (props: LucideProps) => JSX.Element; +export declare const FileBarChart2: (props: LucideProps) => JSX.Element; +export declare const FileBarChart: (props: LucideProps) => JSX.Element; +export declare const FileBox: (props: LucideProps) => JSX.Element; +export declare const FileCheck2: (props: LucideProps) => JSX.Element; +export declare const FileCheck: (props: LucideProps) => JSX.Element; +export declare const FileClock: (props: LucideProps) => JSX.Element; +export declare const FileCode: (props: LucideProps) => JSX.Element; +export declare const FileCog2: (props: LucideProps) => JSX.Element; +export declare const FileCog: (props: LucideProps) => JSX.Element; +export declare const FileDiff: (props: LucideProps) => JSX.Element; +export declare const FileDigit: (props: LucideProps) => JSX.Element; +export declare const FileDown: (props: LucideProps) => JSX.Element; +export declare const FileEdit: (props: LucideProps) => JSX.Element; +export declare const FileHeart: (props: LucideProps) => JSX.Element; +export declare const FileImage: (props: LucideProps) => JSX.Element; +export declare const FileInput: (props: LucideProps) => JSX.Element; +export declare const FileJson2: (props: LucideProps) => JSX.Element; +export declare const FileJson: (props: LucideProps) => JSX.Element; +export declare const FileKey2: (props: LucideProps) => JSX.Element; +export declare const FileKey: (props: LucideProps) => JSX.Element; +export declare const FileLineChart: (props: LucideProps) => JSX.Element; +export declare const FileLock2: (props: LucideProps) => JSX.Element; +export declare const FileLock: (props: LucideProps) => JSX.Element; +export declare const FileMinus2: (props: LucideProps) => JSX.Element; +export declare const FileMinus: (props: LucideProps) => JSX.Element; +export declare const FileOutput: (props: LucideProps) => JSX.Element; +export declare const FilePieChart: (props: LucideProps) => JSX.Element; +export declare const FilePlus2: (props: LucideProps) => JSX.Element; +export declare const FilePlus: (props: LucideProps) => JSX.Element; +export declare const FileQuestion: (props: LucideProps) => JSX.Element; +export declare const FileScan: (props: LucideProps) => JSX.Element; +export declare const FileSearch2: (props: LucideProps) => JSX.Element; +export declare const FileSearch: (props: LucideProps) => JSX.Element; +export declare const FileSignature: (props: LucideProps) => JSX.Element; +export declare const FileSpreadsheet: (props: LucideProps) => JSX.Element; +export declare const FileSymlink: (props: LucideProps) => JSX.Element; +export declare const FileTerminal: (props: LucideProps) => JSX.Element; +export declare const FileText: (props: LucideProps) => JSX.Element; +export declare const FileType2: (props: LucideProps) => JSX.Element; +export declare const FileType: (props: LucideProps) => JSX.Element; +export declare const FileUp: (props: LucideProps) => JSX.Element; +export declare const FileVideo2: (props: LucideProps) => JSX.Element; +export declare const FileVideo: (props: LucideProps) => JSX.Element; +export declare const FileVolume2: (props: LucideProps) => JSX.Element; +export declare const FileVolume: (props: LucideProps) => JSX.Element; +export declare const FileWarning: (props: LucideProps) => JSX.Element; +export declare const FileX2: (props: LucideProps) => JSX.Element; +export declare const FileX: (props: LucideProps) => JSX.Element; +export declare const File: (props: LucideProps) => JSX.Element; +export declare const Files: (props: LucideProps) => JSX.Element; +export declare const Film: (props: LucideProps) => JSX.Element; +export declare const Filter: (props: LucideProps) => JSX.Element; +export declare const Fingerprint: (props: LucideProps) => JSX.Element; +export declare const FlagOff: (props: LucideProps) => JSX.Element; +export declare const FlagTriangleLeft: (props: LucideProps) => JSX.Element; +export declare const FlagTriangleRight: (props: LucideProps) => JSX.Element; +export declare const Flag: (props: LucideProps) => JSX.Element; +export declare const Flame: (props: LucideProps) => JSX.Element; +export declare const FlashlightOff: (props: LucideProps) => JSX.Element; +export declare const Flashlight: (props: LucideProps) => JSX.Element; +export declare const FlaskConicalOff: (props: LucideProps) => JSX.Element; +export declare const FlaskConical: (props: LucideProps) => JSX.Element; +export declare const FlaskRound: (props: LucideProps) => JSX.Element; +export declare const FlipHorizontal2: (props: LucideProps) => JSX.Element; +export declare const FlipHorizontal: (props: LucideProps) => JSX.Element; +export declare const FlipVertical2: (props: LucideProps) => JSX.Element; +export declare const FlipVertical: (props: LucideProps) => JSX.Element; +export declare const Flower2: (props: LucideProps) => JSX.Element; +export declare const Flower: (props: LucideProps) => JSX.Element; +export declare const Focus: (props: LucideProps) => JSX.Element; +export declare const FolderArchive: (props: LucideProps) => JSX.Element; +export declare const FolderCheck: (props: LucideProps) => JSX.Element; +export declare const FolderClock: (props: LucideProps) => JSX.Element; +export declare const FolderClosed: (props: LucideProps) => JSX.Element; +export declare const FolderCog2: (props: LucideProps) => JSX.Element; +export declare const FolderCog: (props: LucideProps) => JSX.Element; +export declare const FolderDown: (props: LucideProps) => JSX.Element; +export declare const FolderEdit: (props: LucideProps) => JSX.Element; +export declare const FolderHeart: (props: LucideProps) => JSX.Element; +export declare const FolderInput: (props: LucideProps) => JSX.Element; +export declare const FolderKey: (props: LucideProps) => JSX.Element; +export declare const FolderLock: (props: LucideProps) => JSX.Element; +export declare const FolderMinus: (props: LucideProps) => JSX.Element; +export declare const FolderOpen: (props: LucideProps) => JSX.Element; +export declare const FolderOutput: (props: LucideProps) => JSX.Element; +export declare const FolderPlus: (props: LucideProps) => JSX.Element; +export declare const FolderSearch2: (props: LucideProps) => JSX.Element; +export declare const FolderSearch: (props: LucideProps) => JSX.Element; +export declare const FolderSymlink: (props: LucideProps) => JSX.Element; +export declare const FolderTree: (props: LucideProps) => JSX.Element; +export declare const FolderUp: (props: LucideProps) => JSX.Element; +export declare const FolderX: (props: LucideProps) => JSX.Element; +export declare const Folder: (props: LucideProps) => JSX.Element; +export declare const Folders: (props: LucideProps) => JSX.Element; +export declare const FormInput: (props: LucideProps) => JSX.Element; +export declare const Forward: (props: LucideProps) => JSX.Element; +export declare const Frame: (props: LucideProps) => JSX.Element; +export declare const Framer: (props: LucideProps) => JSX.Element; +export declare const Frown: (props: LucideProps) => JSX.Element; +export declare const Fuel: (props: LucideProps) => JSX.Element; +export declare const FunctionSquare: (props: LucideProps) => JSX.Element; +export declare const Gamepad2: (props: LucideProps) => JSX.Element; +export declare const Gamepad: (props: LucideProps) => JSX.Element; +export declare const Gauge: (props: LucideProps) => JSX.Element; +export declare const Gavel: (props: LucideProps) => JSX.Element; +export declare const Gem: (props: LucideProps) => JSX.Element; +export declare const Ghost: (props: LucideProps) => JSX.Element; +export declare const Gift: (props: LucideProps) => JSX.Element; +export declare const GitBranchPlus: (props: LucideProps) => JSX.Element; +export declare const GitBranch: (props: LucideProps) => JSX.Element; +export declare const GitCommit: (props: LucideProps) => JSX.Element; +export declare const GitCompare: (props: LucideProps) => JSX.Element; +export declare const GitFork: (props: LucideProps) => JSX.Element; +export declare const GitMerge: (props: LucideProps) => JSX.Element; +export declare const GitPullRequestClosed: (props: LucideProps) => JSX.Element; +export declare const GitPullRequestDraft: (props: LucideProps) => JSX.Element; +export declare const GitPullRequest: (props: LucideProps) => JSX.Element; +export declare const Github: (props: LucideProps) => JSX.Element; +export declare const Gitlab: (props: LucideProps) => JSX.Element; +export declare const GlassWater: (props: LucideProps) => JSX.Element; +export declare const Glasses: (props: LucideProps) => JSX.Element; +export declare const Globe2: (props: LucideProps) => JSX.Element; +export declare const Globe: (props: LucideProps) => JSX.Element; +export declare const Grab: (props: LucideProps) => JSX.Element; +export declare const GraduationCap: (props: LucideProps) => JSX.Element; +export declare const Grape: (props: LucideProps) => JSX.Element; +export declare const Grid: (props: LucideProps) => JSX.Element; +export declare const GripHorizontal: (props: LucideProps) => JSX.Element; +export declare const GripVertical: (props: LucideProps) => JSX.Element; +export declare const Hammer: (props: LucideProps) => JSX.Element; +export declare const HandMetal: (props: LucideProps) => JSX.Element; +export declare const Hand: (props: LucideProps) => JSX.Element; +export declare const HardDrive: (props: LucideProps) => JSX.Element; +export declare const HardHat: (props: LucideProps) => JSX.Element; +export declare const Hash: (props: LucideProps) => JSX.Element; +export declare const Haze: (props: LucideProps) => JSX.Element; +export declare const Heading1: (props: LucideProps) => JSX.Element; +export declare const Heading2: (props: LucideProps) => JSX.Element; +export declare const Heading3: (props: LucideProps) => JSX.Element; +export declare const Heading4: (props: LucideProps) => JSX.Element; +export declare const Heading5: (props: LucideProps) => JSX.Element; +export declare const Heading6: (props: LucideProps) => JSX.Element; +export declare const Heading: (props: LucideProps) => JSX.Element; +export declare const Headphones: (props: LucideProps) => JSX.Element; +export declare const HeartCrack: (props: LucideProps) => JSX.Element; +export declare const HeartHandshake: (props: LucideProps) => JSX.Element; +export declare const HeartOff: (props: LucideProps) => JSX.Element; +export declare const HeartPulse: (props: LucideProps) => JSX.Element; +export declare const Heart: (props: LucideProps) => JSX.Element; +export declare const HelpCircle: (props: LucideProps) => JSX.Element; +export declare const Hexagon: (props: LucideProps) => JSX.Element; +export declare const Highlighter: (props: LucideProps) => JSX.Element; +export declare const History: (props: LucideProps) => JSX.Element; +export declare const Home: (props: LucideProps) => JSX.Element; +export declare const HopOff: (props: LucideProps) => JSX.Element; +export declare const Hop: (props: LucideProps) => JSX.Element; +export declare const Hourglass: (props: LucideProps) => JSX.Element; +export declare const IceCream: (props: LucideProps) => JSX.Element; +export declare const ImageMinus: (props: LucideProps) => JSX.Element; +export declare const ImageOff: (props: LucideProps) => JSX.Element; +export declare const ImagePlus: (props: LucideProps) => JSX.Element; +export declare const Image: (props: LucideProps) => JSX.Element; +export declare const Import: (props: LucideProps) => JSX.Element; +export declare const Inbox: (props: LucideProps) => JSX.Element; +export declare const Indent: (props: LucideProps) => JSX.Element; +export declare const IndianRupee: (props: LucideProps) => JSX.Element; +export declare const Infinity: (props: LucideProps) => JSX.Element; +export declare const Info: (props: LucideProps) => JSX.Element; +export declare const Inspect: (props: LucideProps) => JSX.Element; +export declare const Instagram: (props: LucideProps) => JSX.Element; +export declare const Italic: (props: LucideProps) => JSX.Element; +export declare const JapaneseYen: (props: LucideProps) => JSX.Element; +export declare const Joystick: (props: LucideProps) => JSX.Element; +export declare const Key: (props: LucideProps) => JSX.Element; +export declare const Keyboard: (props: LucideProps) => JSX.Element; +export declare const LampCeiling: (props: LucideProps) => JSX.Element; +export declare const LampDesk: (props: LucideProps) => JSX.Element; +export declare const LampFloor: (props: LucideProps) => JSX.Element; +export declare const LampWallDown: (props: LucideProps) => JSX.Element; +export declare const LampWallUp: (props: LucideProps) => JSX.Element; +export declare const Lamp: (props: LucideProps) => JSX.Element; +export declare const Landmark: (props: LucideProps) => JSX.Element; +export declare const Languages: (props: LucideProps) => JSX.Element; +export declare const Laptop2: (props: LucideProps) => JSX.Element; +export declare const Laptop: (props: LucideProps) => JSX.Element; +export declare const LassoSelect: (props: LucideProps) => JSX.Element; +export declare const Lasso: (props: LucideProps) => JSX.Element; +export declare const Laugh: (props: LucideProps) => JSX.Element; +export declare const Layers: (props: LucideProps) => JSX.Element; +export declare const LayoutDashboard: (props: LucideProps) => JSX.Element; +export declare const LayoutGrid: (props: LucideProps) => JSX.Element; +export declare const LayoutList: (props: LucideProps) => JSX.Element; +export declare const LayoutTemplate: (props: LucideProps) => JSX.Element; +export declare const Layout: (props: LucideProps) => JSX.Element; +export declare const Leaf: (props: LucideProps) => JSX.Element; +export declare const Library: (props: LucideProps) => JSX.Element; +export declare const LifeBuoy: (props: LucideProps) => JSX.Element; +export declare const LightbulbOff: (props: LucideProps) => JSX.Element; +export declare const Lightbulb: (props: LucideProps) => JSX.Element; +export declare const LineChart: (props: LucideProps) => JSX.Element; +export declare const Link2Off: (props: LucideProps) => JSX.Element; +export declare const Link2: (props: LucideProps) => JSX.Element; +export declare const Link: (props: LucideProps) => JSX.Element; +export declare const Linkedin: (props: LucideProps) => JSX.Element; +export declare const ListChecks: (props: LucideProps) => JSX.Element; +export declare const ListEnd: (props: LucideProps) => JSX.Element; +export declare const ListMinus: (props: LucideProps) => JSX.Element; +export declare const ListMusic: (props: LucideProps) => JSX.Element; +export declare const ListOrdered: (props: LucideProps) => JSX.Element; +export declare const ListPlus: (props: LucideProps) => JSX.Element; +export declare const ListStart: (props: LucideProps) => JSX.Element; +export declare const ListVideo: (props: LucideProps) => JSX.Element; +export declare const ListX: (props: LucideProps) => JSX.Element; +export declare const List: (props: LucideProps) => JSX.Element; +export declare const Loader2: (props: LucideProps) => JSX.Element; +export declare const Loader: (props: LucideProps) => JSX.Element; +export declare const LocateFixed: (props: LucideProps) => JSX.Element; +export declare const LocateOff: (props: LucideProps) => JSX.Element; +export declare const Locate: (props: LucideProps) => JSX.Element; +export declare const Lock: (props: LucideProps) => JSX.Element; +export declare const LogIn: (props: LucideProps) => JSX.Element; +export declare const LogOut: (props: LucideProps) => JSX.Element; +export declare const Luggage: (props: LucideProps) => JSX.Element; +export declare const Magnet: (props: LucideProps) => JSX.Element; +export declare const MailCheck: (props: LucideProps) => JSX.Element; +export declare const MailMinus: (props: LucideProps) => JSX.Element; +export declare const MailOpen: (props: LucideProps) => JSX.Element; +export declare const MailPlus: (props: LucideProps) => JSX.Element; +export declare const MailQuestion: (props: LucideProps) => JSX.Element; +export declare const MailSearch: (props: LucideProps) => JSX.Element; +export declare const MailWarning: (props: LucideProps) => JSX.Element; +export declare const MailX: (props: LucideProps) => JSX.Element; +export declare const Mail: (props: LucideProps) => JSX.Element; +export declare const Mails: (props: LucideProps) => JSX.Element; +export declare const MapPinOff: (props: LucideProps) => JSX.Element; +export declare const MapPin: (props: LucideProps) => JSX.Element; +export declare const Map: (props: LucideProps) => JSX.Element; +export declare const Martini: (props: LucideProps) => JSX.Element; +export declare const Maximize2: (props: LucideProps) => JSX.Element; +export declare const Maximize: (props: LucideProps) => JSX.Element; +export declare const Medal: (props: LucideProps) => JSX.Element; +export declare const MegaphoneOff: (props: LucideProps) => JSX.Element; +export declare const Megaphone: (props: LucideProps) => JSX.Element; +export declare const Meh: (props: LucideProps) => JSX.Element; +export declare const Menu: (props: LucideProps) => JSX.Element; +export declare const MessageCircle: (props: LucideProps) => JSX.Element; +export declare const MessageSquare: (props: LucideProps) => JSX.Element; +export declare const Mic2: (props: LucideProps) => JSX.Element; +export declare const MicOff: (props: LucideProps) => JSX.Element; +export declare const Mic: (props: LucideProps) => JSX.Element; +export declare const Microscope: (props: LucideProps) => JSX.Element; +export declare const Microwave: (props: LucideProps) => JSX.Element; +export declare const Milestone: (props: LucideProps) => JSX.Element; +export declare const MilkOff: (props: LucideProps) => JSX.Element; +export declare const Milk: (props: LucideProps) => JSX.Element; +export declare const Minimize2: (props: LucideProps) => JSX.Element; +export declare const Minimize: (props: LucideProps) => JSX.Element; +export declare const MinusCircle: (props: LucideProps) => JSX.Element; +export declare const MinusSquare: (props: LucideProps) => JSX.Element; +export declare const Minus: (props: LucideProps) => JSX.Element; +export declare const MonitorOff: (props: LucideProps) => JSX.Element; +export declare const MonitorSmartphone: (props: LucideProps) => JSX.Element; +export declare const MonitorSpeaker: (props: LucideProps) => JSX.Element; +export declare const Monitor: (props: LucideProps) => JSX.Element; +export declare const Moon: (props: LucideProps) => JSX.Element; +export declare const MoreHorizontal: (props: LucideProps) => JSX.Element; +export declare const MoreVertical: (props: LucideProps) => JSX.Element; +export declare const MountainSnow: (props: LucideProps) => JSX.Element; +export declare const Mountain: (props: LucideProps) => JSX.Element; +export declare const MousePointer2: (props: LucideProps) => JSX.Element; +export declare const MousePointerClick: (props: LucideProps) => JSX.Element; +export declare const MousePointer: (props: LucideProps) => JSX.Element; +export declare const Mouse: (props: LucideProps) => JSX.Element; +export declare const Move3d: (props: LucideProps) => JSX.Element; +export declare const MoveDiagonal2: (props: LucideProps) => JSX.Element; +export declare const MoveDiagonal: (props: LucideProps) => JSX.Element; +export declare const MoveHorizontal: (props: LucideProps) => JSX.Element; +export declare const MoveVertical: (props: LucideProps) => JSX.Element; +export declare const Move: (props: LucideProps) => JSX.Element; +export declare const Music2: (props: LucideProps) => JSX.Element; +export declare const Music3: (props: LucideProps) => JSX.Element; +export declare const Music4: (props: LucideProps) => JSX.Element; +export declare const Music: (props: LucideProps) => JSX.Element; +export declare const Navigation2Off: (props: LucideProps) => JSX.Element; +export declare const Navigation2: (props: LucideProps) => JSX.Element; +export declare const NavigationOff: (props: LucideProps) => JSX.Element; +export declare const Navigation: (props: LucideProps) => JSX.Element; +export declare const Network: (props: LucideProps) => JSX.Element; +export declare const Newspaper: (props: LucideProps) => JSX.Element; +export declare const NutOff: (props: LucideProps) => JSX.Element; +export declare const Nut: (props: LucideProps) => JSX.Element; +export declare const Octagon: (props: LucideProps) => JSX.Element; +export declare const Option: (props: LucideProps) => JSX.Element; +export declare const Outdent: (props: LucideProps) => JSX.Element; +export declare const Package2: (props: LucideProps) => JSX.Element; +export declare const PackageCheck: (props: LucideProps) => JSX.Element; +export declare const PackageMinus: (props: LucideProps) => JSX.Element; +export declare const PackageOpen: (props: LucideProps) => JSX.Element; +export declare const PackagePlus: (props: LucideProps) => JSX.Element; +export declare const PackageSearch: (props: LucideProps) => JSX.Element; +export declare const PackageX: (props: LucideProps) => JSX.Element; +export declare const Package: (props: LucideProps) => JSX.Element; +export declare const PaintBucket: (props: LucideProps) => JSX.Element; +export declare const Paintbrush2: (props: LucideProps) => JSX.Element; +export declare const Paintbrush: (props: LucideProps) => JSX.Element; +export declare const Palette: (props: LucideProps) => JSX.Element; +export declare const Palmtree: (props: LucideProps) => JSX.Element; +export declare const Paperclip: (props: LucideProps) => JSX.Element; +export declare const PartyPopper: (props: LucideProps) => JSX.Element; +export declare const PauseCircle: (props: LucideProps) => JSX.Element; +export declare const PauseOctagon: (props: LucideProps) => JSX.Element; +export declare const Pause: (props: LucideProps) => JSX.Element; +export declare const PenTool: (props: LucideProps) => JSX.Element; +export declare const Pencil: (props: LucideProps) => JSX.Element; +export declare const Percent: (props: LucideProps) => JSX.Element; +export declare const PersonStanding: (props: LucideProps) => JSX.Element; +export declare const PhoneCall: (props: LucideProps) => JSX.Element; +export declare const PhoneForwarded: (props: LucideProps) => JSX.Element; +export declare const PhoneIncoming: (props: LucideProps) => JSX.Element; +export declare const PhoneMissed: (props: LucideProps) => JSX.Element; +export declare const PhoneOff: (props: LucideProps) => JSX.Element; +export declare const PhoneOutgoing: (props: LucideProps) => JSX.Element; +export declare const Phone: (props: LucideProps) => JSX.Element; +export declare const PieChart: (props: LucideProps) => JSX.Element; +export declare const PiggyBank: (props: LucideProps) => JSX.Element; +export declare const Pilcrow: (props: LucideProps) => JSX.Element; +export declare const PinOff: (props: LucideProps) => JSX.Element; +export declare const Pin: (props: LucideProps) => JSX.Element; +export declare const Pipette: (props: LucideProps) => JSX.Element; +export declare const Pizza: (props: LucideProps) => JSX.Element; +export declare const Plane: (props: LucideProps) => JSX.Element; +export declare const PlayCircle: (props: LucideProps) => JSX.Element; +export declare const Play: (props: LucideProps) => JSX.Element; +export declare const Plug2: (props: LucideProps) => JSX.Element; +export declare const PlugZap: (props: LucideProps) => JSX.Element; +export declare const Plug: (props: LucideProps) => JSX.Element; +export declare const PlusCircle: (props: LucideProps) => JSX.Element; +export declare const PlusSquare: (props: LucideProps) => JSX.Element; +export declare const Plus: (props: LucideProps) => JSX.Element; +export declare const Pocket: (props: LucideProps) => JSX.Element; +export declare const Podcast: (props: LucideProps) => JSX.Element; +export declare const Pointer: (props: LucideProps) => JSX.Element; +export declare const PoundSterling: (props: LucideProps) => JSX.Element; +export declare const PowerOff: (props: LucideProps) => JSX.Element; +export declare const Power: (props: LucideProps) => JSX.Element; +export declare const Printer: (props: LucideProps) => JSX.Element; +export declare const Puzzle: (props: LucideProps) => JSX.Element; +export declare const QrCode: (props: LucideProps) => JSX.Element; +export declare const Quote: (props: LucideProps) => JSX.Element; +export declare const RadioReceiver: (props: LucideProps) => JSX.Element; +export declare const Radio: (props: LucideProps) => JSX.Element; +export declare const RectangleHorizontal: (props: LucideProps) => JSX.Element; +export declare const RectangleVertical: (props: LucideProps) => JSX.Element; +export declare const Recycle: (props: LucideProps) => JSX.Element; +export declare const Redo2: (props: LucideProps) => JSX.Element; +export declare const Redo: (props: LucideProps) => JSX.Element; +export declare const RefreshCcw: (props: LucideProps) => JSX.Element; +export declare const RefreshCw: (props: LucideProps) => JSX.Element; +export declare const Refrigerator: (props: LucideProps) => JSX.Element; +export declare const Regex: (props: LucideProps) => JSX.Element; +export declare const Repeat1: (props: LucideProps) => JSX.Element; +export declare const Repeat: (props: LucideProps) => JSX.Element; +export declare const ReplyAll: (props: LucideProps) => JSX.Element; +export declare const Reply: (props: LucideProps) => JSX.Element; +export declare const Rewind: (props: LucideProps) => JSX.Element; +export declare const Rocket: (props: LucideProps) => JSX.Element; +export declare const RockingChair: (props: LucideProps) => JSX.Element; +export declare const Rotate3d: (props: LucideProps) => JSX.Element; +export declare const RotateCcw: (props: LucideProps) => JSX.Element; +export declare const RotateCw: (props: LucideProps) => JSX.Element; +export declare const Rss: (props: LucideProps) => JSX.Element; +export declare const Ruler: (props: LucideProps) => JSX.Element; +export declare const RussianRuble: (props: LucideProps) => JSX.Element; +export declare const Sailboat: (props: LucideProps) => JSX.Element; +export declare const Save: (props: LucideProps) => JSX.Element; +export declare const Scale3d: (props: LucideProps) => JSX.Element; +export declare const Scale: (props: LucideProps) => JSX.Element; +export declare const Scaling: (props: LucideProps) => JSX.Element; +export declare const ScanFace: (props: LucideProps) => JSX.Element; +export declare const ScanLine: (props: LucideProps) => JSX.Element; +export declare const Scan: (props: LucideProps) => JSX.Element; +export declare const Scissors: (props: LucideProps) => JSX.Element; +export declare const ScreenShareOff: (props: LucideProps) => JSX.Element; +export declare const ScreenShare: (props: LucideProps) => JSX.Element; +export declare const Scroll: (props: LucideProps) => JSX.Element; +export declare const Search: (props: LucideProps) => JSX.Element; +export declare const Send: (props: LucideProps) => JSX.Element; +export declare const SeparatorHorizontal: (props: LucideProps) => JSX.Element; +export declare const SeparatorVertical: (props: LucideProps) => JSX.Element; +export declare const ServerCog: (props: LucideProps) => JSX.Element; +export declare const ServerCrash: (props: LucideProps) => JSX.Element; +export declare const ServerOff: (props: LucideProps) => JSX.Element; +export declare const Server: (props: LucideProps) => JSX.Element; +export declare const Settings2: (props: LucideProps) => JSX.Element; +export declare const Settings: (props: LucideProps) => JSX.Element; +export declare const Share2: (props: LucideProps) => JSX.Element; +export declare const Share: (props: LucideProps) => JSX.Element; +export declare const Sheet: (props: LucideProps) => JSX.Element; +export declare const ShieldAlert: (props: LucideProps) => JSX.Element; +export declare const ShieldCheck: (props: LucideProps) => JSX.Element; +export declare const ShieldClose: (props: LucideProps) => JSX.Element; +export declare const ShieldOff: (props: LucideProps) => JSX.Element; +export declare const Shield: (props: LucideProps) => JSX.Element; +export declare const Shirt: (props: LucideProps) => JSX.Element; +export declare const ShoppingBag: (props: LucideProps) => JSX.Element; +export declare const ShoppingCart: (props: LucideProps) => JSX.Element; +export declare const Shovel: (props: LucideProps) => JSX.Element; +export declare const ShowerHead: (props: LucideProps) => JSX.Element; +export declare const Shrink: (props: LucideProps) => JSX.Element; +export declare const Shrub: (props: LucideProps) => JSX.Element; +export declare const Shuffle: (props: LucideProps) => JSX.Element; +export declare const SidebarClose: (props: LucideProps) => JSX.Element; +export declare const SidebarOpen: (props: LucideProps) => JSX.Element; +export declare const Sidebar: (props: LucideProps) => JSX.Element; +export declare const Sigma: (props: LucideProps) => JSX.Element; +export declare const SignalHigh: (props: LucideProps) => JSX.Element; +export declare const SignalLow: (props: LucideProps) => JSX.Element; +export declare const SignalMedium: (props: LucideProps) => JSX.Element; +export declare const SignalZero: (props: LucideProps) => JSX.Element; +export declare const Signal: (props: LucideProps) => JSX.Element; +export declare const Siren: (props: LucideProps) => JSX.Element; +export declare const SkipBack: (props: LucideProps) => JSX.Element; +export declare const SkipForward: (props: LucideProps) => JSX.Element; +export declare const Skull: (props: LucideProps) => JSX.Element; +export declare const Slack: (props: LucideProps) => JSX.Element; +export declare const Slash: (props: LucideProps) => JSX.Element; +export declare const Slice: (props: LucideProps) => JSX.Element; +export declare const SlidersHorizontal: (props: LucideProps) => JSX.Element; +export declare const Sliders: (props: LucideProps) => JSX.Element; +export declare const SmartphoneCharging: (props: LucideProps) => JSX.Element; +export declare const Smartphone: (props: LucideProps) => JSX.Element; +export declare const SmilePlus: (props: LucideProps) => JSX.Element; +export declare const Smile: (props: LucideProps) => JSX.Element; +export declare const Snowflake: (props: LucideProps) => JSX.Element; +export declare const Sofa: (props: LucideProps) => JSX.Element; +export declare const SortAsc: (props: LucideProps) => JSX.Element; +export declare const SortDesc: (props: LucideProps) => JSX.Element; +export declare const Speaker: (props: LucideProps) => JSX.Element; +export declare const Spline: (props: LucideProps) => JSX.Element; +export declare const Sprout: (props: LucideProps) => JSX.Element; +export declare const Square: (props: LucideProps) => JSX.Element; +export declare const StarHalf: (props: LucideProps) => JSX.Element; +export declare const StarOff: (props: LucideProps) => JSX.Element; +export declare const Star: (props: LucideProps) => JSX.Element; +export declare const Stethoscope: (props: LucideProps) => JSX.Element; +export declare const Sticker: (props: LucideProps) => JSX.Element; +export declare const StickyNote: (props: LucideProps) => JSX.Element; +export declare const StopCircle: (props: LucideProps) => JSX.Element; +export declare const StretchHorizontal: (props: LucideProps) => JSX.Element; +export declare const StretchVertical: (props: LucideProps) => JSX.Element; +export declare const Strikethrough: (props: LucideProps) => JSX.Element; +export declare const Subscript: (props: LucideProps) => JSX.Element; +export declare const Subtitles: (props: LucideProps) => JSX.Element; +export declare const SunDim: (props: LucideProps) => JSX.Element; +export declare const SunMedium: (props: LucideProps) => JSX.Element; +export declare const SunMoon: (props: LucideProps) => JSX.Element; +export declare const SunSnow: (props: LucideProps) => JSX.Element; +export declare const Sun: (props: LucideProps) => JSX.Element; +export declare const Sunrise: (props: LucideProps) => JSX.Element; +export declare const Sunset: (props: LucideProps) => JSX.Element; +export declare const Superscript: (props: LucideProps) => JSX.Element; +export declare const SwissFranc: (props: LucideProps) => JSX.Element; +export declare const SwitchCamera: (props: LucideProps) => JSX.Element; +export declare const Sword: (props: LucideProps) => JSX.Element; +export declare const Swords: (props: LucideProps) => JSX.Element; +export declare const Syringe: (props: LucideProps) => JSX.Element; +export declare const Table2: (props: LucideProps) => JSX.Element; +export declare const Table: (props: LucideProps) => JSX.Element; +export declare const Tablet: (props: LucideProps) => JSX.Element; +export declare const Tag: (props: LucideProps) => JSX.Element; +export declare const Tags: (props: LucideProps) => JSX.Element; +export declare const Target: (props: LucideProps) => JSX.Element; +export declare const Tent: (props: LucideProps) => JSX.Element; +export declare const TerminalSquare: (props: LucideProps) => JSX.Element; +export declare const Terminal: (props: LucideProps) => JSX.Element; +export declare const TextCursorInput: (props: LucideProps) => JSX.Element; +export declare const TextCursor: (props: LucideProps) => JSX.Element; +export declare const ThermometerSnowflake: (props: LucideProps) => JSX.Element; +export declare const ThermometerSun: (props: LucideProps) => JSX.Element; +export declare const Thermometer: (props: LucideProps) => JSX.Element; +export declare const ThumbsDown: (props: LucideProps) => JSX.Element; +export declare const ThumbsUp: (props: LucideProps) => JSX.Element; +export declare const Ticket: (props: LucideProps) => JSX.Element; +export declare const TimerOff: (props: LucideProps) => JSX.Element; +export declare const TimerReset: (props: LucideProps) => JSX.Element; +export declare const Timer: (props: LucideProps) => JSX.Element; +export declare const ToggleLeft: (props: LucideProps) => JSX.Element; +export declare const ToggleRight: (props: LucideProps) => JSX.Element; +export declare const Tornado: (props: LucideProps) => JSX.Element; +export declare const ToyBrick: (props: LucideProps) => JSX.Element; +export declare const Train: (props: LucideProps) => JSX.Element; +export declare const Trash2: (props: LucideProps) => JSX.Element; +export declare const Trash: (props: LucideProps) => JSX.Element; +export declare const TreeDeciduous: (props: LucideProps) => JSX.Element; +export declare const TreePine: (props: LucideProps) => JSX.Element; +export declare const Trees: (props: LucideProps) => JSX.Element; +export declare const Trello: (props: LucideProps) => JSX.Element; +export declare const TrendingDown: (props: LucideProps) => JSX.Element; +export declare const TrendingUp: (props: LucideProps) => JSX.Element; +export declare const Triangle: (props: LucideProps) => JSX.Element; +export declare const Trophy: (props: LucideProps) => JSX.Element; +export declare const Truck: (props: LucideProps) => JSX.Element; +export declare const Tv2: (props: LucideProps) => JSX.Element; +export declare const Tv: (props: LucideProps) => JSX.Element; +export declare const Twitch: (props: LucideProps) => JSX.Element; +export declare const Twitter: (props: LucideProps) => JSX.Element; +export declare const Type: (props: LucideProps) => JSX.Element; +export declare const Umbrella: (props: LucideProps) => JSX.Element; +export declare const Underline: (props: LucideProps) => JSX.Element; +export declare const Undo2: (props: LucideProps) => JSX.Element; +export declare const Undo: (props: LucideProps) => JSX.Element; +export declare const Unlink2: (props: LucideProps) => JSX.Element; +export declare const Unlink: (props: LucideProps) => JSX.Element; +export declare const Unlock: (props: LucideProps) => JSX.Element; +export declare const UploadCloud: (props: LucideProps) => JSX.Element; +export declare const Upload: (props: LucideProps) => JSX.Element; +export declare const Usb: (props: LucideProps) => JSX.Element; +export declare const UserCheck: (props: LucideProps) => JSX.Element; +export declare const UserCog: (props: LucideProps) => JSX.Element; +export declare const UserMinus: (props: LucideProps) => JSX.Element; +export declare const UserPlus: (props: LucideProps) => JSX.Element; +export declare const UserX: (props: LucideProps) => JSX.Element; +export declare const User: (props: LucideProps) => JSX.Element; +export declare const Users: (props: LucideProps) => JSX.Element; +export declare const UtensilsCrossed: (props: LucideProps) => JSX.Element; +export declare const Utensils: (props: LucideProps) => JSX.Element; +export declare const Vegan: (props: LucideProps) => JSX.Element; +export declare const VenetianMask: (props: LucideProps) => JSX.Element; +export declare const Verified: (props: LucideProps) => JSX.Element; +export declare const VibrateOff: (props: LucideProps) => JSX.Element; +export declare const Vibrate: (props: LucideProps) => JSX.Element; +export declare const VideoOff: (props: LucideProps) => JSX.Element; +export declare const Video: (props: LucideProps) => JSX.Element; +export declare const View: (props: LucideProps) => JSX.Element; +export declare const Voicemail: (props: LucideProps) => JSX.Element; +export declare const Volume1: (props: LucideProps) => JSX.Element; +export declare const Volume2: (props: LucideProps) => JSX.Element; +export declare const VolumeX: (props: LucideProps) => JSX.Element; +export declare const Volume: (props: LucideProps) => JSX.Element; +export declare const Wallet: (props: LucideProps) => JSX.Element; +export declare const Wand2: (props: LucideProps) => JSX.Element; +export declare const Wand: (props: LucideProps) => JSX.Element; +export declare const Watch: (props: LucideProps) => JSX.Element; +export declare const Waves: (props: LucideProps) => JSX.Element; +export declare const Webcam: (props: LucideProps) => JSX.Element; +export declare const Webhook: (props: LucideProps) => JSX.Element; +export declare const WheatOff: (props: LucideProps) => JSX.Element; +export declare const Wheat: (props: LucideProps) => JSX.Element; +export declare const WifiOff: (props: LucideProps) => JSX.Element; +export declare const Wifi: (props: LucideProps) => JSX.Element; +export declare const Wind: (props: LucideProps) => JSX.Element; +export declare const WineOff: (props: LucideProps) => JSX.Element; +export declare const Wine: (props: LucideProps) => JSX.Element; +export declare const WrapText: (props: LucideProps) => JSX.Element; +export declare const Wrench: (props: LucideProps) => JSX.Element; +export declare const XCircle: (props: LucideProps) => JSX.Element; +export declare const XOctagon: (props: LucideProps) => JSX.Element; +export declare const XSquare: (props: LucideProps) => JSX.Element; +export declare const X: (props: LucideProps) => JSX.Element; +export declare const Youtube: (props: LucideProps) => JSX.Element; +export declare const ZapOff: (props: LucideProps) => JSX.Element; +export declare const Zap: (props: LucideProps) => JSX.Element; +export declare const ZoomIn: (props: LucideProps) => JSX.Element; +export declare const ZoomOut: (props: LucideProps) => JSX.Element; diff --git a/packages/lucide-react-native/package.json b/packages/lucide-react-native/package.json index 7ccaccf..cc5a323 100644 --- a/packages/lucide-react-native/package.json +++ b/packages/lucide-react-native/package.json @@ -26,7 +26,7 @@ "build": "pnpm clean && pnpm copy:license && pnpm build:icons && pnpm build:bundles && pnpm build:types", "copy:license": "cp ../../LICENSE ./LICENSE", "clean": "rm -rf dist && rm -rf stats && rm -rf ./src/icons/*.js", - "build:icons": "node ../../scripts/buildIcons.mjs --output=./src --templateSrc=./scripts/exportTemplate.mjs --renderUniqueKey --iconFileExtension=.ts --exportFileName=index.ts", + "build:icons": "build-icons --output=./src --templateSrc=./scripts/exportTemplate.mjs --renderUniqueKey --iconFileExtension=.ts --exportFileName=index.ts --withAliases --aliasesFileExtension=.ts", "build:types": "node ./scripts/buildTypes.mjs", "build:bundles": "rollup -c ./rollup.config.mjs", "test": "vitest", @@ -34,6 +34,7 @@ }, "devDependencies": { "@lucide/rollup-plugins": "workspace:*", + "@lucide/build-icons": "workspace:*", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@types/prop-types": "^15.7.5", diff --git a/packages/lucide-react-native/rollup.config.mjs b/packages/lucide-react-native/rollup.config.mjs index c42038f..76646a1 100644 --- a/packages/lucide-react-native/rollup.config.mjs +++ b/packages/lucide-react-native/rollup.config.mjs @@ -1,4 +1,4 @@ -import plugins from '@lucide/rollup-plugins'; +import plugins, { replace } from '@lucide/rollup-plugins'; import pkg from './package.json' assert { type: 'json' }; const packageName = 'LucideReact'; @@ -6,28 +6,12 @@ const outputFileName = 'lucide-react-native'; const outputDir = 'dist'; const inputs = ['src/lucide-react-native.ts']; const bundles = [ - { - format: 'umd', - inputs, - outputDir, - minify: true, - }, - { - format: 'umd', - inputs, - outputDir, - }, { format: 'cjs', inputs, outputDir, preserveModules: true, }, - { - format: 'es', - inputs, - outputDir, - }, { format: 'esm', inputs, @@ -40,7 +24,20 @@ const configs = bundles .map(({ inputs, outputDir, format, minify, preserveModules }) => inputs.map(input => ({ input, - plugins: plugins(pkg, minify), + plugins: [ + // This for aliases, only for esm + ...( + format !== 'esm' || format !== 'cjs' ? [ + replace({ + "export * from './aliases';": '', + "export * as icons from './icons';": '', + delimiters: ['', ''], + preventAssignment: false, + }), + ] : [] + ), + ...plugins(pkg, minify) + ], external: ['react', 'prop-types', 'react-native-svg'], output: { name: packageName, diff --git a/packages/lucide-react-native/scripts/buildTypes.mjs b/packages/lucide-react-native/scripts/buildTypes.mjs index 3706bf2..f8c272c 100644 --- a/packages/lucide-react-native/scripts/buildTypes.mjs +++ b/packages/lucide-react-native/scripts/buildTypes.mjs @@ -1,6 +1,7 @@ import path from 'path'; +// eslint-disable-next-line import/no-extraneous-dependencies +import { getAliases } from '@lucide/build-icons'; import { - appendFile, readSvgDirectory, resetFile, toPascalCase, @@ -11,29 +12,35 @@ import { const currentDir = getCurrentDirPath(import.meta.url); const srcDirectory = path.join(currentDir, '../dist'); -// Declare type definitions -const typeDefinitions = `\ -/// - -declare module 'lucide-react-native' - -// Create interface extending SVGProps -export interface LucideProps extends Partial> { - size?: string | number -} - -export declare const createReactComponent: (iconName: string, iconNode: any[]) => (props: LucideProps) => JSX.Element; - -export type Icon = React.FC; - -// Generated icons -`; +const writeDeclarationFile = (typesFile, directory, content) => { + resetFile(typesFile, directory); + writeFile(content, typesFile, directory); +}; const ICONS_DIR = path.resolve(currentDir, '../../../icons'); const TYPES_FILE = 'lucide-react-native.d.ts'; -resetFile(TYPES_FILE, srcDirectory); -writeFile(typeDefinitions, TYPES_FILE, srcDirectory); +let declarationFileContent = `\ +/// +import { ReactSVG, FC, SVGProps } from 'react' + +declare module 'lucide-react-native' + +// Create interface extending SVGProps +export interface LucideProps extends Partial> { + size?: string | number +} + +export type LucideIcon = (props: LucideProps) => JSX.Element; + +export type IconNode = [elementName: keyof ReactSVG, attrs: Record][] + +export declare const createLucideIcon: (iconName: string, iconNode: IconNode) => LucideIcon; + +export type Icon = FC; + +// Generated icon +`; const svgFiles = readSvgDirectory(ICONS_DIR); @@ -41,8 +48,44 @@ svgFiles.forEach((svgFile) => { const iconName = path.basename(svgFile, '.svg'); const componentName = toPascalCase(iconName); - const exportTypeString = `export declare const ${componentName}: (props: LucideProps) => JSX.Element;\n`; - appendFile(exportTypeString, TYPES_FILE, srcDirectory); + declarationFileContent += `export declare const ${componentName}: LucideIcon;\n`; }); -console.log(`Generated ${TYPES_FILE} file with`, svgFiles.length, 'icons'); +const aliases = await getAliases(ICONS_DIR); + +declarationFileContent += `\n + +// Generated icon aliases +`; + +let aliasesCount = 0; + +svgFiles.forEach((svgFile) => { + const iconName = path.basename(svgFile, '.svg'); + const componentName = toPascalCase(iconName); + const iconAliases = aliases[iconName]?.aliases; + + declarationFileContent += `// ${componentName} aliases\n`; + declarationFileContent += `export declare const ${componentName}Icon: LucideIcon;\n`; + declarationFileContent += `export declare const Lucide${componentName}: LucideIcon;\n`; + aliasesCount += 1; + if (iconAliases != null && Array.isArray(iconAliases)) { + iconAliases.forEach((alias) => { + const componentNameAlias = toPascalCase(alias); + declarationFileContent += `export declare const ${componentNameAlias}: LucideIcon;\n`; + + aliasesCount += 1; + }); + } + + declarationFileContent += '\n'; +}); + +writeDeclarationFile(TYPES_FILE, srcDirectory, declarationFileContent); +console.log( + `Generated ${TYPES_FILE} file with`, + svgFiles.length, + 'icons and with', + aliasesCount, + 'aliases', +); diff --git a/packages/lucide-react-native/scripts/exportTemplate.mjs b/packages/lucide-react-native/scripts/exportTemplate.mjs index 91f9914..ee09fea 100644 --- a/packages/lucide-react-native/scripts/exportTemplate.mjs +++ b/packages/lucide-react-native/scripts/exportTemplate.mjs @@ -1,7 +1,7 @@ export default ({ componentName, children }) => ` -import createReactComponent from '../createReactComponent'; +import createLucideIcon from '../createLucideIcon'; -const ${componentName} = createReactComponent('${componentName}', ${JSON.stringify(children)}); +const ${componentName} = createLucideIcon('${componentName}', ${JSON.stringify(children)}); export default ${componentName}; `; diff --git a/packages/lucide-react-native/src/createReactComponent.ts b/packages/lucide-react-native/src/createLucideIcon.ts similarity index 92% rename from packages/lucide-react-native/src/createReactComponent.ts rename to packages/lucide-react-native/src/createLucideIcon.ts index a6151d0..5da0059 100644 --- a/packages/lucide-react-native/src/createReactComponent.ts +++ b/packages/lucide-react-native/src/createLucideIcon.ts @@ -10,7 +10,7 @@ export interface LucideProps extends SvgProps { size?: string | number } -const createReactComponent = (iconName: string, iconNode: IconNode) => { +const createLucideIcon = (iconName: string, iconNode: IconNode) => { const Component = forwardRef( ({ color = 'currentColor', size = 24, strokeWidth = 2, children, ...rest }: LucideProps, ref) => createElement( @@ -45,4 +45,4 @@ const createReactComponent = (iconName: string, iconNode: IconNode) => { return Component; }; -export default createReactComponent; +export default createLucideIcon; diff --git a/packages/lucide-react-native/src/lucide-react-native.ts b/packages/lucide-react-native/src/lucide-react-native.ts index 31d1f64..2ddd5eb 100644 --- a/packages/lucide-react-native/src/lucide-react-native.ts +++ b/packages/lucide-react-native/src/lucide-react-native.ts @@ -1,2 +1,4 @@ export * from './icons'; -export { default as createReactComponent } from './createReactComponent'; +export * as icons from './icons'; +export * from './aliases'; +export { default as createLucideIcon } from './createLucideIcon'; diff --git a/packages/lucide-react/package.json b/packages/lucide-react/package.json index eb585dd..7f36804 100644 --- a/packages/lucide-react/package.json +++ b/packages/lucide-react/package.json @@ -1,7 +1,7 @@ { "name": "lucide-react", "description": "A Lucide icon library package for React applications", - "version": "0.104.1", + "version": "0.105.0-alpha.4", "license": "ISC", "homepage": "https://lucide.dev", "bugs": "https://github.com/lucide-icons/lucide/issues", @@ -25,7 +25,7 @@ "build": "pnpm clean && pnpm copy:license && pnpm build:icons && pnpm typecheck && pnpm build:bundles && pnpm build:types", "copy:license": "cp ../../LICENSE ./LICENSE", "clean": "rm -rf dist && rm -rf stats && rm -rf ./src/icons/*.ts", - "build:icons": "node ../../scripts/buildIcons.mjs --output=./src --templateSrc=./scripts/exportTemplate.mjs --renderUniqueKey --iconFileExtension=.ts --exportFileName=index.ts", + "build:icons": "build-icons --output=./src --templateSrc=./scripts/exportTemplate.mjs --renderUniqueKey --withAliases --aliasesFileExtension=.ts --iconFileExtension=.ts --exportFileName=index.ts", "build:types": "node ./scripts/buildTypes.mjs", "build:bundles": "rollup -c ./rollup.config.mjs", "typecheck": "tsc", @@ -34,13 +34,13 @@ "version": "pnpm version --git-tag-version=false" }, "devDependencies": { + "@lucide/build-icons": "workspace:*", "@lucide/rollup-plugins": "workspace:*", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^11.2.6", "@types/prop-types": "^15.7.5", "@types/react": "^18.0.21", "@vitejs/plugin-react": "^2.1.0", - "prop-types": "^15.7.2", "react": "17.0.2", "react-dom": "17.0.2", "rollup": "^3.5.1", @@ -49,7 +49,6 @@ "vitest": "^0.24.3" }, "peerDependencies": { - "prop-types": "^15.7.2", "react": "^16.5.1 || ^17.0.0 || ^18.0.0" } } diff --git a/packages/lucide-react/rollup.config.mjs b/packages/lucide-react/rollup.config.mjs index 3439f60..e0a2154 100644 --- a/packages/lucide-react/rollup.config.mjs +++ b/packages/lucide-react/rollup.config.mjs @@ -1,4 +1,4 @@ -import plugins from '@lucide/rollup-plugins'; +import plugins, { replace } from '@lucide/rollup-plugins'; import pkg from './package.json' assert { type: 'json' }; const packageName = 'LucideReact'; @@ -39,7 +39,20 @@ const configs = bundles .map(({ inputs, outputDir, format, minify, preserveModules }) => inputs.map(input => ({ input, - plugins: plugins(pkg, minify), + plugins: [ + // This for aliases, only for esm + ...( + format !== 'esm' ? [ + replace({ + "export * from './aliases';": '', + "export * as icons from './icons';": '', + delimiters: ['', ''], + preventAssignment: false, + }), + ] : [] + ), + ...plugins(pkg, minify) + ], external: ['react', 'prop-types'], output: { name: packageName, diff --git a/packages/lucide-react/scripts/buildTypes.mjs b/packages/lucide-react/scripts/buildTypes.mjs index 1255dda..3d46644 100644 --- a/packages/lucide-react/scripts/buildTypes.mjs +++ b/packages/lucide-react/scripts/buildTypes.mjs @@ -1,6 +1,7 @@ import path from 'path'; +// eslint-disable-next-line import/no-extraneous-dependencies +import { getAliases } from '@lucide/build-icons'; import { - appendFile, readSvgDirectory, resetFile, toPascalCase, @@ -11,30 +12,35 @@ import { const currentDir = getCurrentDirPath(import.meta.url); const srcDirectory = path.join(currentDir, '../dist'); -// Declare type definitions -const typeDefinitions = `\ -/// -import { SVGAttributes } from 'react' - -declare module 'lucide-react' - -// Create interface extending SVGProps -export interface LucideProps extends Partial> { - size?: string | number -} - -export declare const createReactComponent: (iconName: string, iconNode: any[]) => (props: LucideProps) => JSX.Element; - -export type Icon = React.FC; - -// Generated icons -`; +const writeDeclarationFile = (typesFile, directory, content) => { + resetFile(typesFile, directory); + writeFile(content, typesFile, directory); +}; const ICONS_DIR = path.resolve(currentDir, '../../../icons'); const TYPES_FILE = 'lucide-react.d.ts'; -resetFile(TYPES_FILE, srcDirectory); -writeFile(typeDefinitions, TYPES_FILE, srcDirectory); +let declarationFileContent = `\ +/// +import { SVGAttributes, FC, SVGProps, ReactSVG } from 'react' + +declare module 'lucide-react' + +// Create interface extending SVGProps +export interface LucideProps extends Partial> { + size?: string | number +} + +export type LucideIcon = (props: LucideProps) => JSX.Element; + +export type IconNode = [elementName: keyof ReactSVG, attrs: Record][] + +export declare const createLucideIcon: (iconName: string, iconNode: IconNode) => LucideIcon; + +export type Icon = FC; + +// Generated icon +`; const svgFiles = readSvgDirectory(ICONS_DIR); @@ -42,8 +48,44 @@ svgFiles.forEach((svgFile) => { const iconName = path.basename(svgFile, '.svg'); const componentName = toPascalCase(iconName); - const exportTypeString = `export declare const ${componentName}: (props: LucideProps) => JSX.Element;\n`; - appendFile(exportTypeString, TYPES_FILE, srcDirectory); + declarationFileContent += `export declare const ${componentName}: LucideIcon;\n`; }); -console.log(`Generated ${TYPES_FILE} file with`, svgFiles.length, 'icons'); +const aliases = await getAliases(ICONS_DIR); + +declarationFileContent += `\n + +// Generated icon aliases +`; + +let aliasesCount = 0; + +svgFiles.forEach((svgFile) => { + const iconName = path.basename(svgFile, '.svg'); + const componentName = toPascalCase(iconName); + const iconAliases = aliases[iconName]?.aliases; + + declarationFileContent += `// ${componentName} aliases\n`; + declarationFileContent += `export declare const ${componentName}Icon: LucideIcon;\n`; + declarationFileContent += `export declare const Lucide${componentName}: LucideIcon;\n`; + aliasesCount += 1; + if (iconAliases != null && Array.isArray(iconAliases)) { + iconAliases.forEach((alias) => { + const componentNameAlias = toPascalCase(alias); + declarationFileContent += `export declare const ${componentNameAlias}: LucideIcon;\n`; + + aliasesCount += 1; + }); + } + + declarationFileContent += '\n'; +}); + +writeDeclarationFile(TYPES_FILE, srcDirectory, declarationFileContent); +console.log( + `Generated ${TYPES_FILE} file with`, + svgFiles.length, + 'icons and with', + aliasesCount, + 'aliases', +); diff --git a/packages/lucide-react/scripts/exportTemplate.mjs b/packages/lucide-react/scripts/exportTemplate.mjs index 91f9914..ee09fea 100644 --- a/packages/lucide-react/scripts/exportTemplate.mjs +++ b/packages/lucide-react/scripts/exportTemplate.mjs @@ -1,7 +1,7 @@ export default ({ componentName, children }) => ` -import createReactComponent from '../createReactComponent'; +import createLucideIcon from '../createLucideIcon'; -const ${componentName} = createReactComponent('${componentName}', ${JSON.stringify(children)}); +const ${componentName} = createLucideIcon('${componentName}', ${JSON.stringify(children)}); export default ${componentName}; `; diff --git a/packages/lucide-react/src/aliases.ts b/packages/lucide-react/src/aliases.ts new file mode 100644 index 0000000..4c7282e --- /dev/null +++ b/packages/lucide-react/src/aliases.ts @@ -0,0 +1,3480 @@ +// Accessibility aliases +export { default as AccessibilityIcon } from './icons/accessibility'; +export { default as LucideAccessibility } from './icons/accessibility'; + +// Activity aliases +export { default as ActivityIcon } from './icons/activity'; +export { default as LucideActivity } from './icons/activity'; + +// AirVent aliases +export { default as AirVentIcon } from './icons/air-vent'; +export { default as LucideAirVent } from './icons/air-vent'; + +// Airplay aliases +export { default as AirplayIcon } from './icons/airplay'; +export { default as LucideAirplay } from './icons/airplay'; + +// AlarmCheck aliases +export { default as AlarmCheckIcon } from './icons/alarm-check'; +export { default as LucideAlarmCheck } from './icons/alarm-check'; + +// AlarmClockOff aliases +export { default as AlarmClockOffIcon } from './icons/alarm-clock-off'; +export { default as LucideAlarmClockOff } from './icons/alarm-clock-off'; + +// AlarmClock aliases +export { default as AlarmClockIcon } from './icons/alarm-clock'; +export { default as LucideAlarmClock } from './icons/alarm-clock'; + +// AlarmMinus aliases +export { default as AlarmMinusIcon } from './icons/alarm-minus'; +export { default as LucideAlarmMinus } from './icons/alarm-minus'; + +// AlarmPlus aliases +export { default as AlarmPlusIcon } from './icons/alarm-plus'; +export { default as LucideAlarmPlus } from './icons/alarm-plus'; + +// Album aliases +export { default as AlbumIcon } from './icons/album'; +export { default as LucideAlbum } from './icons/album'; + +// AlertCircle aliases +export { default as AlertCircleIcon } from './icons/alert-circle'; +export { default as LucideAlertCircle } from './icons/alert-circle'; + +// AlertOctagon aliases +export { default as AlertOctagonIcon } from './icons/alert-octagon'; +export { default as LucideAlertOctagon } from './icons/alert-octagon'; + +// AlertTriangle aliases +export { default as AlertTriangleIcon } from './icons/alert-triangle'; +export { default as LucideAlertTriangle } from './icons/alert-triangle'; + +// AlignCenterHorizontal aliases +export { default as AlignCenterHorizontalIcon } from './icons/align-center-horizontal'; +export { default as LucideAlignCenterHorizontal } from './icons/align-center-horizontal'; + +// AlignCenterVertical aliases +export { default as AlignCenterVerticalIcon } from './icons/align-center-vertical'; +export { default as LucideAlignCenterVertical } from './icons/align-center-vertical'; + +// AlignCenter aliases +export { default as AlignCenterIcon } from './icons/align-center'; +export { default as LucideAlignCenter } from './icons/align-center'; + +// AlignEndHorizontal aliases +export { default as AlignEndHorizontalIcon } from './icons/align-end-horizontal'; +export { default as LucideAlignEndHorizontal } from './icons/align-end-horizontal'; + +// AlignEndVertical aliases +export { default as AlignEndVerticalIcon } from './icons/align-end-vertical'; +export { default as LucideAlignEndVertical } from './icons/align-end-vertical'; + +// AlignHorizontalDistributeCenter aliases +export { default as AlignHorizontalDistributeCenterIcon } from './icons/align-horizontal-distribute-center'; +export { default as LucideAlignHorizontalDistributeCenter } from './icons/align-horizontal-distribute-center'; + +// AlignHorizontalDistributeEnd aliases +export { default as AlignHorizontalDistributeEndIcon } from './icons/align-horizontal-distribute-end'; +export { default as LucideAlignHorizontalDistributeEnd } from './icons/align-horizontal-distribute-end'; + +// AlignHorizontalDistributeStart aliases +export { default as AlignHorizontalDistributeStartIcon } from './icons/align-horizontal-distribute-start'; +export { default as LucideAlignHorizontalDistributeStart } from './icons/align-horizontal-distribute-start'; + +// AlignHorizontalJustifyCenter aliases +export { default as AlignHorizontalJustifyCenterIcon } from './icons/align-horizontal-justify-center'; +export { default as LucideAlignHorizontalJustifyCenter } from './icons/align-horizontal-justify-center'; + +// AlignHorizontalJustifyEnd aliases +export { default as AlignHorizontalJustifyEndIcon } from './icons/align-horizontal-justify-end'; +export { default as LucideAlignHorizontalJustifyEnd } from './icons/align-horizontal-justify-end'; + +// AlignHorizontalJustifyStart aliases +export { default as AlignHorizontalJustifyStartIcon } from './icons/align-horizontal-justify-start'; +export { default as LucideAlignHorizontalJustifyStart } from './icons/align-horizontal-justify-start'; + +// AlignHorizontalSpaceAround aliases +export { default as AlignHorizontalSpaceAroundIcon } from './icons/align-horizontal-space-around'; +export { default as LucideAlignHorizontalSpaceAround } from './icons/align-horizontal-space-around'; + +// AlignHorizontalSpaceBetween aliases +export { default as AlignHorizontalSpaceBetweenIcon } from './icons/align-horizontal-space-between'; +export { default as LucideAlignHorizontalSpaceBetween } from './icons/align-horizontal-space-between'; + +// AlignJustify aliases +export { default as AlignJustifyIcon } from './icons/align-justify'; +export { default as LucideAlignJustify } from './icons/align-justify'; + +// AlignLeft aliases +export { default as AlignLeftIcon } from './icons/align-left'; +export { default as LucideAlignLeft } from './icons/align-left'; + +// AlignRight aliases +export { default as AlignRightIcon } from './icons/align-right'; +export { default as LucideAlignRight } from './icons/align-right'; + +// AlignStartHorizontal aliases +export { default as AlignStartHorizontalIcon } from './icons/align-start-horizontal'; +export { default as LucideAlignStartHorizontal } from './icons/align-start-horizontal'; + +// AlignStartVertical aliases +export { default as AlignStartVerticalIcon } from './icons/align-start-vertical'; +export { default as LucideAlignStartVertical } from './icons/align-start-vertical'; + +// AlignVerticalDistributeCenter aliases +export { default as AlignVerticalDistributeCenterIcon } from './icons/align-vertical-distribute-center'; +export { default as LucideAlignVerticalDistributeCenter } from './icons/align-vertical-distribute-center'; + +// AlignVerticalDistributeEnd aliases +export { default as AlignVerticalDistributeEndIcon } from './icons/align-vertical-distribute-end'; +export { default as LucideAlignVerticalDistributeEnd } from './icons/align-vertical-distribute-end'; + +// AlignVerticalDistributeStart aliases +export { default as AlignVerticalDistributeStartIcon } from './icons/align-vertical-distribute-start'; +export { default as LucideAlignVerticalDistributeStart } from './icons/align-vertical-distribute-start'; + +// AlignVerticalJustifyCenter aliases +export { default as AlignVerticalJustifyCenterIcon } from './icons/align-vertical-justify-center'; +export { default as LucideAlignVerticalJustifyCenter } from './icons/align-vertical-justify-center'; + +// AlignVerticalJustifyEnd aliases +export { default as AlignVerticalJustifyEndIcon } from './icons/align-vertical-justify-end'; +export { default as LucideAlignVerticalJustifyEnd } from './icons/align-vertical-justify-end'; + +// AlignVerticalJustifyStart aliases +export { default as AlignVerticalJustifyStartIcon } from './icons/align-vertical-justify-start'; +export { default as LucideAlignVerticalJustifyStart } from './icons/align-vertical-justify-start'; + +// AlignVerticalSpaceAround aliases +export { default as AlignVerticalSpaceAroundIcon } from './icons/align-vertical-space-around'; +export { default as LucideAlignVerticalSpaceAround } from './icons/align-vertical-space-around'; + +// AlignVerticalSpaceBetween aliases +export { default as AlignVerticalSpaceBetweenIcon } from './icons/align-vertical-space-between'; +export { default as LucideAlignVerticalSpaceBetween } from './icons/align-vertical-space-between'; + +// Anchor aliases +export { default as AnchorIcon } from './icons/anchor'; +export { default as LucideAnchor } from './icons/anchor'; + +// Angry aliases +export { default as AngryIcon } from './icons/angry'; +export { default as LucideAngry } from './icons/angry'; + +// Annoyed aliases +export { default as AnnoyedIcon } from './icons/annoyed'; +export { default as LucideAnnoyed } from './icons/annoyed'; + +// Aperture aliases +export { default as ApertureIcon } from './icons/aperture'; +export { default as LucideAperture } from './icons/aperture'; + +// Apple aliases +export { default as AppleIcon } from './icons/apple'; +export { default as LucideApple } from './icons/apple'; + +// ArchiveRestore aliases +export { default as ArchiveRestoreIcon } from './icons/archive-restore'; +export { default as LucideArchiveRestore } from './icons/archive-restore'; + +// Archive aliases +export { default as ArchiveIcon } from './icons/archive'; +export { default as LucideArchive } from './icons/archive'; + +// Armchair aliases +export { default as ArmchairIcon } from './icons/armchair'; +export { default as LucideArmchair } from './icons/armchair'; + +// ArrowBigDown aliases +export { default as ArrowBigDownIcon } from './icons/arrow-big-down'; +export { default as LucideArrowBigDown } from './icons/arrow-big-down'; + +// ArrowBigLeft aliases +export { default as ArrowBigLeftIcon } from './icons/arrow-big-left'; +export { default as LucideArrowBigLeft } from './icons/arrow-big-left'; + +// ArrowBigRight aliases +export { default as ArrowBigRightIcon } from './icons/arrow-big-right'; +export { default as LucideArrowBigRight } from './icons/arrow-big-right'; + +// ArrowBigUp aliases +export { default as ArrowBigUpIcon } from './icons/arrow-big-up'; +export { default as LucideArrowBigUp } from './icons/arrow-big-up'; + +// ArrowDownCircle aliases +export { default as ArrowDownCircleIcon } from './icons/arrow-down-circle'; +export { default as LucideArrowDownCircle } from './icons/arrow-down-circle'; + +// ArrowDownLeft aliases +export { default as ArrowDownLeftIcon } from './icons/arrow-down-left'; +export { default as LucideArrowDownLeft } from './icons/arrow-down-left'; + +// ArrowDownRight aliases +export { default as ArrowDownRightIcon } from './icons/arrow-down-right'; +export { default as LucideArrowDownRight } from './icons/arrow-down-right'; + +// ArrowDown aliases +export { default as ArrowDownIcon } from './icons/arrow-down'; +export { default as LucideArrowDown } from './icons/arrow-down'; + +// ArrowLeftCircle aliases +export { default as ArrowLeftCircleIcon } from './icons/arrow-left-circle'; +export { default as LucideArrowLeftCircle } from './icons/arrow-left-circle'; + +// ArrowLeftRight aliases +export { default as ArrowLeftRightIcon } from './icons/arrow-left-right'; +export { default as LucideArrowLeftRight } from './icons/arrow-left-right'; + +// ArrowLeft aliases +export { default as ArrowLeftIcon } from './icons/arrow-left'; +export { default as LucideArrowLeft } from './icons/arrow-left'; + +// ArrowRightCircle aliases +export { default as ArrowRightCircleIcon } from './icons/arrow-right-circle'; +export { default as LucideArrowRightCircle } from './icons/arrow-right-circle'; + +// ArrowRight aliases +export { default as ArrowRightIcon } from './icons/arrow-right'; +export { default as LucideArrowRight } from './icons/arrow-right'; + +// ArrowUpCircle aliases +export { default as ArrowUpCircleIcon } from './icons/arrow-up-circle'; +export { default as LucideArrowUpCircle } from './icons/arrow-up-circle'; + +// ArrowUpDown aliases +export { default as ArrowUpDownIcon } from './icons/arrow-up-down'; +export { default as LucideArrowUpDown } from './icons/arrow-up-down'; + +// ArrowUpLeft aliases +export { default as ArrowUpLeftIcon } from './icons/arrow-up-left'; +export { default as LucideArrowUpLeft } from './icons/arrow-up-left'; + +// ArrowUpRight aliases +export { default as ArrowUpRightIcon } from './icons/arrow-up-right'; +export { default as LucideArrowUpRight } from './icons/arrow-up-right'; + +// ArrowUp aliases +export { default as ArrowUpIcon } from './icons/arrow-up'; +export { default as LucideArrowUp } from './icons/arrow-up'; + +// Asterisk aliases +export { default as AsteriskIcon } from './icons/asterisk'; +export { default as LucideAsterisk } from './icons/asterisk'; + +// AtSign aliases +export { default as AtSignIcon } from './icons/at-sign'; +export { default as LucideAtSign } from './icons/at-sign'; + +// Award aliases +export { default as AwardIcon } from './icons/award'; +export { default as LucideAward } from './icons/award'; + +// Axe aliases +export { default as AxeIcon } from './icons/axe'; +export { default as LucideAxe } from './icons/axe'; + +// Axis3d aliases +export { default as Axis3dIcon } from './icons/axis-3d'; +export { default as LucideAxis3d } from './icons/axis-3d'; + +// Baby aliases +export { default as BabyIcon } from './icons/baby'; +export { default as LucideBaby } from './icons/baby'; + +// Backpack aliases +export { default as BackpackIcon } from './icons/backpack'; +export { default as LucideBackpack } from './icons/backpack'; + +// BaggageClaim aliases +export { default as BaggageClaimIcon } from './icons/baggage-claim'; +export { default as LucideBaggageClaim } from './icons/baggage-claim'; + +// Banana aliases +export { default as BananaIcon } from './icons/banana'; +export { default as LucideBanana } from './icons/banana'; + +// Banknote aliases +export { default as BanknoteIcon } from './icons/banknote'; +export { default as LucideBanknote } from './icons/banknote'; + +// BarChart2 aliases +export { default as BarChart2Icon } from './icons/bar-chart-2'; +export { default as LucideBarChart2 } from './icons/bar-chart-2'; + +// BarChart3 aliases +export { default as BarChart3Icon } from './icons/bar-chart-3'; +export { default as LucideBarChart3 } from './icons/bar-chart-3'; + +// BarChart4 aliases +export { default as BarChart4Icon } from './icons/bar-chart-4'; +export { default as LucideBarChart4 } from './icons/bar-chart-4'; + +// BarChartHorizontal aliases +export { default as BarChartHorizontalIcon } from './icons/bar-chart-horizontal'; +export { default as LucideBarChartHorizontal } from './icons/bar-chart-horizontal'; + +// BarChart aliases +export { default as BarChartIcon } from './icons/bar-chart'; +export { default as LucideBarChart } from './icons/bar-chart'; + +// Baseline aliases +export { default as BaselineIcon } from './icons/baseline'; +export { default as LucideBaseline } from './icons/baseline'; + +// Bath aliases +export { default as BathIcon } from './icons/bath'; +export { default as LucideBath } from './icons/bath'; + +// BatteryCharging aliases +export { default as BatteryChargingIcon } from './icons/battery-charging'; +export { default as LucideBatteryCharging } from './icons/battery-charging'; + +// BatteryFull aliases +export { default as BatteryFullIcon } from './icons/battery-full'; +export { default as LucideBatteryFull } from './icons/battery-full'; + +// BatteryLow aliases +export { default as BatteryLowIcon } from './icons/battery-low'; +export { default as LucideBatteryLow } from './icons/battery-low'; + +// BatteryMedium aliases +export { default as BatteryMediumIcon } from './icons/battery-medium'; +export { default as LucideBatteryMedium } from './icons/battery-medium'; + +// Battery aliases +export { default as BatteryIcon } from './icons/battery'; +export { default as LucideBattery } from './icons/battery'; + +// Beaker aliases +export { default as BeakerIcon } from './icons/beaker'; +export { default as LucideBeaker } from './icons/beaker'; + +// BeanOff aliases +export { default as BeanOffIcon } from './icons/bean-off'; +export { default as LucideBeanOff } from './icons/bean-off'; + +// Bean aliases +export { default as BeanIcon } from './icons/bean'; +export { default as LucideBean } from './icons/bean'; + +// BedDouble aliases +export { default as BedDoubleIcon } from './icons/bed-double'; +export { default as LucideBedDouble } from './icons/bed-double'; + +// BedSingle aliases +export { default as BedSingleIcon } from './icons/bed-single'; +export { default as LucideBedSingle } from './icons/bed-single'; + +// Bed aliases +export { default as BedIcon } from './icons/bed'; +export { default as LucideBed } from './icons/bed'; + +// Beer aliases +export { default as BeerIcon } from './icons/beer'; +export { default as LucideBeer } from './icons/beer'; + +// BellMinus aliases +export { default as BellMinusIcon } from './icons/bell-minus'; +export { default as LucideBellMinus } from './icons/bell-minus'; + +// BellOff aliases +export { default as BellOffIcon } from './icons/bell-off'; +export { default as LucideBellOff } from './icons/bell-off'; + +// BellPlus aliases +export { default as BellPlusIcon } from './icons/bell-plus'; +export { default as LucideBellPlus } from './icons/bell-plus'; + +// BellRing aliases +export { default as BellRingIcon } from './icons/bell-ring'; +export { default as LucideBellRing } from './icons/bell-ring'; + +// Bell aliases +export { default as BellIcon } from './icons/bell'; +export { default as LucideBell } from './icons/bell'; + +// Bike aliases +export { default as BikeIcon } from './icons/bike'; +export { default as LucideBike } from './icons/bike'; + +// Binary aliases +export { default as BinaryIcon } from './icons/binary'; +export { default as LucideBinary } from './icons/binary'; + +// Bitcoin aliases +export { default as BitcoinIcon } from './icons/bitcoin'; +export { default as LucideBitcoin } from './icons/bitcoin'; + +// BluetoothConnected aliases +export { default as BluetoothConnectedIcon } from './icons/bluetooth-connected'; +export { default as LucideBluetoothConnected } from './icons/bluetooth-connected'; + +// BluetoothOff aliases +export { default as BluetoothOffIcon } from './icons/bluetooth-off'; +export { default as LucideBluetoothOff } from './icons/bluetooth-off'; + +// BluetoothSearching aliases +export { default as BluetoothSearchingIcon } from './icons/bluetooth-searching'; +export { default as LucideBluetoothSearching } from './icons/bluetooth-searching'; + +// Bluetooth aliases +export { default as BluetoothIcon } from './icons/bluetooth'; +export { default as LucideBluetooth } from './icons/bluetooth'; + +// Bold aliases +export { default as BoldIcon } from './icons/bold'; +export { default as LucideBold } from './icons/bold'; + +// Bomb aliases +export { default as BombIcon } from './icons/bomb'; +export { default as LucideBomb } from './icons/bomb'; + +// Bone aliases +export { default as BoneIcon } from './icons/bone'; +export { default as LucideBone } from './icons/bone'; + +// BookOpenCheck aliases +export { default as BookOpenCheckIcon } from './icons/book-open-check'; +export { default as LucideBookOpenCheck } from './icons/book-open-check'; + +// BookOpen aliases +export { default as BookOpenIcon } from './icons/book-open'; +export { default as LucideBookOpen } from './icons/book-open'; + +// Book aliases +export { default as BookIcon } from './icons/book'; +export { default as LucideBook } from './icons/book'; + +// BookmarkMinus aliases +export { default as BookmarkMinusIcon } from './icons/bookmark-minus'; +export { default as LucideBookmarkMinus } from './icons/bookmark-minus'; + +// BookmarkPlus aliases +export { default as BookmarkPlusIcon } from './icons/bookmark-plus'; +export { default as LucideBookmarkPlus } from './icons/bookmark-plus'; + +// Bookmark aliases +export { default as BookmarkIcon } from './icons/bookmark'; +export { default as LucideBookmark } from './icons/bookmark'; + +// Bot aliases +export { default as BotIcon } from './icons/bot'; +export { default as LucideBot } from './icons/bot'; + +// BoxSelect aliases +export { default as BoxSelectIcon } from './icons/box-select'; +export { default as LucideBoxSelect } from './icons/box-select'; + +// Box aliases +export { default as BoxIcon } from './icons/box'; +export { default as LucideBox } from './icons/box'; + +// Boxes aliases +export { default as BoxesIcon } from './icons/boxes'; +export { default as LucideBoxes } from './icons/boxes'; + +// Briefcase aliases +export { default as BriefcaseIcon } from './icons/briefcase'; +export { default as LucideBriefcase } from './icons/briefcase'; + +// Brush aliases +export { default as BrushIcon } from './icons/brush'; +export { default as LucideBrush } from './icons/brush'; + +// Bug aliases +export { default as BugIcon } from './icons/bug'; +export { default as LucideBug } from './icons/bug'; + +// Building2 aliases +export { default as Building2Icon } from './icons/building-2'; +export { default as LucideBuilding2 } from './icons/building-2'; + +// Building aliases +export { default as BuildingIcon } from './icons/building'; +export { default as LucideBuilding } from './icons/building'; + +// Bus aliases +export { default as BusIcon } from './icons/bus'; +export { default as LucideBus } from './icons/bus'; + +// Cake aliases +export { default as CakeIcon } from './icons/cake'; +export { default as LucideCake } from './icons/cake'; + +// Calculator aliases +export { default as CalculatorIcon } from './icons/calculator'; +export { default as LucideCalculator } from './icons/calculator'; + +// CalendarCheck2 aliases +export { default as CalendarCheck2Icon } from './icons/calendar-check-2'; +export { default as LucideCalendarCheck2 } from './icons/calendar-check-2'; + +// CalendarCheck aliases +export { default as CalendarCheckIcon } from './icons/calendar-check'; +export { default as LucideCalendarCheck } from './icons/calendar-check'; + +// CalendarClock aliases +export { default as CalendarClockIcon } from './icons/calendar-clock'; +export { default as LucideCalendarClock } from './icons/calendar-clock'; + +// CalendarDays aliases +export { default as CalendarDaysIcon } from './icons/calendar-days'; +export { default as LucideCalendarDays } from './icons/calendar-days'; + +// CalendarHeart aliases +export { default as CalendarHeartIcon } from './icons/calendar-heart'; +export { default as LucideCalendarHeart } from './icons/calendar-heart'; + +// CalendarMinus aliases +export { default as CalendarMinusIcon } from './icons/calendar-minus'; +export { default as LucideCalendarMinus } from './icons/calendar-minus'; + +// CalendarOff aliases +export { default as CalendarOffIcon } from './icons/calendar-off'; +export { default as LucideCalendarOff } from './icons/calendar-off'; + +// CalendarPlus aliases +export { default as CalendarPlusIcon } from './icons/calendar-plus'; +export { default as LucideCalendarPlus } from './icons/calendar-plus'; + +// CalendarRange aliases +export { default as CalendarRangeIcon } from './icons/calendar-range'; +export { default as LucideCalendarRange } from './icons/calendar-range'; + +// CalendarSearch aliases +export { default as CalendarSearchIcon } from './icons/calendar-search'; +export { default as LucideCalendarSearch } from './icons/calendar-search'; + +// CalendarX2 aliases +export { default as CalendarX2Icon } from './icons/calendar-x-2'; +export { default as LucideCalendarX2 } from './icons/calendar-x-2'; + +// CalendarX aliases +export { default as CalendarXIcon } from './icons/calendar-x'; +export { default as LucideCalendarX } from './icons/calendar-x'; + +// Calendar aliases +export { default as CalendarIcon } from './icons/calendar'; +export { default as LucideCalendar } from './icons/calendar'; + +// CameraOff aliases +export { default as CameraOffIcon } from './icons/camera-off'; +export { default as LucideCameraOff } from './icons/camera-off'; + +// Camera aliases +export { default as CameraIcon } from './icons/camera'; +export { default as LucideCamera } from './icons/camera'; + +// CandyOff aliases +export { default as CandyOffIcon } from './icons/candy-off'; +export { default as LucideCandyOff } from './icons/candy-off'; + +// Candy aliases +export { default as CandyIcon } from './icons/candy'; +export { default as LucideCandy } from './icons/candy'; + +// Car aliases +export { default as CarIcon } from './icons/car'; +export { default as LucideCar } from './icons/car'; + +// Carrot aliases +export { default as CarrotIcon } from './icons/carrot'; +export { default as LucideCarrot } from './icons/carrot'; + +// Cast aliases +export { default as CastIcon } from './icons/cast'; +export { default as LucideCast } from './icons/cast'; + +// Cat aliases +export { default as CatIcon } from './icons/cat'; +export { default as LucideCat } from './icons/cat'; + +// CheckCheck aliases +export { default as CheckCheckIcon } from './icons/check-check'; +export { default as LucideCheckCheck } from './icons/check-check'; + +// CheckCircle2 aliases +export { default as CheckCircle2Icon } from './icons/check-circle-2'; +export { default as LucideCheckCircle2 } from './icons/check-circle-2'; + +// CheckCircle aliases +export { default as CheckCircleIcon } from './icons/check-circle'; +export { default as LucideCheckCircle } from './icons/check-circle'; + +// CheckSquare aliases +export { default as CheckSquareIcon } from './icons/check-square'; +export { default as LucideCheckSquare } from './icons/check-square'; + +// Check aliases +export { default as CheckIcon } from './icons/check'; +export { default as LucideCheck } from './icons/check'; + +// ChefHat aliases +export { default as ChefHatIcon } from './icons/chef-hat'; +export { default as LucideChefHat } from './icons/chef-hat'; + +// Cherry aliases +export { default as CherryIcon } from './icons/cherry'; +export { default as LucideCherry } from './icons/cherry'; + +// ChevronDown aliases +export { default as ChevronDownIcon } from './icons/chevron-down'; +export { default as LucideChevronDown } from './icons/chevron-down'; + +// ChevronFirst aliases +export { default as ChevronFirstIcon } from './icons/chevron-first'; +export { default as LucideChevronFirst } from './icons/chevron-first'; + +// ChevronLast aliases +export { default as ChevronLastIcon } from './icons/chevron-last'; +export { default as LucideChevronLast } from './icons/chevron-last'; + +// ChevronLeft aliases +export { default as ChevronLeftIcon } from './icons/chevron-left'; +export { default as LucideChevronLeft } from './icons/chevron-left'; + +// ChevronRight aliases +export { default as ChevronRightIcon } from './icons/chevron-right'; +export { default as LucideChevronRight } from './icons/chevron-right'; + +// ChevronUp aliases +export { default as ChevronUpIcon } from './icons/chevron-up'; +export { default as LucideChevronUp } from './icons/chevron-up'; + +// ChevronsDownUp aliases +export { default as ChevronsDownUpIcon } from './icons/chevrons-down-up'; +export { default as LucideChevronsDownUp } from './icons/chevrons-down-up'; + +// ChevronsDown aliases +export { default as ChevronsDownIcon } from './icons/chevrons-down'; +export { default as LucideChevronsDown } from './icons/chevrons-down'; + +// ChevronsLeftRight aliases +export { default as ChevronsLeftRightIcon } from './icons/chevrons-left-right'; +export { default as LucideChevronsLeftRight } from './icons/chevrons-left-right'; + +// ChevronsLeft aliases +export { default as ChevronsLeftIcon } from './icons/chevrons-left'; +export { default as LucideChevronsLeft } from './icons/chevrons-left'; + +// ChevronsRightLeft aliases +export { default as ChevronsRightLeftIcon } from './icons/chevrons-right-left'; +export { default as LucideChevronsRightLeft } from './icons/chevrons-right-left'; + +// ChevronsRight aliases +export { default as ChevronsRightIcon } from './icons/chevrons-right'; +export { default as LucideChevronsRight } from './icons/chevrons-right'; + +// ChevronsUpDown aliases +export { default as ChevronsUpDownIcon } from './icons/chevrons-up-down'; +export { default as LucideChevronsUpDown } from './icons/chevrons-up-down'; + +// ChevronsUp aliases +export { default as ChevronsUpIcon } from './icons/chevrons-up'; +export { default as LucideChevronsUp } from './icons/chevrons-up'; + +// Chrome aliases +export { default as ChromeIcon } from './icons/chrome'; +export { default as LucideChrome } from './icons/chrome'; + +// CigaretteOff aliases +export { default as CigaretteOffIcon } from './icons/cigarette-off'; +export { default as LucideCigaretteOff } from './icons/cigarette-off'; + +// Cigarette aliases +export { default as CigaretteIcon } from './icons/cigarette'; +export { default as LucideCigarette } from './icons/cigarette'; + +// CircleDot aliases +export { default as CircleDotIcon } from './icons/circle-dot'; +export { default as LucideCircleDot } from './icons/circle-dot'; + +// CircleEllipsis aliases +export { default as CircleEllipsisIcon } from './icons/circle-ellipsis'; +export { default as LucideCircleEllipsis } from './icons/circle-ellipsis'; + +// CircleSlashed aliases +export { default as CircleSlashedIcon } from './icons/circle-slashed'; +export { default as LucideCircleSlashed } from './icons/circle-slashed'; + +// Circle aliases +export { default as CircleIcon } from './icons/circle'; +export { default as LucideCircle } from './icons/circle'; + +// Citrus aliases +export { default as CitrusIcon } from './icons/citrus'; +export { default as LucideCitrus } from './icons/citrus'; + +// Clapperboard aliases +export { default as ClapperboardIcon } from './icons/clapperboard'; +export { default as LucideClapperboard } from './icons/clapperboard'; + +// ClipboardCheck aliases +export { default as ClipboardCheckIcon } from './icons/clipboard-check'; +export { default as LucideClipboardCheck } from './icons/clipboard-check'; + +// ClipboardCopy aliases +export { default as ClipboardCopyIcon } from './icons/clipboard-copy'; +export { default as LucideClipboardCopy } from './icons/clipboard-copy'; + +// ClipboardEdit aliases +export { default as ClipboardEditIcon } from './icons/clipboard-edit'; +export { default as LucideClipboardEdit } from './icons/clipboard-edit'; + +// ClipboardList aliases +export { default as ClipboardListIcon } from './icons/clipboard-list'; +export { default as LucideClipboardList } from './icons/clipboard-list'; + +// ClipboardSignature aliases +export { default as ClipboardSignatureIcon } from './icons/clipboard-signature'; +export { default as LucideClipboardSignature } from './icons/clipboard-signature'; + +// ClipboardType aliases +export { default as ClipboardTypeIcon } from './icons/clipboard-type'; +export { default as LucideClipboardType } from './icons/clipboard-type'; + +// ClipboardX aliases +export { default as ClipboardXIcon } from './icons/clipboard-x'; +export { default as LucideClipboardX } from './icons/clipboard-x'; + +// Clipboard aliases +export { default as ClipboardIcon } from './icons/clipboard'; +export { default as LucideClipboard } from './icons/clipboard'; + +// Clock1 aliases +export { default as Clock1Icon } from './icons/clock-1'; +export { default as LucideClock1 } from './icons/clock-1'; + +// Clock10 aliases +export { default as Clock10Icon } from './icons/clock-10'; +export { default as LucideClock10 } from './icons/clock-10'; + +// Clock11 aliases +export { default as Clock11Icon } from './icons/clock-11'; +export { default as LucideClock11 } from './icons/clock-11'; + +// Clock12 aliases +export { default as Clock12Icon } from './icons/clock-12'; +export { default as LucideClock12 } from './icons/clock-12'; + +// Clock2 aliases +export { default as Clock2Icon } from './icons/clock-2'; +export { default as LucideClock2 } from './icons/clock-2'; + +// Clock3 aliases +export { default as Clock3Icon } from './icons/clock-3'; +export { default as LucideClock3 } from './icons/clock-3'; + +// Clock4 aliases +export { default as Clock4Icon } from './icons/clock-4'; +export { default as LucideClock4 } from './icons/clock-4'; + +// Clock5 aliases +export { default as Clock5Icon } from './icons/clock-5'; +export { default as LucideClock5 } from './icons/clock-5'; + +// Clock6 aliases +export { default as Clock6Icon } from './icons/clock-6'; +export { default as LucideClock6 } from './icons/clock-6'; + +// Clock7 aliases +export { default as Clock7Icon } from './icons/clock-7'; +export { default as LucideClock7 } from './icons/clock-7'; + +// Clock8 aliases +export { default as Clock8Icon } from './icons/clock-8'; +export { default as LucideClock8 } from './icons/clock-8'; + +// Clock9 aliases +export { default as Clock9Icon } from './icons/clock-9'; +export { default as LucideClock9 } from './icons/clock-9'; + +// Clock aliases +export { default as ClockIcon } from './icons/clock'; +export { default as LucideClock } from './icons/clock'; + +// CloudCog aliases +export { default as CloudCogIcon } from './icons/cloud-cog'; +export { default as LucideCloudCog } from './icons/cloud-cog'; + +// CloudDrizzle aliases +export { default as CloudDrizzleIcon } from './icons/cloud-drizzle'; +export { default as LucideCloudDrizzle } from './icons/cloud-drizzle'; + +// CloudFog aliases +export { default as CloudFogIcon } from './icons/cloud-fog'; +export { default as LucideCloudFog } from './icons/cloud-fog'; + +// CloudHail aliases +export { default as CloudHailIcon } from './icons/cloud-hail'; +export { default as LucideCloudHail } from './icons/cloud-hail'; + +// CloudLightning aliases +export { default as CloudLightningIcon } from './icons/cloud-lightning'; +export { default as LucideCloudLightning } from './icons/cloud-lightning'; + +// CloudMoonRain aliases +export { default as CloudMoonRainIcon } from './icons/cloud-moon-rain'; +export { default as LucideCloudMoonRain } from './icons/cloud-moon-rain'; + +// CloudMoon aliases +export { default as CloudMoonIcon } from './icons/cloud-moon'; +export { default as LucideCloudMoon } from './icons/cloud-moon'; + +// CloudOff aliases +export { default as CloudOffIcon } from './icons/cloud-off'; +export { default as LucideCloudOff } from './icons/cloud-off'; + +// CloudRainWind aliases +export { default as CloudRainWindIcon } from './icons/cloud-rain-wind'; +export { default as LucideCloudRainWind } from './icons/cloud-rain-wind'; + +// CloudRain aliases +export { default as CloudRainIcon } from './icons/cloud-rain'; +export { default as LucideCloudRain } from './icons/cloud-rain'; + +// CloudSnow aliases +export { default as CloudSnowIcon } from './icons/cloud-snow'; +export { default as LucideCloudSnow } from './icons/cloud-snow'; + +// CloudSunRain aliases +export { default as CloudSunRainIcon } from './icons/cloud-sun-rain'; +export { default as LucideCloudSunRain } from './icons/cloud-sun-rain'; + +// CloudSun aliases +export { default as CloudSunIcon } from './icons/cloud-sun'; +export { default as LucideCloudSun } from './icons/cloud-sun'; + +// Cloud aliases +export { default as CloudIcon } from './icons/cloud'; +export { default as LucideCloud } from './icons/cloud'; + +// Cloudy aliases +export { default as CloudyIcon } from './icons/cloudy'; +export { default as LucideCloudy } from './icons/cloudy'; + +// Clover aliases +export { default as CloverIcon } from './icons/clover'; +export { default as LucideClover } from './icons/clover'; + +// Code2 aliases +export { default as Code2Icon } from './icons/code-2'; +export { default as LucideCode2 } from './icons/code-2'; + +// Code aliases +export { default as CodeIcon } from './icons/code'; +export { default as LucideCode } from './icons/code'; + +// Codepen aliases +export { default as CodepenIcon } from './icons/codepen'; +export { default as LucideCodepen } from './icons/codepen'; + +// Codesandbox aliases +export { default as CodesandboxIcon } from './icons/codesandbox'; +export { default as LucideCodesandbox } from './icons/codesandbox'; + +// Coffee aliases +export { default as CoffeeIcon } from './icons/coffee'; +export { default as LucideCoffee } from './icons/coffee'; + +// Cog aliases +export { default as CogIcon } from './icons/cog'; +export { default as LucideCog } from './icons/cog'; + +// Coins aliases +export { default as CoinsIcon } from './icons/coins'; +export { default as LucideCoins } from './icons/coins'; + +// Columns aliases +export { default as ColumnsIcon } from './icons/columns'; +export { default as LucideColumns } from './icons/columns'; + +// Command aliases +export { default as CommandIcon } from './icons/command'; +export { default as LucideCommand } from './icons/command'; + +// Compass aliases +export { default as CompassIcon } from './icons/compass'; +export { default as LucideCompass } from './icons/compass'; + +// Component aliases +export { default as ComponentIcon } from './icons/component'; +export { default as LucideComponent } from './icons/component'; + +// ConciergeBell aliases +export { default as ConciergeBellIcon } from './icons/concierge-bell'; +export { default as LucideConciergeBell } from './icons/concierge-bell'; + +// Contact aliases +export { default as ContactIcon } from './icons/contact'; +export { default as LucideContact } from './icons/contact'; + +// Contrast aliases +export { default as ContrastIcon } from './icons/contrast'; +export { default as LucideContrast } from './icons/contrast'; + +// Cookie aliases +export { default as CookieIcon } from './icons/cookie'; +export { default as LucideCookie } from './icons/cookie'; + +// Copy aliases +export { default as CopyIcon } from './icons/copy'; +export { default as LucideCopy } from './icons/copy'; + +// Copyleft aliases +export { default as CopyleftIcon } from './icons/copyleft'; +export { default as LucideCopyleft } from './icons/copyleft'; + +// Copyright aliases +export { default as CopyrightIcon } from './icons/copyright'; +export { default as LucideCopyright } from './icons/copyright'; + +// CornerDownLeft aliases +export { default as CornerDownLeftIcon } from './icons/corner-down-left'; +export { default as LucideCornerDownLeft } from './icons/corner-down-left'; + +// CornerDownRight aliases +export { default as CornerDownRightIcon } from './icons/corner-down-right'; +export { default as LucideCornerDownRight } from './icons/corner-down-right'; + +// CornerLeftDown aliases +export { default as CornerLeftDownIcon } from './icons/corner-left-down'; +export { default as LucideCornerLeftDown } from './icons/corner-left-down'; + +// CornerLeftUp aliases +export { default as CornerLeftUpIcon } from './icons/corner-left-up'; +export { default as LucideCornerLeftUp } from './icons/corner-left-up'; + +// CornerRightDown aliases +export { default as CornerRightDownIcon } from './icons/corner-right-down'; +export { default as LucideCornerRightDown } from './icons/corner-right-down'; + +// CornerRightUp aliases +export { default as CornerRightUpIcon } from './icons/corner-right-up'; +export { default as LucideCornerRightUp } from './icons/corner-right-up'; + +// CornerUpLeft aliases +export { default as CornerUpLeftIcon } from './icons/corner-up-left'; +export { default as LucideCornerUpLeft } from './icons/corner-up-left'; + +// CornerUpRight aliases +export { default as CornerUpRightIcon } from './icons/corner-up-right'; +export { default as LucideCornerUpRight } from './icons/corner-up-right'; + +// Cpu aliases +export { default as CpuIcon } from './icons/cpu'; +export { default as LucideCpu } from './icons/cpu'; + +// CreditCard aliases +export { default as CreditCardIcon } from './icons/credit-card'; +export { default as LucideCreditCard } from './icons/credit-card'; + +// Croissant aliases +export { default as CroissantIcon } from './icons/croissant'; +export { default as LucideCroissant } from './icons/croissant'; + +// Crop aliases +export { default as CropIcon } from './icons/crop'; +export { default as LucideCrop } from './icons/crop'; + +// Cross aliases +export { default as CrossIcon } from './icons/cross'; +export { default as LucideCross } from './icons/cross'; + +// Crosshair aliases +export { default as CrosshairIcon } from './icons/crosshair'; +export { default as LucideCrosshair } from './icons/crosshair'; + +// Crown aliases +export { default as CrownIcon } from './icons/crown'; +export { default as LucideCrown } from './icons/crown'; + +// CupSoda aliases +export { default as CupSodaIcon } from './icons/cup-soda'; +export { default as LucideCupSoda } from './icons/cup-soda'; + +// CurlyBraces aliases +export { default as CurlyBracesIcon } from './icons/curly-braces'; +export { default as LucideCurlyBraces } from './icons/curly-braces'; + +// Currency aliases +export { default as CurrencyIcon } from './icons/currency'; +export { default as LucideCurrency } from './icons/currency'; + +// Database aliases +export { default as DatabaseIcon } from './icons/database'; +export { default as LucideDatabase } from './icons/database'; + +// Delete aliases +export { default as DeleteIcon } from './icons/delete'; +export { default as LucideDelete } from './icons/delete'; + +// Diamond aliases +export { default as DiamondIcon } from './icons/diamond'; +export { default as LucideDiamond } from './icons/diamond'; + +// Dice1 aliases +export { default as Dice1Icon } from './icons/dice-1'; +export { default as LucideDice1 } from './icons/dice-1'; + +// Dice2 aliases +export { default as Dice2Icon } from './icons/dice-2'; +export { default as LucideDice2 } from './icons/dice-2'; + +// Dice3 aliases +export { default as Dice3Icon } from './icons/dice-3'; +export { default as LucideDice3 } from './icons/dice-3'; + +// Dice4 aliases +export { default as Dice4Icon } from './icons/dice-4'; +export { default as LucideDice4 } from './icons/dice-4'; + +// Dice5 aliases +export { default as Dice5Icon } from './icons/dice-5'; +export { default as LucideDice5 } from './icons/dice-5'; + +// Dice6 aliases +export { default as Dice6Icon } from './icons/dice-6'; +export { default as LucideDice6 } from './icons/dice-6'; + +// Dices aliases +export { default as DicesIcon } from './icons/dices'; +export { default as LucideDices } from './icons/dices'; + +// Diff aliases +export { default as DiffIcon } from './icons/diff'; +export { default as LucideDiff } from './icons/diff'; + +// Disc aliases +export { default as DiscIcon } from './icons/disc'; +export { default as LucideDisc } from './icons/disc'; + +// DivideCircle aliases +export { default as DivideCircleIcon } from './icons/divide-circle'; +export { default as LucideDivideCircle } from './icons/divide-circle'; + +// DivideSquare aliases +export { default as DivideSquareIcon } from './icons/divide-square'; +export { default as LucideDivideSquare } from './icons/divide-square'; + +// Divide aliases +export { default as DivideIcon } from './icons/divide'; +export { default as LucideDivide } from './icons/divide'; + +// DnaOff aliases +export { default as DnaOffIcon } from './icons/dna-off'; +export { default as LucideDnaOff } from './icons/dna-off'; + +// Dna aliases +export { default as DnaIcon } from './icons/dna'; +export { default as LucideDna } from './icons/dna'; + +// Dog aliases +export { default as DogIcon } from './icons/dog'; +export { default as LucideDog } from './icons/dog'; + +// DollarSign aliases +export { default as DollarSignIcon } from './icons/dollar-sign'; +export { default as LucideDollarSign } from './icons/dollar-sign'; + +// DownloadCloud aliases +export { default as DownloadCloudIcon } from './icons/download-cloud'; +export { default as LucideDownloadCloud } from './icons/download-cloud'; + +// Download aliases +export { default as DownloadIcon } from './icons/download'; +export { default as LucideDownload } from './icons/download'; + +// Dribbble aliases +export { default as DribbbleIcon } from './icons/dribbble'; +export { default as LucideDribbble } from './icons/dribbble'; + +// Droplet aliases +export { default as DropletIcon } from './icons/droplet'; +export { default as LucideDroplet } from './icons/droplet'; + +// Droplets aliases +export { default as DropletsIcon } from './icons/droplets'; +export { default as LucideDroplets } from './icons/droplets'; + +// Drumstick aliases +export { default as DrumstickIcon } from './icons/drumstick'; +export { default as LucideDrumstick } from './icons/drumstick'; + +// Dumbbell aliases +export { default as DumbbellIcon } from './icons/dumbbell'; +export { default as LucideDumbbell } from './icons/dumbbell'; + +// EarOff aliases +export { default as EarOffIcon } from './icons/ear-off'; +export { default as LucideEarOff } from './icons/ear-off'; + +// Ear aliases +export { default as EarIcon } from './icons/ear'; +export { default as LucideEar } from './icons/ear'; + +// Edit2 aliases +export { default as Edit2Icon } from './icons/edit-2'; +export { default as LucideEdit2 } from './icons/edit-2'; +export { default as Pen } from './icons/edit-2'; + +// Edit3 aliases +export { default as Edit3Icon } from './icons/edit-3'; +export { default as LucideEdit3 } from './icons/edit-3'; +export { default as PenLine } from './icons/edit-3'; + +// Edit aliases +export { default as EditIcon } from './icons/edit'; +export { default as LucideEdit } from './icons/edit'; +export { default as PenBox } from './icons/edit'; + +// EggFried aliases +export { default as EggFriedIcon } from './icons/egg-fried'; +export { default as LucideEggFried } from './icons/egg-fried'; + +// EggOff aliases +export { default as EggOffIcon } from './icons/egg-off'; +export { default as LucideEggOff } from './icons/egg-off'; + +// Egg aliases +export { default as EggIcon } from './icons/egg'; +export { default as LucideEgg } from './icons/egg'; + +// EqualNot aliases +export { default as EqualNotIcon } from './icons/equal-not'; +export { default as LucideEqualNot } from './icons/equal-not'; + +// Equal aliases +export { default as EqualIcon } from './icons/equal'; +export { default as LucideEqual } from './icons/equal'; + +// Eraser aliases +export { default as EraserIcon } from './icons/eraser'; +export { default as LucideEraser } from './icons/eraser'; + +// Euro aliases +export { default as EuroIcon } from './icons/euro'; +export { default as LucideEuro } from './icons/euro'; + +// Expand aliases +export { default as ExpandIcon } from './icons/expand'; +export { default as LucideExpand } from './icons/expand'; + +// ExternalLink aliases +export { default as ExternalLinkIcon } from './icons/external-link'; +export { default as LucideExternalLink } from './icons/external-link'; + +// EyeOff aliases +export { default as EyeOffIcon } from './icons/eye-off'; +export { default as LucideEyeOff } from './icons/eye-off'; + +// Eye aliases +export { default as EyeIcon } from './icons/eye'; +export { default as LucideEye } from './icons/eye'; + +// Facebook aliases +export { default as FacebookIcon } from './icons/facebook'; +export { default as LucideFacebook } from './icons/facebook'; + +// Factory aliases +export { default as FactoryIcon } from './icons/factory'; +export { default as LucideFactory } from './icons/factory'; + +// Fan aliases +export { default as FanIcon } from './icons/fan'; +export { default as LucideFan } from './icons/fan'; + +// FastForward aliases +export { default as FastForwardIcon } from './icons/fast-forward'; +export { default as LucideFastForward } from './icons/fast-forward'; + +// Feather aliases +export { default as FeatherIcon } from './icons/feather'; +export { default as LucideFeather } from './icons/feather'; + +// Figma aliases +export { default as FigmaIcon } from './icons/figma'; +export { default as LucideFigma } from './icons/figma'; + +// FileArchive aliases +export { default as FileArchiveIcon } from './icons/file-archive'; +export { default as LucideFileArchive } from './icons/file-archive'; + +// FileAudio2 aliases +export { default as FileAudio2Icon } from './icons/file-audio-2'; +export { default as LucideFileAudio2 } from './icons/file-audio-2'; + +// FileAudio aliases +export { default as FileAudioIcon } from './icons/file-audio'; +export { default as LucideFileAudio } from './icons/file-audio'; + +// FileAxis3d aliases +export { default as FileAxis3dIcon } from './icons/file-axis-3d'; +export { default as LucideFileAxis3d } from './icons/file-axis-3d'; + +// FileBadge2 aliases +export { default as FileBadge2Icon } from './icons/file-badge-2'; +export { default as LucideFileBadge2 } from './icons/file-badge-2'; + +// FileBadge aliases +export { default as FileBadgeIcon } from './icons/file-badge'; +export { default as LucideFileBadge } from './icons/file-badge'; + +// FileBarChart2 aliases +export { default as FileBarChart2Icon } from './icons/file-bar-chart-2'; +export { default as LucideFileBarChart2 } from './icons/file-bar-chart-2'; + +// FileBarChart aliases +export { default as FileBarChartIcon } from './icons/file-bar-chart'; +export { default as LucideFileBarChart } from './icons/file-bar-chart'; + +// FileBox aliases +export { default as FileBoxIcon } from './icons/file-box'; +export { default as LucideFileBox } from './icons/file-box'; + +// FileCheck2 aliases +export { default as FileCheck2Icon } from './icons/file-check-2'; +export { default as LucideFileCheck2 } from './icons/file-check-2'; + +// FileCheck aliases +export { default as FileCheckIcon } from './icons/file-check'; +export { default as LucideFileCheck } from './icons/file-check'; + +// FileClock aliases +export { default as FileClockIcon } from './icons/file-clock'; +export { default as LucideFileClock } from './icons/file-clock'; + +// FileCode aliases +export { default as FileCodeIcon } from './icons/file-code'; +export { default as LucideFileCode } from './icons/file-code'; + +// FileCog2 aliases +export { default as FileCog2Icon } from './icons/file-cog-2'; +export { default as LucideFileCog2 } from './icons/file-cog-2'; + +// FileCog aliases +export { default as FileCogIcon } from './icons/file-cog'; +export { default as LucideFileCog } from './icons/file-cog'; + +// FileDiff aliases +export { default as FileDiffIcon } from './icons/file-diff'; +export { default as LucideFileDiff } from './icons/file-diff'; + +// FileDigit aliases +export { default as FileDigitIcon } from './icons/file-digit'; +export { default as LucideFileDigit } from './icons/file-digit'; + +// FileDown aliases +export { default as FileDownIcon } from './icons/file-down'; +export { default as LucideFileDown } from './icons/file-down'; + +// FileEdit aliases +export { default as FileEditIcon } from './icons/file-edit'; +export { default as LucideFileEdit } from './icons/file-edit'; + +// FileHeart aliases +export { default as FileHeartIcon } from './icons/file-heart'; +export { default as LucideFileHeart } from './icons/file-heart'; + +// FileImage aliases +export { default as FileImageIcon } from './icons/file-image'; +export { default as LucideFileImage } from './icons/file-image'; + +// FileInput aliases +export { default as FileInputIcon } from './icons/file-input'; +export { default as LucideFileInput } from './icons/file-input'; + +// FileJson2 aliases +export { default as FileJson2Icon } from './icons/file-json-2'; +export { default as LucideFileJson2 } from './icons/file-json-2'; + +// FileJson aliases +export { default as FileJsonIcon } from './icons/file-json'; +export { default as LucideFileJson } from './icons/file-json'; + +// FileKey2 aliases +export { default as FileKey2Icon } from './icons/file-key-2'; +export { default as LucideFileKey2 } from './icons/file-key-2'; + +// FileKey aliases +export { default as FileKeyIcon } from './icons/file-key'; +export { default as LucideFileKey } from './icons/file-key'; + +// FileLineChart aliases +export { default as FileLineChartIcon } from './icons/file-line-chart'; +export { default as LucideFileLineChart } from './icons/file-line-chart'; + +// FileLock2 aliases +export { default as FileLock2Icon } from './icons/file-lock-2'; +export { default as LucideFileLock2 } from './icons/file-lock-2'; + +// FileLock aliases +export { default as FileLockIcon } from './icons/file-lock'; +export { default as LucideFileLock } from './icons/file-lock'; + +// FileMinus2 aliases +export { default as FileMinus2Icon } from './icons/file-minus-2'; +export { default as LucideFileMinus2 } from './icons/file-minus-2'; + +// FileMinus aliases +export { default as FileMinusIcon } from './icons/file-minus'; +export { default as LucideFileMinus } from './icons/file-minus'; + +// FileOutput aliases +export { default as FileOutputIcon } from './icons/file-output'; +export { default as LucideFileOutput } from './icons/file-output'; + +// FilePieChart aliases +export { default as FilePieChartIcon } from './icons/file-pie-chart'; +export { default as LucideFilePieChart } from './icons/file-pie-chart'; + +// FilePlus2 aliases +export { default as FilePlus2Icon } from './icons/file-plus-2'; +export { default as LucideFilePlus2 } from './icons/file-plus-2'; + +// FilePlus aliases +export { default as FilePlusIcon } from './icons/file-plus'; +export { default as LucideFilePlus } from './icons/file-plus'; + +// FileQuestion aliases +export { default as FileQuestionIcon } from './icons/file-question'; +export { default as LucideFileQuestion } from './icons/file-question'; + +// FileScan aliases +export { default as FileScanIcon } from './icons/file-scan'; +export { default as LucideFileScan } from './icons/file-scan'; + +// FileSearch2 aliases +export { default as FileSearch2Icon } from './icons/file-search-2'; +export { default as LucideFileSearch2 } from './icons/file-search-2'; + +// FileSearch aliases +export { default as FileSearchIcon } from './icons/file-search'; +export { default as LucideFileSearch } from './icons/file-search'; + +// FileSignature aliases +export { default as FileSignatureIcon } from './icons/file-signature'; +export { default as LucideFileSignature } from './icons/file-signature'; + +// FileSpreadsheet aliases +export { default as FileSpreadsheetIcon } from './icons/file-spreadsheet'; +export { default as LucideFileSpreadsheet } from './icons/file-spreadsheet'; + +// FileSymlink aliases +export { default as FileSymlinkIcon } from './icons/file-symlink'; +export { default as LucideFileSymlink } from './icons/file-symlink'; + +// FileTerminal aliases +export { default as FileTerminalIcon } from './icons/file-terminal'; +export { default as LucideFileTerminal } from './icons/file-terminal'; + +// FileText aliases +export { default as FileTextIcon } from './icons/file-text'; +export { default as LucideFileText } from './icons/file-text'; + +// FileType2 aliases +export { default as FileType2Icon } from './icons/file-type-2'; +export { default as LucideFileType2 } from './icons/file-type-2'; + +// FileType aliases +export { default as FileTypeIcon } from './icons/file-type'; +export { default as LucideFileType } from './icons/file-type'; + +// FileUp aliases +export { default as FileUpIcon } from './icons/file-up'; +export { default as LucideFileUp } from './icons/file-up'; + +// FileVideo2 aliases +export { default as FileVideo2Icon } from './icons/file-video-2'; +export { default as LucideFileVideo2 } from './icons/file-video-2'; + +// FileVideo aliases +export { default as FileVideoIcon } from './icons/file-video'; +export { default as LucideFileVideo } from './icons/file-video'; + +// FileVolume2 aliases +export { default as FileVolume2Icon } from './icons/file-volume-2'; +export { default as LucideFileVolume2 } from './icons/file-volume-2'; + +// FileVolume aliases +export { default as FileVolumeIcon } from './icons/file-volume'; +export { default as LucideFileVolume } from './icons/file-volume'; + +// FileWarning aliases +export { default as FileWarningIcon } from './icons/file-warning'; +export { default as LucideFileWarning } from './icons/file-warning'; + +// FileX2 aliases +export { default as FileX2Icon } from './icons/file-x-2'; +export { default as LucideFileX2 } from './icons/file-x-2'; + +// FileX aliases +export { default as FileXIcon } from './icons/file-x'; +export { default as LucideFileX } from './icons/file-x'; + +// File aliases +export { default as FileIcon } from './icons/file'; +export { default as LucideFile } from './icons/file'; + +// Files aliases +export { default as FilesIcon } from './icons/files'; +export { default as LucideFiles } from './icons/files'; + +// Film aliases +export { default as FilmIcon } from './icons/film'; +export { default as LucideFilm } from './icons/film'; + +// Filter aliases +export { default as FilterIcon } from './icons/filter'; +export { default as LucideFilter } from './icons/filter'; + +// Fingerprint aliases +export { default as FingerprintIcon } from './icons/fingerprint'; +export { default as LucideFingerprint } from './icons/fingerprint'; + +// FlagOff aliases +export { default as FlagOffIcon } from './icons/flag-off'; +export { default as LucideFlagOff } from './icons/flag-off'; + +// FlagTriangleLeft aliases +export { default as FlagTriangleLeftIcon } from './icons/flag-triangle-left'; +export { default as LucideFlagTriangleLeft } from './icons/flag-triangle-left'; + +// FlagTriangleRight aliases +export { default as FlagTriangleRightIcon } from './icons/flag-triangle-right'; +export { default as LucideFlagTriangleRight } from './icons/flag-triangle-right'; + +// Flag aliases +export { default as FlagIcon } from './icons/flag'; +export { default as LucideFlag } from './icons/flag'; + +// Flame aliases +export { default as FlameIcon } from './icons/flame'; +export { default as LucideFlame } from './icons/flame'; + +// FlashlightOff aliases +export { default as FlashlightOffIcon } from './icons/flashlight-off'; +export { default as LucideFlashlightOff } from './icons/flashlight-off'; + +// Flashlight aliases +export { default as FlashlightIcon } from './icons/flashlight'; +export { default as LucideFlashlight } from './icons/flashlight'; + +// FlaskConicalOff aliases +export { default as FlaskConicalOffIcon } from './icons/flask-conical-off'; +export { default as LucideFlaskConicalOff } from './icons/flask-conical-off'; + +// FlaskConical aliases +export { default as FlaskConicalIcon } from './icons/flask-conical'; +export { default as LucideFlaskConical } from './icons/flask-conical'; + +// FlaskRound aliases +export { default as FlaskRoundIcon } from './icons/flask-round'; +export { default as LucideFlaskRound } from './icons/flask-round'; + +// FlipHorizontal2 aliases +export { default as FlipHorizontal2Icon } from './icons/flip-horizontal-2'; +export { default as LucideFlipHorizontal2 } from './icons/flip-horizontal-2'; + +// FlipHorizontal aliases +export { default as FlipHorizontalIcon } from './icons/flip-horizontal'; +export { default as LucideFlipHorizontal } from './icons/flip-horizontal'; + +// FlipVertical2 aliases +export { default as FlipVertical2Icon } from './icons/flip-vertical-2'; +export { default as LucideFlipVertical2 } from './icons/flip-vertical-2'; + +// FlipVertical aliases +export { default as FlipVerticalIcon } from './icons/flip-vertical'; +export { default as LucideFlipVertical } from './icons/flip-vertical'; + +// Flower2 aliases +export { default as Flower2Icon } from './icons/flower-2'; +export { default as LucideFlower2 } from './icons/flower-2'; + +// Flower aliases +export { default as FlowerIcon } from './icons/flower'; +export { default as LucideFlower } from './icons/flower'; + +// Focus aliases +export { default as FocusIcon } from './icons/focus'; +export { default as LucideFocus } from './icons/focus'; + +// FolderArchive aliases +export { default as FolderArchiveIcon } from './icons/folder-archive'; +export { default as LucideFolderArchive } from './icons/folder-archive'; + +// FolderCheck aliases +export { default as FolderCheckIcon } from './icons/folder-check'; +export { default as LucideFolderCheck } from './icons/folder-check'; + +// FolderClock aliases +export { default as FolderClockIcon } from './icons/folder-clock'; +export { default as LucideFolderClock } from './icons/folder-clock'; + +// FolderClosed aliases +export { default as FolderClosedIcon } from './icons/folder-closed'; +export { default as LucideFolderClosed } from './icons/folder-closed'; + +// FolderCog2 aliases +export { default as FolderCog2Icon } from './icons/folder-cog-2'; +export { default as LucideFolderCog2 } from './icons/folder-cog-2'; + +// FolderCog aliases +export { default as FolderCogIcon } from './icons/folder-cog'; +export { default as LucideFolderCog } from './icons/folder-cog'; + +// FolderDown aliases +export { default as FolderDownIcon } from './icons/folder-down'; +export { default as LucideFolderDown } from './icons/folder-down'; + +// FolderEdit aliases +export { default as FolderEditIcon } from './icons/folder-edit'; +export { default as LucideFolderEdit } from './icons/folder-edit'; + +// FolderHeart aliases +export { default as FolderHeartIcon } from './icons/folder-heart'; +export { default as LucideFolderHeart } from './icons/folder-heart'; + +// FolderInput aliases +export { default as FolderInputIcon } from './icons/folder-input'; +export { default as LucideFolderInput } from './icons/folder-input'; + +// FolderKey aliases +export { default as FolderKeyIcon } from './icons/folder-key'; +export { default as LucideFolderKey } from './icons/folder-key'; + +// FolderLock aliases +export { default as FolderLockIcon } from './icons/folder-lock'; +export { default as LucideFolderLock } from './icons/folder-lock'; + +// FolderMinus aliases +export { default as FolderMinusIcon } from './icons/folder-minus'; +export { default as LucideFolderMinus } from './icons/folder-minus'; + +// FolderOpen aliases +export { default as FolderOpenIcon } from './icons/folder-open'; +export { default as LucideFolderOpen } from './icons/folder-open'; + +// FolderOutput aliases +export { default as FolderOutputIcon } from './icons/folder-output'; +export { default as LucideFolderOutput } from './icons/folder-output'; + +// FolderPlus aliases +export { default as FolderPlusIcon } from './icons/folder-plus'; +export { default as LucideFolderPlus } from './icons/folder-plus'; + +// FolderSearch2 aliases +export { default as FolderSearch2Icon } from './icons/folder-search-2'; +export { default as LucideFolderSearch2 } from './icons/folder-search-2'; + +// FolderSearch aliases +export { default as FolderSearchIcon } from './icons/folder-search'; +export { default as LucideFolderSearch } from './icons/folder-search'; + +// FolderSymlink aliases +export { default as FolderSymlinkIcon } from './icons/folder-symlink'; +export { default as LucideFolderSymlink } from './icons/folder-symlink'; + +// FolderTree aliases +export { default as FolderTreeIcon } from './icons/folder-tree'; +export { default as LucideFolderTree } from './icons/folder-tree'; + +// FolderUp aliases +export { default as FolderUpIcon } from './icons/folder-up'; +export { default as LucideFolderUp } from './icons/folder-up'; + +// FolderX aliases +export { default as FolderXIcon } from './icons/folder-x'; +export { default as LucideFolderX } from './icons/folder-x'; + +// Folder aliases +export { default as FolderIcon } from './icons/folder'; +export { default as LucideFolder } from './icons/folder'; + +// Folders aliases +export { default as FoldersIcon } from './icons/folders'; +export { default as LucideFolders } from './icons/folders'; + +// FormInput aliases +export { default as FormInputIcon } from './icons/form-input'; +export { default as LucideFormInput } from './icons/form-input'; + +// Forward aliases +export { default as ForwardIcon } from './icons/forward'; +export { default as LucideForward } from './icons/forward'; + +// Frame aliases +export { default as FrameIcon } from './icons/frame'; +export { default as LucideFrame } from './icons/frame'; + +// Framer aliases +export { default as FramerIcon } from './icons/framer'; +export { default as LucideFramer } from './icons/framer'; + +// Frown aliases +export { default as FrownIcon } from './icons/frown'; +export { default as LucideFrown } from './icons/frown'; + +// Fuel aliases +export { default as FuelIcon } from './icons/fuel'; +export { default as LucideFuel } from './icons/fuel'; + +// FunctionSquare aliases +export { default as FunctionSquareIcon } from './icons/function-square'; +export { default as LucideFunctionSquare } from './icons/function-square'; + +// Gamepad2 aliases +export { default as Gamepad2Icon } from './icons/gamepad-2'; +export { default as LucideGamepad2 } from './icons/gamepad-2'; + +// Gamepad aliases +export { default as GamepadIcon } from './icons/gamepad'; +export { default as LucideGamepad } from './icons/gamepad'; + +// Gauge aliases +export { default as GaugeIcon } from './icons/gauge'; +export { default as LucideGauge } from './icons/gauge'; + +// Gavel aliases +export { default as GavelIcon } from './icons/gavel'; +export { default as LucideGavel } from './icons/gavel'; + +// Gem aliases +export { default as GemIcon } from './icons/gem'; +export { default as LucideGem } from './icons/gem'; + +// Ghost aliases +export { default as GhostIcon } from './icons/ghost'; +export { default as LucideGhost } from './icons/ghost'; + +// Gift aliases +export { default as GiftIcon } from './icons/gift'; +export { default as LucideGift } from './icons/gift'; + +// GitBranchPlus aliases +export { default as GitBranchPlusIcon } from './icons/git-branch-plus'; +export { default as LucideGitBranchPlus } from './icons/git-branch-plus'; + +// GitBranch aliases +export { default as GitBranchIcon } from './icons/git-branch'; +export { default as LucideGitBranch } from './icons/git-branch'; + +// GitCommit aliases +export { default as GitCommitIcon } from './icons/git-commit'; +export { default as LucideGitCommit } from './icons/git-commit'; + +// GitCompare aliases +export { default as GitCompareIcon } from './icons/git-compare'; +export { default as LucideGitCompare } from './icons/git-compare'; + +// GitFork aliases +export { default as GitForkIcon } from './icons/git-fork'; +export { default as LucideGitFork } from './icons/git-fork'; + +// GitMerge aliases +export { default as GitMergeIcon } from './icons/git-merge'; +export { default as LucideGitMerge } from './icons/git-merge'; + +// GitPullRequestClosed aliases +export { default as GitPullRequestClosedIcon } from './icons/git-pull-request-closed'; +export { default as LucideGitPullRequestClosed } from './icons/git-pull-request-closed'; + +// GitPullRequestDraft aliases +export { default as GitPullRequestDraftIcon } from './icons/git-pull-request-draft'; +export { default as LucideGitPullRequestDraft } from './icons/git-pull-request-draft'; + +// GitPullRequest aliases +export { default as GitPullRequestIcon } from './icons/git-pull-request'; +export { default as LucideGitPullRequest } from './icons/git-pull-request'; + +// Github aliases +export { default as GithubIcon } from './icons/github'; +export { default as LucideGithub } from './icons/github'; + +// Gitlab aliases +export { default as GitlabIcon } from './icons/gitlab'; +export { default as LucideGitlab } from './icons/gitlab'; + +// GlassWater aliases +export { default as GlassWaterIcon } from './icons/glass-water'; +export { default as LucideGlassWater } from './icons/glass-water'; + +// Glasses aliases +export { default as GlassesIcon } from './icons/glasses'; +export { default as LucideGlasses } from './icons/glasses'; + +// Globe2 aliases +export { default as Globe2Icon } from './icons/globe-2'; +export { default as LucideGlobe2 } from './icons/globe-2'; + +// Globe aliases +export { default as GlobeIcon } from './icons/globe'; +export { default as LucideGlobe } from './icons/globe'; + +// Grab aliases +export { default as GrabIcon } from './icons/grab'; +export { default as LucideGrab } from './icons/grab'; + +// GraduationCap aliases +export { default as GraduationCapIcon } from './icons/graduation-cap'; +export { default as LucideGraduationCap } from './icons/graduation-cap'; + +// Grape aliases +export { default as GrapeIcon } from './icons/grape'; +export { default as LucideGrape } from './icons/grape'; + +// Grid aliases +export { default as GridIcon } from './icons/grid'; +export { default as LucideGrid } from './icons/grid'; + +// GripHorizontal aliases +export { default as GripHorizontalIcon } from './icons/grip-horizontal'; +export { default as LucideGripHorizontal } from './icons/grip-horizontal'; + +// GripVertical aliases +export { default as GripVerticalIcon } from './icons/grip-vertical'; +export { default as LucideGripVertical } from './icons/grip-vertical'; + +// Hammer aliases +export { default as HammerIcon } from './icons/hammer'; +export { default as LucideHammer } from './icons/hammer'; + +// HandMetal aliases +export { default as HandMetalIcon } from './icons/hand-metal'; +export { default as LucideHandMetal } from './icons/hand-metal'; + +// Hand aliases +export { default as HandIcon } from './icons/hand'; +export { default as LucideHand } from './icons/hand'; + +// HardDrive aliases +export { default as HardDriveIcon } from './icons/hard-drive'; +export { default as LucideHardDrive } from './icons/hard-drive'; + +// HardHat aliases +export { default as HardHatIcon } from './icons/hard-hat'; +export { default as LucideHardHat } from './icons/hard-hat'; + +// Hash aliases +export { default as HashIcon } from './icons/hash'; +export { default as LucideHash } from './icons/hash'; + +// Haze aliases +export { default as HazeIcon } from './icons/haze'; +export { default as LucideHaze } from './icons/haze'; + +// Heading1 aliases +export { default as Heading1Icon } from './icons/heading-1'; +export { default as LucideHeading1 } from './icons/heading-1'; + +// Heading2 aliases +export { default as Heading2Icon } from './icons/heading-2'; +export { default as LucideHeading2 } from './icons/heading-2'; + +// Heading3 aliases +export { default as Heading3Icon } from './icons/heading-3'; +export { default as LucideHeading3 } from './icons/heading-3'; + +// Heading4 aliases +export { default as Heading4Icon } from './icons/heading-4'; +export { default as LucideHeading4 } from './icons/heading-4'; + +// Heading5 aliases +export { default as Heading5Icon } from './icons/heading-5'; +export { default as LucideHeading5 } from './icons/heading-5'; + +// Heading6 aliases +export { default as Heading6Icon } from './icons/heading-6'; +export { default as LucideHeading6 } from './icons/heading-6'; + +// Heading aliases +export { default as HeadingIcon } from './icons/heading'; +export { default as LucideHeading } from './icons/heading'; + +// Headphones aliases +export { default as HeadphonesIcon } from './icons/headphones'; +export { default as LucideHeadphones } from './icons/headphones'; + +// HeartCrack aliases +export { default as HeartCrackIcon } from './icons/heart-crack'; +export { default as LucideHeartCrack } from './icons/heart-crack'; + +// HeartHandshake aliases +export { default as HeartHandshakeIcon } from './icons/heart-handshake'; +export { default as LucideHeartHandshake } from './icons/heart-handshake'; + +// HeartOff aliases +export { default as HeartOffIcon } from './icons/heart-off'; +export { default as LucideHeartOff } from './icons/heart-off'; + +// HeartPulse aliases +export { default as HeartPulseIcon } from './icons/heart-pulse'; +export { default as LucideHeartPulse } from './icons/heart-pulse'; + +// Heart aliases +export { default as HeartIcon } from './icons/heart'; +export { default as LucideHeart } from './icons/heart'; + +// HelpCircle aliases +export { default as HelpCircleIcon } from './icons/help-circle'; +export { default as LucideHelpCircle } from './icons/help-circle'; + +// Hexagon aliases +export { default as HexagonIcon } from './icons/hexagon'; +export { default as LucideHexagon } from './icons/hexagon'; + +// Highlighter aliases +export { default as HighlighterIcon } from './icons/highlighter'; +export { default as LucideHighlighter } from './icons/highlighter'; + +// History aliases +export { default as HistoryIcon } from './icons/history'; +export { default as LucideHistory } from './icons/history'; + +// Home aliases +export { default as HomeIcon } from './icons/home'; +export { default as LucideHome } from './icons/home'; + +// HopOff aliases +export { default as HopOffIcon } from './icons/hop-off'; +export { default as LucideHopOff } from './icons/hop-off'; + +// Hop aliases +export { default as HopIcon } from './icons/hop'; +export { default as LucideHop } from './icons/hop'; + +// Hourglass aliases +export { default as HourglassIcon } from './icons/hourglass'; +export { default as LucideHourglass } from './icons/hourglass'; + +// IceCream aliases +export { default as IceCreamIcon } from './icons/ice-cream'; +export { default as LucideIceCream } from './icons/ice-cream'; + +// ImageMinus aliases +export { default as ImageMinusIcon } from './icons/image-minus'; +export { default as LucideImageMinus } from './icons/image-minus'; + +// ImageOff aliases +export { default as ImageOffIcon } from './icons/image-off'; +export { default as LucideImageOff } from './icons/image-off'; + +// ImagePlus aliases +export { default as ImagePlusIcon } from './icons/image-plus'; +export { default as LucideImagePlus } from './icons/image-plus'; + +// Image aliases +export { default as ImageIcon } from './icons/image'; +export { default as LucideImage } from './icons/image'; + +// Import aliases +export { default as ImportIcon } from './icons/import'; +export { default as LucideImport } from './icons/import'; + +// Inbox aliases +export { default as InboxIcon } from './icons/inbox'; +export { default as LucideInbox } from './icons/inbox'; + +// Indent aliases +export { default as IndentIcon } from './icons/indent'; +export { default as LucideIndent } from './icons/indent'; + +// IndianRupee aliases +export { default as IndianRupeeIcon } from './icons/indian-rupee'; +export { default as LucideIndianRupee } from './icons/indian-rupee'; + +// Infinity aliases +export { default as InfinityIcon } from './icons/infinity'; +export { default as LucideInfinity } from './icons/infinity'; + +// Info aliases +export { default as InfoIcon } from './icons/info'; +export { default as LucideInfo } from './icons/info'; + +// Inspect aliases +export { default as InspectIcon } from './icons/inspect'; +export { default as LucideInspect } from './icons/inspect'; + +// Instagram aliases +export { default as InstagramIcon } from './icons/instagram'; +export { default as LucideInstagram } from './icons/instagram'; + +// Italic aliases +export { default as ItalicIcon } from './icons/italic'; +export { default as LucideItalic } from './icons/italic'; + +// JapaneseYen aliases +export { default as JapaneseYenIcon } from './icons/japanese-yen'; +export { default as LucideJapaneseYen } from './icons/japanese-yen'; + +// Joystick aliases +export { default as JoystickIcon } from './icons/joystick'; +export { default as LucideJoystick } from './icons/joystick'; + +// Key aliases +export { default as KeyIcon } from './icons/key'; +export { default as LucideKey } from './icons/key'; + +// Keyboard aliases +export { default as KeyboardIcon } from './icons/keyboard'; +export { default as LucideKeyboard } from './icons/keyboard'; + +// LampCeiling aliases +export { default as LampCeilingIcon } from './icons/lamp-ceiling'; +export { default as LucideLampCeiling } from './icons/lamp-ceiling'; + +// LampDesk aliases +export { default as LampDeskIcon } from './icons/lamp-desk'; +export { default as LucideLampDesk } from './icons/lamp-desk'; + +// LampFloor aliases +export { default as LampFloorIcon } from './icons/lamp-floor'; +export { default as LucideLampFloor } from './icons/lamp-floor'; + +// LampWallDown aliases +export { default as LampWallDownIcon } from './icons/lamp-wall-down'; +export { default as LucideLampWallDown } from './icons/lamp-wall-down'; + +// LampWallUp aliases +export { default as LampWallUpIcon } from './icons/lamp-wall-up'; +export { default as LucideLampWallUp } from './icons/lamp-wall-up'; + +// Lamp aliases +export { default as LampIcon } from './icons/lamp'; +export { default as LucideLamp } from './icons/lamp'; + +// Landmark aliases +export { default as LandmarkIcon } from './icons/landmark'; +export { default as LucideLandmark } from './icons/landmark'; + +// Languages aliases +export { default as LanguagesIcon } from './icons/languages'; +export { default as LucideLanguages } from './icons/languages'; + +// Laptop2 aliases +export { default as Laptop2Icon } from './icons/laptop-2'; +export { default as LucideLaptop2 } from './icons/laptop-2'; + +// Laptop aliases +export { default as LaptopIcon } from './icons/laptop'; +export { default as LucideLaptop } from './icons/laptop'; + +// LassoSelect aliases +export { default as LassoSelectIcon } from './icons/lasso-select'; +export { default as LucideLassoSelect } from './icons/lasso-select'; + +// Lasso aliases +export { default as LassoIcon } from './icons/lasso'; +export { default as LucideLasso } from './icons/lasso'; + +// Laugh aliases +export { default as LaughIcon } from './icons/laugh'; +export { default as LucideLaugh } from './icons/laugh'; + +// Layers aliases +export { default as LayersIcon } from './icons/layers'; +export { default as LucideLayers } from './icons/layers'; + +// LayoutDashboard aliases +export { default as LayoutDashboardIcon } from './icons/layout-dashboard'; +export { default as LucideLayoutDashboard } from './icons/layout-dashboard'; + +// LayoutGrid aliases +export { default as LayoutGridIcon } from './icons/layout-grid'; +export { default as LucideLayoutGrid } from './icons/layout-grid'; + +// LayoutList aliases +export { default as LayoutListIcon } from './icons/layout-list'; +export { default as LucideLayoutList } from './icons/layout-list'; + +// LayoutTemplate aliases +export { default as LayoutTemplateIcon } from './icons/layout-template'; +export { default as LucideLayoutTemplate } from './icons/layout-template'; + +// Layout aliases +export { default as LayoutIcon } from './icons/layout'; +export { default as LucideLayout } from './icons/layout'; + +// Leaf aliases +export { default as LeafIcon } from './icons/leaf'; +export { default as LucideLeaf } from './icons/leaf'; + +// Library aliases +export { default as LibraryIcon } from './icons/library'; +export { default as LucideLibrary } from './icons/library'; + +// LifeBuoy aliases +export { default as LifeBuoyIcon } from './icons/life-buoy'; +export { default as LucideLifeBuoy } from './icons/life-buoy'; + +// LightbulbOff aliases +export { default as LightbulbOffIcon } from './icons/lightbulb-off'; +export { default as LucideLightbulbOff } from './icons/lightbulb-off'; + +// Lightbulb aliases +export { default as LightbulbIcon } from './icons/lightbulb'; +export { default as LucideLightbulb } from './icons/lightbulb'; + +// LineChart aliases +export { default as LineChartIcon } from './icons/line-chart'; +export { default as LucideLineChart } from './icons/line-chart'; + +// Link2Off aliases +export { default as Link2OffIcon } from './icons/link-2-off'; +export { default as LucideLink2Off } from './icons/link-2-off'; + +// Link2 aliases +export { default as Link2Icon } from './icons/link-2'; +export { default as LucideLink2 } from './icons/link-2'; + +// Link aliases +export { default as LinkIcon } from './icons/link'; +export { default as LucideLink } from './icons/link'; + +// Linkedin aliases +export { default as LinkedinIcon } from './icons/linkedin'; +export { default as LucideLinkedin } from './icons/linkedin'; + +// ListChecks aliases +export { default as ListChecksIcon } from './icons/list-checks'; +export { default as LucideListChecks } from './icons/list-checks'; + +// ListEnd aliases +export { default as ListEndIcon } from './icons/list-end'; +export { default as LucideListEnd } from './icons/list-end'; + +// ListMinus aliases +export { default as ListMinusIcon } from './icons/list-minus'; +export { default as LucideListMinus } from './icons/list-minus'; + +// ListMusic aliases +export { default as ListMusicIcon } from './icons/list-music'; +export { default as LucideListMusic } from './icons/list-music'; + +// ListOrdered aliases +export { default as ListOrderedIcon } from './icons/list-ordered'; +export { default as LucideListOrdered } from './icons/list-ordered'; + +// ListPlus aliases +export { default as ListPlusIcon } from './icons/list-plus'; +export { default as LucideListPlus } from './icons/list-plus'; + +// ListStart aliases +export { default as ListStartIcon } from './icons/list-start'; +export { default as LucideListStart } from './icons/list-start'; + +// ListVideo aliases +export { default as ListVideoIcon } from './icons/list-video'; +export { default as LucideListVideo } from './icons/list-video'; + +// ListX aliases +export { default as ListXIcon } from './icons/list-x'; +export { default as LucideListX } from './icons/list-x'; + +// List aliases +export { default as ListIcon } from './icons/list'; +export { default as LucideList } from './icons/list'; + +// Loader2 aliases +export { default as Loader2Icon } from './icons/loader-2'; +export { default as LucideLoader2 } from './icons/loader-2'; + +// Loader aliases +export { default as LoaderIcon } from './icons/loader'; +export { default as LucideLoader } from './icons/loader'; + +// LocateFixed aliases +export { default as LocateFixedIcon } from './icons/locate-fixed'; +export { default as LucideLocateFixed } from './icons/locate-fixed'; + +// LocateOff aliases +export { default as LocateOffIcon } from './icons/locate-off'; +export { default as LucideLocateOff } from './icons/locate-off'; + +// Locate aliases +export { default as LocateIcon } from './icons/locate'; +export { default as LucideLocate } from './icons/locate'; + +// Lock aliases +export { default as LockIcon } from './icons/lock'; +export { default as LucideLock } from './icons/lock'; + +// LogIn aliases +export { default as LogInIcon } from './icons/log-in'; +export { default as LucideLogIn } from './icons/log-in'; + +// LogOut aliases +export { default as LogOutIcon } from './icons/log-out'; +export { default as LucideLogOut } from './icons/log-out'; + +// Luggage aliases +export { default as LuggageIcon } from './icons/luggage'; +export { default as LucideLuggage } from './icons/luggage'; + +// Magnet aliases +export { default as MagnetIcon } from './icons/magnet'; +export { default as LucideMagnet } from './icons/magnet'; + +// MailCheck aliases +export { default as MailCheckIcon } from './icons/mail-check'; +export { default as LucideMailCheck } from './icons/mail-check'; + +// MailMinus aliases +export { default as MailMinusIcon } from './icons/mail-minus'; +export { default as LucideMailMinus } from './icons/mail-minus'; + +// MailOpen aliases +export { default as MailOpenIcon } from './icons/mail-open'; +export { default as LucideMailOpen } from './icons/mail-open'; + +// MailPlus aliases +export { default as MailPlusIcon } from './icons/mail-plus'; +export { default as LucideMailPlus } from './icons/mail-plus'; + +// MailQuestion aliases +export { default as MailQuestionIcon } from './icons/mail-question'; +export { default as LucideMailQuestion } from './icons/mail-question'; + +// MailSearch aliases +export { default as MailSearchIcon } from './icons/mail-search'; +export { default as LucideMailSearch } from './icons/mail-search'; + +// MailWarning aliases +export { default as MailWarningIcon } from './icons/mail-warning'; +export { default as LucideMailWarning } from './icons/mail-warning'; + +// MailX aliases +export { default as MailXIcon } from './icons/mail-x'; +export { default as LucideMailX } from './icons/mail-x'; + +// Mail aliases +export { default as MailIcon } from './icons/mail'; +export { default as LucideMail } from './icons/mail'; + +// Mails aliases +export { default as MailsIcon } from './icons/mails'; +export { default as LucideMails } from './icons/mails'; + +// MapPinOff aliases +export { default as MapPinOffIcon } from './icons/map-pin-off'; +export { default as LucideMapPinOff } from './icons/map-pin-off'; + +// MapPin aliases +export { default as MapPinIcon } from './icons/map-pin'; +export { default as LucideMapPin } from './icons/map-pin'; + +// Map aliases +export { default as MapIcon } from './icons/map'; +export { default as LucideMap } from './icons/map'; + +// Martini aliases +export { default as MartiniIcon } from './icons/martini'; +export { default as LucideMartini } from './icons/martini'; + +// Maximize2 aliases +export { default as Maximize2Icon } from './icons/maximize-2'; +export { default as LucideMaximize2 } from './icons/maximize-2'; + +// Maximize aliases +export { default as MaximizeIcon } from './icons/maximize'; +export { default as LucideMaximize } from './icons/maximize'; + +// Medal aliases +export { default as MedalIcon } from './icons/medal'; +export { default as LucideMedal } from './icons/medal'; + +// MegaphoneOff aliases +export { default as MegaphoneOffIcon } from './icons/megaphone-off'; +export { default as LucideMegaphoneOff } from './icons/megaphone-off'; + +// Megaphone aliases +export { default as MegaphoneIcon } from './icons/megaphone'; +export { default as LucideMegaphone } from './icons/megaphone'; + +// Meh aliases +export { default as MehIcon } from './icons/meh'; +export { default as LucideMeh } from './icons/meh'; + +// Menu aliases +export { default as MenuIcon } from './icons/menu'; +export { default as LucideMenu } from './icons/menu'; + +// MessageCircle aliases +export { default as MessageCircleIcon } from './icons/message-circle'; +export { default as LucideMessageCircle } from './icons/message-circle'; + +// MessageSquare aliases +export { default as MessageSquareIcon } from './icons/message-square'; +export { default as LucideMessageSquare } from './icons/message-square'; + +// Mic2 aliases +export { default as Mic2Icon } from './icons/mic-2'; +export { default as LucideMic2 } from './icons/mic-2'; + +// MicOff aliases +export { default as MicOffIcon } from './icons/mic-off'; +export { default as LucideMicOff } from './icons/mic-off'; + +// Mic aliases +export { default as MicIcon } from './icons/mic'; +export { default as LucideMic } from './icons/mic'; + +// Microscope aliases +export { default as MicroscopeIcon } from './icons/microscope'; +export { default as LucideMicroscope } from './icons/microscope'; + +// Microwave aliases +export { default as MicrowaveIcon } from './icons/microwave'; +export { default as LucideMicrowave } from './icons/microwave'; + +// Milestone aliases +export { default as MilestoneIcon } from './icons/milestone'; +export { default as LucideMilestone } from './icons/milestone'; + +// MilkOff aliases +export { default as MilkOffIcon } from './icons/milk-off'; +export { default as LucideMilkOff } from './icons/milk-off'; + +// Milk aliases +export { default as MilkIcon } from './icons/milk'; +export { default as LucideMilk } from './icons/milk'; + +// Minimize2 aliases +export { default as Minimize2Icon } from './icons/minimize-2'; +export { default as LucideMinimize2 } from './icons/minimize-2'; + +// Minimize aliases +export { default as MinimizeIcon } from './icons/minimize'; +export { default as LucideMinimize } from './icons/minimize'; + +// MinusCircle aliases +export { default as MinusCircleIcon } from './icons/minus-circle'; +export { default as LucideMinusCircle } from './icons/minus-circle'; + +// MinusSquare aliases +export { default as MinusSquareIcon } from './icons/minus-square'; +export { default as LucideMinusSquare } from './icons/minus-square'; + +// Minus aliases +export { default as MinusIcon } from './icons/minus'; +export { default as LucideMinus } from './icons/minus'; + +// MonitorOff aliases +export { default as MonitorOffIcon } from './icons/monitor-off'; +export { default as LucideMonitorOff } from './icons/monitor-off'; + +// MonitorSmartphone aliases +export { default as MonitorSmartphoneIcon } from './icons/monitor-smartphone'; +export { default as LucideMonitorSmartphone } from './icons/monitor-smartphone'; + +// MonitorSpeaker aliases +export { default as MonitorSpeakerIcon } from './icons/monitor-speaker'; +export { default as LucideMonitorSpeaker } from './icons/monitor-speaker'; + +// Monitor aliases +export { default as MonitorIcon } from './icons/monitor'; +export { default as LucideMonitor } from './icons/monitor'; + +// Moon aliases +export { default as MoonIcon } from './icons/moon'; +export { default as LucideMoon } from './icons/moon'; + +// MoreHorizontal aliases +export { default as MoreHorizontalIcon } from './icons/more-horizontal'; +export { default as LucideMoreHorizontal } from './icons/more-horizontal'; + +// MoreVertical aliases +export { default as MoreVerticalIcon } from './icons/more-vertical'; +export { default as LucideMoreVertical } from './icons/more-vertical'; + +// MountainSnow aliases +export { default as MountainSnowIcon } from './icons/mountain-snow'; +export { default as LucideMountainSnow } from './icons/mountain-snow'; + +// Mountain aliases +export { default as MountainIcon } from './icons/mountain'; +export { default as LucideMountain } from './icons/mountain'; + +// MousePointer2 aliases +export { default as MousePointer2Icon } from './icons/mouse-pointer-2'; +export { default as LucideMousePointer2 } from './icons/mouse-pointer-2'; + +// MousePointerClick aliases +export { default as MousePointerClickIcon } from './icons/mouse-pointer-click'; +export { default as LucideMousePointerClick } from './icons/mouse-pointer-click'; + +// MousePointer aliases +export { default as MousePointerIcon } from './icons/mouse-pointer'; +export { default as LucideMousePointer } from './icons/mouse-pointer'; + +// Mouse aliases +export { default as MouseIcon } from './icons/mouse'; +export { default as LucideMouse } from './icons/mouse'; + +// Move3d aliases +export { default as Move3dIcon } from './icons/move-3d'; +export { default as LucideMove3d } from './icons/move-3d'; + +// MoveDiagonal2 aliases +export { default as MoveDiagonal2Icon } from './icons/move-diagonal-2'; +export { default as LucideMoveDiagonal2 } from './icons/move-diagonal-2'; + +// MoveDiagonal aliases +export { default as MoveDiagonalIcon } from './icons/move-diagonal'; +export { default as LucideMoveDiagonal } from './icons/move-diagonal'; + +// MoveHorizontal aliases +export { default as MoveHorizontalIcon } from './icons/move-horizontal'; +export { default as LucideMoveHorizontal } from './icons/move-horizontal'; + +// MoveVertical aliases +export { default as MoveVerticalIcon } from './icons/move-vertical'; +export { default as LucideMoveVertical } from './icons/move-vertical'; + +// Move aliases +export { default as MoveIcon } from './icons/move'; +export { default as LucideMove } from './icons/move'; + +// Music2 aliases +export { default as Music2Icon } from './icons/music-2'; +export { default as LucideMusic2 } from './icons/music-2'; + +// Music3 aliases +export { default as Music3Icon } from './icons/music-3'; +export { default as LucideMusic3 } from './icons/music-3'; + +// Music4 aliases +export { default as Music4Icon } from './icons/music-4'; +export { default as LucideMusic4 } from './icons/music-4'; + +// Music aliases +export { default as MusicIcon } from './icons/music'; +export { default as LucideMusic } from './icons/music'; + +// Navigation2Off aliases +export { default as Navigation2OffIcon } from './icons/navigation-2-off'; +export { default as LucideNavigation2Off } from './icons/navigation-2-off'; + +// Navigation2 aliases +export { default as Navigation2Icon } from './icons/navigation-2'; +export { default as LucideNavigation2 } from './icons/navigation-2'; + +// NavigationOff aliases +export { default as NavigationOffIcon } from './icons/navigation-off'; +export { default as LucideNavigationOff } from './icons/navigation-off'; + +// Navigation aliases +export { default as NavigationIcon } from './icons/navigation'; +export { default as LucideNavigation } from './icons/navigation'; + +// Network aliases +export { default as NetworkIcon } from './icons/network'; +export { default as LucideNetwork } from './icons/network'; + +// Newspaper aliases +export { default as NewspaperIcon } from './icons/newspaper'; +export { default as LucideNewspaper } from './icons/newspaper'; + +// NutOff aliases +export { default as NutOffIcon } from './icons/nut-off'; +export { default as LucideNutOff } from './icons/nut-off'; + +// Nut aliases +export { default as NutIcon } from './icons/nut'; +export { default as LucideNut } from './icons/nut'; + +// Octagon aliases +export { default as OctagonIcon } from './icons/octagon'; +export { default as LucideOctagon } from './icons/octagon'; + +// Option aliases +export { default as OptionIcon } from './icons/option'; +export { default as LucideOption } from './icons/option'; + +// Outdent aliases +export { default as OutdentIcon } from './icons/outdent'; +export { default as LucideOutdent } from './icons/outdent'; + +// Package2 aliases +export { default as Package2Icon } from './icons/package-2'; +export { default as LucidePackage2 } from './icons/package-2'; + +// PackageCheck aliases +export { default as PackageCheckIcon } from './icons/package-check'; +export { default as LucidePackageCheck } from './icons/package-check'; + +// PackageMinus aliases +export { default as PackageMinusIcon } from './icons/package-minus'; +export { default as LucidePackageMinus } from './icons/package-minus'; + +// PackageOpen aliases +export { default as PackageOpenIcon } from './icons/package-open'; +export { default as LucidePackageOpen } from './icons/package-open'; + +// PackagePlus aliases +export { default as PackagePlusIcon } from './icons/package-plus'; +export { default as LucidePackagePlus } from './icons/package-plus'; + +// PackageSearch aliases +export { default as PackageSearchIcon } from './icons/package-search'; +export { default as LucidePackageSearch } from './icons/package-search'; + +// PackageX aliases +export { default as PackageXIcon } from './icons/package-x'; +export { default as LucidePackageX } from './icons/package-x'; + +// Package aliases +export { default as PackageIcon } from './icons/package'; +export { default as LucidePackage } from './icons/package'; + +// PaintBucket aliases +export { default as PaintBucketIcon } from './icons/paint-bucket'; +export { default as LucidePaintBucket } from './icons/paint-bucket'; + +// Paintbrush2 aliases +export { default as Paintbrush2Icon } from './icons/paintbrush-2'; +export { default as LucidePaintbrush2 } from './icons/paintbrush-2'; + +// Paintbrush aliases +export { default as PaintbrushIcon } from './icons/paintbrush'; +export { default as LucidePaintbrush } from './icons/paintbrush'; + +// Palette aliases +export { default as PaletteIcon } from './icons/palette'; +export { default as LucidePalette } from './icons/palette'; + +// Palmtree aliases +export { default as PalmtreeIcon } from './icons/palmtree'; +export { default as LucidePalmtree } from './icons/palmtree'; + +// Paperclip aliases +export { default as PaperclipIcon } from './icons/paperclip'; +export { default as LucidePaperclip } from './icons/paperclip'; + +// PartyPopper aliases +export { default as PartyPopperIcon } from './icons/party-popper'; +export { default as LucidePartyPopper } from './icons/party-popper'; + +// PauseCircle aliases +export { default as PauseCircleIcon } from './icons/pause-circle'; +export { default as LucidePauseCircle } from './icons/pause-circle'; + +// PauseOctagon aliases +export { default as PauseOctagonIcon } from './icons/pause-octagon'; +export { default as LucidePauseOctagon } from './icons/pause-octagon'; + +// Pause aliases +export { default as PauseIcon } from './icons/pause'; +export { default as LucidePause } from './icons/pause'; + +// PenTool aliases +export { default as PenToolIcon } from './icons/pen-tool'; +export { default as LucidePenTool } from './icons/pen-tool'; + +// Pencil aliases +export { default as PencilIcon } from './icons/pencil'; +export { default as LucidePencil } from './icons/pencil'; + +// Percent aliases +export { default as PercentIcon } from './icons/percent'; +export { default as LucidePercent } from './icons/percent'; + +// PersonStanding aliases +export { default as PersonStandingIcon } from './icons/person-standing'; +export { default as LucidePersonStanding } from './icons/person-standing'; + +// PhoneCall aliases +export { default as PhoneCallIcon } from './icons/phone-call'; +export { default as LucidePhoneCall } from './icons/phone-call'; + +// PhoneForwarded aliases +export { default as PhoneForwardedIcon } from './icons/phone-forwarded'; +export { default as LucidePhoneForwarded } from './icons/phone-forwarded'; + +// PhoneIncoming aliases +export { default as PhoneIncomingIcon } from './icons/phone-incoming'; +export { default as LucidePhoneIncoming } from './icons/phone-incoming'; + +// PhoneMissed aliases +export { default as PhoneMissedIcon } from './icons/phone-missed'; +export { default as LucidePhoneMissed } from './icons/phone-missed'; + +// PhoneOff aliases +export { default as PhoneOffIcon } from './icons/phone-off'; +export { default as LucidePhoneOff } from './icons/phone-off'; + +// PhoneOutgoing aliases +export { default as PhoneOutgoingIcon } from './icons/phone-outgoing'; +export { default as LucidePhoneOutgoing } from './icons/phone-outgoing'; + +// Phone aliases +export { default as PhoneIcon } from './icons/phone'; +export { default as LucidePhone } from './icons/phone'; + +// PieChart aliases +export { default as PieChartIcon } from './icons/pie-chart'; +export { default as LucidePieChart } from './icons/pie-chart'; + +// PiggyBank aliases +export { default as PiggyBankIcon } from './icons/piggy-bank'; +export { default as LucidePiggyBank } from './icons/piggy-bank'; + +// Pilcrow aliases +export { default as PilcrowIcon } from './icons/pilcrow'; +export { default as LucidePilcrow } from './icons/pilcrow'; + +// PinOff aliases +export { default as PinOffIcon } from './icons/pin-off'; +export { default as LucidePinOff } from './icons/pin-off'; + +// Pin aliases +export { default as PinIcon } from './icons/pin'; +export { default as LucidePin } from './icons/pin'; + +// Pipette aliases +export { default as PipetteIcon } from './icons/pipette'; +export { default as LucidePipette } from './icons/pipette'; + +// Pizza aliases +export { default as PizzaIcon } from './icons/pizza'; +export { default as LucidePizza } from './icons/pizza'; + +// Plane aliases +export { default as PlaneIcon } from './icons/plane'; +export { default as LucidePlane } from './icons/plane'; + +// PlayCircle aliases +export { default as PlayCircleIcon } from './icons/play-circle'; +export { default as LucidePlayCircle } from './icons/play-circle'; + +// Play aliases +export { default as PlayIcon } from './icons/play'; +export { default as LucidePlay } from './icons/play'; + +// Plug2 aliases +export { default as Plug2Icon } from './icons/plug-2'; +export { default as LucidePlug2 } from './icons/plug-2'; + +// PlugZap aliases +export { default as PlugZapIcon } from './icons/plug-zap'; +export { default as LucidePlugZap } from './icons/plug-zap'; + +// Plug aliases +export { default as PlugIcon } from './icons/plug'; +export { default as LucidePlug } from './icons/plug'; + +// PlusCircle aliases +export { default as PlusCircleIcon } from './icons/plus-circle'; +export { default as LucidePlusCircle } from './icons/plus-circle'; + +// PlusSquare aliases +export { default as PlusSquareIcon } from './icons/plus-square'; +export { default as LucidePlusSquare } from './icons/plus-square'; + +// Plus aliases +export { default as PlusIcon } from './icons/plus'; +export { default as LucidePlus } from './icons/plus'; + +// Pocket aliases +export { default as PocketIcon } from './icons/pocket'; +export { default as LucidePocket } from './icons/pocket'; + +// Podcast aliases +export { default as PodcastIcon } from './icons/podcast'; +export { default as LucidePodcast } from './icons/podcast'; + +// Pointer aliases +export { default as PointerIcon } from './icons/pointer'; +export { default as LucidePointer } from './icons/pointer'; + +// PoundSterling aliases +export { default as PoundSterlingIcon } from './icons/pound-sterling'; +export { default as LucidePoundSterling } from './icons/pound-sterling'; + +// PowerOff aliases +export { default as PowerOffIcon } from './icons/power-off'; +export { default as LucidePowerOff } from './icons/power-off'; + +// Power aliases +export { default as PowerIcon } from './icons/power'; +export { default as LucidePower } from './icons/power'; + +// Printer aliases +export { default as PrinterIcon } from './icons/printer'; +export { default as LucidePrinter } from './icons/printer'; + +// Puzzle aliases +export { default as PuzzleIcon } from './icons/puzzle'; +export { default as LucidePuzzle } from './icons/puzzle'; + +// QrCode aliases +export { default as QrCodeIcon } from './icons/qr-code'; +export { default as LucideQrCode } from './icons/qr-code'; + +// Quote aliases +export { default as QuoteIcon } from './icons/quote'; +export { default as LucideQuote } from './icons/quote'; + +// RadioReceiver aliases +export { default as RadioReceiverIcon } from './icons/radio-receiver'; +export { default as LucideRadioReceiver } from './icons/radio-receiver'; + +// Radio aliases +export { default as RadioIcon } from './icons/radio'; +export { default as LucideRadio } from './icons/radio'; + +// RectangleHorizontal aliases +export { default as RectangleHorizontalIcon } from './icons/rectangle-horizontal'; +export { default as LucideRectangleHorizontal } from './icons/rectangle-horizontal'; + +// RectangleVertical aliases +export { default as RectangleVerticalIcon } from './icons/rectangle-vertical'; +export { default as LucideRectangleVertical } from './icons/rectangle-vertical'; + +// Recycle aliases +export { default as RecycleIcon } from './icons/recycle'; +export { default as LucideRecycle } from './icons/recycle'; + +// Redo2 aliases +export { default as Redo2Icon } from './icons/redo-2'; +export { default as LucideRedo2 } from './icons/redo-2'; + +// Redo aliases +export { default as RedoIcon } from './icons/redo'; +export { default as LucideRedo } from './icons/redo'; + +// RefreshCcw aliases +export { default as RefreshCcwIcon } from './icons/refresh-ccw'; +export { default as LucideRefreshCcw } from './icons/refresh-ccw'; + +// RefreshCw aliases +export { default as RefreshCwIcon } from './icons/refresh-cw'; +export { default as LucideRefreshCw } from './icons/refresh-cw'; + +// Refrigerator aliases +export { default as RefrigeratorIcon } from './icons/refrigerator'; +export { default as LucideRefrigerator } from './icons/refrigerator'; + +// Regex aliases +export { default as RegexIcon } from './icons/regex'; +export { default as LucideRegex } from './icons/regex'; + +// Repeat1 aliases +export { default as Repeat1Icon } from './icons/repeat-1'; +export { default as LucideRepeat1 } from './icons/repeat-1'; + +// Repeat aliases +export { default as RepeatIcon } from './icons/repeat'; +export { default as LucideRepeat } from './icons/repeat'; + +// ReplyAll aliases +export { default as ReplyAllIcon } from './icons/reply-all'; +export { default as LucideReplyAll } from './icons/reply-all'; + +// Reply aliases +export { default as ReplyIcon } from './icons/reply'; +export { default as LucideReply } from './icons/reply'; + +// Rewind aliases +export { default as RewindIcon } from './icons/rewind'; +export { default as LucideRewind } from './icons/rewind'; + +// Rocket aliases +export { default as RocketIcon } from './icons/rocket'; +export { default as LucideRocket } from './icons/rocket'; + +// RockingChair aliases +export { default as RockingChairIcon } from './icons/rocking-chair'; +export { default as LucideRockingChair } from './icons/rocking-chair'; + +// Rotate3d aliases +export { default as Rotate3dIcon } from './icons/rotate-3d'; +export { default as LucideRotate3d } from './icons/rotate-3d'; + +// RotateCcw aliases +export { default as RotateCcwIcon } from './icons/rotate-ccw'; +export { default as LucideRotateCcw } from './icons/rotate-ccw'; + +// RotateCw aliases +export { default as RotateCwIcon } from './icons/rotate-cw'; +export { default as LucideRotateCw } from './icons/rotate-cw'; + +// Rss aliases +export { default as RssIcon } from './icons/rss'; +export { default as LucideRss } from './icons/rss'; + +// Ruler aliases +export { default as RulerIcon } from './icons/ruler'; +export { default as LucideRuler } from './icons/ruler'; + +// RussianRuble aliases +export { default as RussianRubleIcon } from './icons/russian-ruble'; +export { default as LucideRussianRuble } from './icons/russian-ruble'; + +// Sailboat aliases +export { default as SailboatIcon } from './icons/sailboat'; +export { default as LucideSailboat } from './icons/sailboat'; + +// Save aliases +export { default as SaveIcon } from './icons/save'; +export { default as LucideSave } from './icons/save'; + +// Scale3d aliases +export { default as Scale3dIcon } from './icons/scale-3d'; +export { default as LucideScale3d } from './icons/scale-3d'; + +// Scale aliases +export { default as ScaleIcon } from './icons/scale'; +export { default as LucideScale } from './icons/scale'; + +// Scaling aliases +export { default as ScalingIcon } from './icons/scaling'; +export { default as LucideScaling } from './icons/scaling'; + +// ScanFace aliases +export { default as ScanFaceIcon } from './icons/scan-face'; +export { default as LucideScanFace } from './icons/scan-face'; + +// ScanLine aliases +export { default as ScanLineIcon } from './icons/scan-line'; +export { default as LucideScanLine } from './icons/scan-line'; + +// Scan aliases +export { default as ScanIcon } from './icons/scan'; +export { default as LucideScan } from './icons/scan'; + +// Scissors aliases +export { default as ScissorsIcon } from './icons/scissors'; +export { default as LucideScissors } from './icons/scissors'; + +// ScreenShareOff aliases +export { default as ScreenShareOffIcon } from './icons/screen-share-off'; +export { default as LucideScreenShareOff } from './icons/screen-share-off'; + +// ScreenShare aliases +export { default as ScreenShareIcon } from './icons/screen-share'; +export { default as LucideScreenShare } from './icons/screen-share'; + +// Scroll aliases +export { default as ScrollIcon } from './icons/scroll'; +export { default as LucideScroll } from './icons/scroll'; + +// Search aliases +export { default as SearchIcon } from './icons/search'; +export { default as LucideSearch } from './icons/search'; + +// Send aliases +export { default as SendIcon } from './icons/send'; +export { default as LucideSend } from './icons/send'; + +// SeparatorHorizontal aliases +export { default as SeparatorHorizontalIcon } from './icons/separator-horizontal'; +export { default as LucideSeparatorHorizontal } from './icons/separator-horizontal'; + +// SeparatorVertical aliases +export { default as SeparatorVerticalIcon } from './icons/separator-vertical'; +export { default as LucideSeparatorVertical } from './icons/separator-vertical'; + +// ServerCog aliases +export { default as ServerCogIcon } from './icons/server-cog'; +export { default as LucideServerCog } from './icons/server-cog'; + +// ServerCrash aliases +export { default as ServerCrashIcon } from './icons/server-crash'; +export { default as LucideServerCrash } from './icons/server-crash'; + +// ServerOff aliases +export { default as ServerOffIcon } from './icons/server-off'; +export { default as LucideServerOff } from './icons/server-off'; + +// Server aliases +export { default as ServerIcon } from './icons/server'; +export { default as LucideServer } from './icons/server'; + +// Settings2 aliases +export { default as Settings2Icon } from './icons/settings-2'; +export { default as LucideSettings2 } from './icons/settings-2'; + +// Settings aliases +export { default as SettingsIcon } from './icons/settings'; +export { default as LucideSettings } from './icons/settings'; + +// Share2 aliases +export { default as Share2Icon } from './icons/share-2'; +export { default as LucideShare2 } from './icons/share-2'; + +// Share aliases +export { default as ShareIcon } from './icons/share'; +export { default as LucideShare } from './icons/share'; + +// Sheet aliases +export { default as SheetIcon } from './icons/sheet'; +export { default as LucideSheet } from './icons/sheet'; + +// ShieldAlert aliases +export { default as ShieldAlertIcon } from './icons/shield-alert'; +export { default as LucideShieldAlert } from './icons/shield-alert'; + +// ShieldCheck aliases +export { default as ShieldCheckIcon } from './icons/shield-check'; +export { default as LucideShieldCheck } from './icons/shield-check'; + +// ShieldClose aliases +export { default as ShieldCloseIcon } from './icons/shield-close'; +export { default as LucideShieldClose } from './icons/shield-close'; + +// ShieldOff aliases +export { default as ShieldOffIcon } from './icons/shield-off'; +export { default as LucideShieldOff } from './icons/shield-off'; + +// Shield aliases +export { default as ShieldIcon } from './icons/shield'; +export { default as LucideShield } from './icons/shield'; + +// Shirt aliases +export { default as ShirtIcon } from './icons/shirt'; +export { default as LucideShirt } from './icons/shirt'; + +// ShoppingBag aliases +export { default as ShoppingBagIcon } from './icons/shopping-bag'; +export { default as LucideShoppingBag } from './icons/shopping-bag'; + +// ShoppingCart aliases +export { default as ShoppingCartIcon } from './icons/shopping-cart'; +export { default as LucideShoppingCart } from './icons/shopping-cart'; + +// Shovel aliases +export { default as ShovelIcon } from './icons/shovel'; +export { default as LucideShovel } from './icons/shovel'; + +// ShowerHead aliases +export { default as ShowerHeadIcon } from './icons/shower-head'; +export { default as LucideShowerHead } from './icons/shower-head'; + +// Shrink aliases +export { default as ShrinkIcon } from './icons/shrink'; +export { default as LucideShrink } from './icons/shrink'; + +// Shrub aliases +export { default as ShrubIcon } from './icons/shrub'; +export { default as LucideShrub } from './icons/shrub'; + +// Shuffle aliases +export { default as ShuffleIcon } from './icons/shuffle'; +export { default as LucideShuffle } from './icons/shuffle'; + +// SidebarClose aliases +export { default as SidebarCloseIcon } from './icons/sidebar-close'; +export { default as LucideSidebarClose } from './icons/sidebar-close'; + +// SidebarOpen aliases +export { default as SidebarOpenIcon } from './icons/sidebar-open'; +export { default as LucideSidebarOpen } from './icons/sidebar-open'; + +// Sidebar aliases +export { default as SidebarIcon } from './icons/sidebar'; +export { default as LucideSidebar } from './icons/sidebar'; + +// Sigma aliases +export { default as SigmaIcon } from './icons/sigma'; +export { default as LucideSigma } from './icons/sigma'; + +// SignalHigh aliases +export { default as SignalHighIcon } from './icons/signal-high'; +export { default as LucideSignalHigh } from './icons/signal-high'; + +// SignalLow aliases +export { default as SignalLowIcon } from './icons/signal-low'; +export { default as LucideSignalLow } from './icons/signal-low'; + +// SignalMedium aliases +export { default as SignalMediumIcon } from './icons/signal-medium'; +export { default as LucideSignalMedium } from './icons/signal-medium'; + +// SignalZero aliases +export { default as SignalZeroIcon } from './icons/signal-zero'; +export { default as LucideSignalZero } from './icons/signal-zero'; + +// Signal aliases +export { default as SignalIcon } from './icons/signal'; +export { default as LucideSignal } from './icons/signal'; + +// Siren aliases +export { default as SirenIcon } from './icons/siren'; +export { default as LucideSiren } from './icons/siren'; + +// SkipBack aliases +export { default as SkipBackIcon } from './icons/skip-back'; +export { default as LucideSkipBack } from './icons/skip-back'; + +// SkipForward aliases +export { default as SkipForwardIcon } from './icons/skip-forward'; +export { default as LucideSkipForward } from './icons/skip-forward'; + +// Skull aliases +export { default as SkullIcon } from './icons/skull'; +export { default as LucideSkull } from './icons/skull'; + +// Slack aliases +export { default as SlackIcon } from './icons/slack'; +export { default as LucideSlack } from './icons/slack'; + +// Slash aliases +export { default as SlashIcon } from './icons/slash'; +export { default as LucideSlash } from './icons/slash'; + +// Slice aliases +export { default as SliceIcon } from './icons/slice'; +export { default as LucideSlice } from './icons/slice'; + +// SlidersHorizontal aliases +export { default as SlidersHorizontalIcon } from './icons/sliders-horizontal'; +export { default as LucideSlidersHorizontal } from './icons/sliders-horizontal'; + +// Sliders aliases +export { default as SlidersIcon } from './icons/sliders'; +export { default as LucideSliders } from './icons/sliders'; + +// SmartphoneCharging aliases +export { default as SmartphoneChargingIcon } from './icons/smartphone-charging'; +export { default as LucideSmartphoneCharging } from './icons/smartphone-charging'; + +// Smartphone aliases +export { default as SmartphoneIcon } from './icons/smartphone'; +export { default as LucideSmartphone } from './icons/smartphone'; + +// SmilePlus aliases +export { default as SmilePlusIcon } from './icons/smile-plus'; +export { default as LucideSmilePlus } from './icons/smile-plus'; + +// Smile aliases +export { default as SmileIcon } from './icons/smile'; +export { default as LucideSmile } from './icons/smile'; + +// Snowflake aliases +export { default as SnowflakeIcon } from './icons/snowflake'; +export { default as LucideSnowflake } from './icons/snowflake'; + +// Sofa aliases +export { default as SofaIcon } from './icons/sofa'; +export { default as LucideSofa } from './icons/sofa'; + +// SortAsc aliases +export { default as SortAscIcon } from './icons/sort-asc'; +export { default as LucideSortAsc } from './icons/sort-asc'; + +// SortDesc aliases +export { default as SortDescIcon } from './icons/sort-desc'; +export { default as LucideSortDesc } from './icons/sort-desc'; + +// Speaker aliases +export { default as SpeakerIcon } from './icons/speaker'; +export { default as LucideSpeaker } from './icons/speaker'; + +// Spline aliases +export { default as SplineIcon } from './icons/spline'; +export { default as LucideSpline } from './icons/spline'; + +// Sprout aliases +export { default as SproutIcon } from './icons/sprout'; +export { default as LucideSprout } from './icons/sprout'; + +// Square aliases +export { default as SquareIcon } from './icons/square'; +export { default as LucideSquare } from './icons/square'; + +// StarHalf aliases +export { default as StarHalfIcon } from './icons/star-half'; +export { default as LucideStarHalf } from './icons/star-half'; + +// StarOff aliases +export { default as StarOffIcon } from './icons/star-off'; +export { default as LucideStarOff } from './icons/star-off'; + +// Star aliases +export { default as StarIcon } from './icons/star'; +export { default as LucideStar } from './icons/star'; + +// Stethoscope aliases +export { default as StethoscopeIcon } from './icons/stethoscope'; +export { default as LucideStethoscope } from './icons/stethoscope'; + +// Sticker aliases +export { default as StickerIcon } from './icons/sticker'; +export { default as LucideSticker } from './icons/sticker'; + +// StickyNote aliases +export { default as StickyNoteIcon } from './icons/sticky-note'; +export { default as LucideStickyNote } from './icons/sticky-note'; + +// StopCircle aliases +export { default as StopCircleIcon } from './icons/stop-circle'; +export { default as LucideStopCircle } from './icons/stop-circle'; + +// StretchHorizontal aliases +export { default as StretchHorizontalIcon } from './icons/stretch-horizontal'; +export { default as LucideStretchHorizontal } from './icons/stretch-horizontal'; + +// StretchVertical aliases +export { default as StretchVerticalIcon } from './icons/stretch-vertical'; +export { default as LucideStretchVertical } from './icons/stretch-vertical'; + +// Strikethrough aliases +export { default as StrikethroughIcon } from './icons/strikethrough'; +export { default as LucideStrikethrough } from './icons/strikethrough'; + +// Subscript aliases +export { default as SubscriptIcon } from './icons/subscript'; +export { default as LucideSubscript } from './icons/subscript'; + +// Subtitles aliases +export { default as SubtitlesIcon } from './icons/subtitles'; +export { default as LucideSubtitles } from './icons/subtitles'; + +// SunDim aliases +export { default as SunDimIcon } from './icons/sun-dim'; +export { default as LucideSunDim } from './icons/sun-dim'; + +// SunMedium aliases +export { default as SunMediumIcon } from './icons/sun-medium'; +export { default as LucideSunMedium } from './icons/sun-medium'; + +// SunMoon aliases +export { default as SunMoonIcon } from './icons/sun-moon'; +export { default as LucideSunMoon } from './icons/sun-moon'; + +// SunSnow aliases +export { default as SunSnowIcon } from './icons/sun-snow'; +export { default as LucideSunSnow } from './icons/sun-snow'; + +// Sun aliases +export { default as SunIcon } from './icons/sun'; +export { default as LucideSun } from './icons/sun'; + +// Sunrise aliases +export { default as SunriseIcon } from './icons/sunrise'; +export { default as LucideSunrise } from './icons/sunrise'; + +// Sunset aliases +export { default as SunsetIcon } from './icons/sunset'; +export { default as LucideSunset } from './icons/sunset'; + +// Superscript aliases +export { default as SuperscriptIcon } from './icons/superscript'; +export { default as LucideSuperscript } from './icons/superscript'; + +// SwissFranc aliases +export { default as SwissFrancIcon } from './icons/swiss-franc'; +export { default as LucideSwissFranc } from './icons/swiss-franc'; + +// SwitchCamera aliases +export { default as SwitchCameraIcon } from './icons/switch-camera'; +export { default as LucideSwitchCamera } from './icons/switch-camera'; + +// Sword aliases +export { default as SwordIcon } from './icons/sword'; +export { default as LucideSword } from './icons/sword'; + +// Swords aliases +export { default as SwordsIcon } from './icons/swords'; +export { default as LucideSwords } from './icons/swords'; + +// Syringe aliases +export { default as SyringeIcon } from './icons/syringe'; +export { default as LucideSyringe } from './icons/syringe'; + +// Table2 aliases +export { default as Table2Icon } from './icons/table-2'; +export { default as LucideTable2 } from './icons/table-2'; + +// Table aliases +export { default as TableIcon } from './icons/table'; +export { default as LucideTable } from './icons/table'; + +// Tablet aliases +export { default as TabletIcon } from './icons/tablet'; +export { default as LucideTablet } from './icons/tablet'; + +// Tag aliases +export { default as TagIcon } from './icons/tag'; +export { default as LucideTag } from './icons/tag'; + +// Tags aliases +export { default as TagsIcon } from './icons/tags'; +export { default as LucideTags } from './icons/tags'; + +// Target aliases +export { default as TargetIcon } from './icons/target'; +export { default as LucideTarget } from './icons/target'; + +// Tent aliases +export { default as TentIcon } from './icons/tent'; +export { default as LucideTent } from './icons/tent'; + +// TerminalSquare aliases +export { default as TerminalSquareIcon } from './icons/terminal-square'; +export { default as LucideTerminalSquare } from './icons/terminal-square'; + +// Terminal aliases +export { default as TerminalIcon } from './icons/terminal'; +export { default as LucideTerminal } from './icons/terminal'; + +// TextCursorInput aliases +export { default as TextCursorInputIcon } from './icons/text-cursor-input'; +export { default as LucideTextCursorInput } from './icons/text-cursor-input'; + +// TextCursor aliases +export { default as TextCursorIcon } from './icons/text-cursor'; +export { default as LucideTextCursor } from './icons/text-cursor'; + +// ThermometerSnowflake aliases +export { default as ThermometerSnowflakeIcon } from './icons/thermometer-snowflake'; +export { default as LucideThermometerSnowflake } from './icons/thermometer-snowflake'; + +// ThermometerSun aliases +export { default as ThermometerSunIcon } from './icons/thermometer-sun'; +export { default as LucideThermometerSun } from './icons/thermometer-sun'; + +// Thermometer aliases +export { default as ThermometerIcon } from './icons/thermometer'; +export { default as LucideThermometer } from './icons/thermometer'; + +// ThumbsDown aliases +export { default as ThumbsDownIcon } from './icons/thumbs-down'; +export { default as LucideThumbsDown } from './icons/thumbs-down'; + +// ThumbsUp aliases +export { default as ThumbsUpIcon } from './icons/thumbs-up'; +export { default as LucideThumbsUp } from './icons/thumbs-up'; + +// Ticket aliases +export { default as TicketIcon } from './icons/ticket'; +export { default as LucideTicket } from './icons/ticket'; + +// TimerOff aliases +export { default as TimerOffIcon } from './icons/timer-off'; +export { default as LucideTimerOff } from './icons/timer-off'; + +// TimerReset aliases +export { default as TimerResetIcon } from './icons/timer-reset'; +export { default as LucideTimerReset } from './icons/timer-reset'; + +// Timer aliases +export { default as TimerIcon } from './icons/timer'; +export { default as LucideTimer } from './icons/timer'; + +// ToggleLeft aliases +export { default as ToggleLeftIcon } from './icons/toggle-left'; +export { default as LucideToggleLeft } from './icons/toggle-left'; + +// ToggleRight aliases +export { default as ToggleRightIcon } from './icons/toggle-right'; +export { default as LucideToggleRight } from './icons/toggle-right'; + +// Tornado aliases +export { default as TornadoIcon } from './icons/tornado'; +export { default as LucideTornado } from './icons/tornado'; + +// ToyBrick aliases +export { default as ToyBrickIcon } from './icons/toy-brick'; +export { default as LucideToyBrick } from './icons/toy-brick'; + +// Train aliases +export { default as TrainIcon } from './icons/train'; +export { default as LucideTrain } from './icons/train'; + +// Trash2 aliases +export { default as Trash2Icon } from './icons/trash-2'; +export { default as LucideTrash2 } from './icons/trash-2'; + +// Trash aliases +export { default as TrashIcon } from './icons/trash'; +export { default as LucideTrash } from './icons/trash'; + +// TreeDeciduous aliases +export { default as TreeDeciduousIcon } from './icons/tree-deciduous'; +export { default as LucideTreeDeciduous } from './icons/tree-deciduous'; + +// TreePine aliases +export { default as TreePineIcon } from './icons/tree-pine'; +export { default as LucideTreePine } from './icons/tree-pine'; + +// Trees aliases +export { default as TreesIcon } from './icons/trees'; +export { default as LucideTrees } from './icons/trees'; + +// Trello aliases +export { default as TrelloIcon } from './icons/trello'; +export { default as LucideTrello } from './icons/trello'; + +// TrendingDown aliases +export { default as TrendingDownIcon } from './icons/trending-down'; +export { default as LucideTrendingDown } from './icons/trending-down'; + +// TrendingUp aliases +export { default as TrendingUpIcon } from './icons/trending-up'; +export { default as LucideTrendingUp } from './icons/trending-up'; + +// Triangle aliases +export { default as TriangleIcon } from './icons/triangle'; +export { default as LucideTriangle } from './icons/triangle'; + +// Trophy aliases +export { default as TrophyIcon } from './icons/trophy'; +export { default as LucideTrophy } from './icons/trophy'; + +// Truck aliases +export { default as TruckIcon } from './icons/truck'; +export { default as LucideTruck } from './icons/truck'; + +// Tv2 aliases +export { default as Tv2Icon } from './icons/tv-2'; +export { default as LucideTv2 } from './icons/tv-2'; + +// Tv aliases +export { default as TvIcon } from './icons/tv'; +export { default as LucideTv } from './icons/tv'; + +// Twitch aliases +export { default as TwitchIcon } from './icons/twitch'; +export { default as LucideTwitch } from './icons/twitch'; + +// Twitter aliases +export { default as TwitterIcon } from './icons/twitter'; +export { default as LucideTwitter } from './icons/twitter'; + +// Type aliases +export { default as TypeIcon } from './icons/type'; +export { default as LucideType } from './icons/type'; + +// Umbrella aliases +export { default as UmbrellaIcon } from './icons/umbrella'; +export { default as LucideUmbrella } from './icons/umbrella'; + +// Underline aliases +export { default as UnderlineIcon } from './icons/underline'; +export { default as LucideUnderline } from './icons/underline'; + +// Undo2 aliases +export { default as Undo2Icon } from './icons/undo-2'; +export { default as LucideUndo2 } from './icons/undo-2'; + +// Undo aliases +export { default as UndoIcon } from './icons/undo'; +export { default as LucideUndo } from './icons/undo'; + +// Unlink2 aliases +export { default as Unlink2Icon } from './icons/unlink-2'; +export { default as LucideUnlink2 } from './icons/unlink-2'; + +// Unlink aliases +export { default as UnlinkIcon } from './icons/unlink'; +export { default as LucideUnlink } from './icons/unlink'; + +// Unlock aliases +export { default as UnlockIcon } from './icons/unlock'; +export { default as LucideUnlock } from './icons/unlock'; + +// UploadCloud aliases +export { default as UploadCloudIcon } from './icons/upload-cloud'; +export { default as LucideUploadCloud } from './icons/upload-cloud'; + +// Upload aliases +export { default as UploadIcon } from './icons/upload'; +export { default as LucideUpload } from './icons/upload'; + +// Usb aliases +export { default as UsbIcon } from './icons/usb'; +export { default as LucideUsb } from './icons/usb'; + +// UserCheck aliases +export { default as UserCheckIcon } from './icons/user-check'; +export { default as LucideUserCheck } from './icons/user-check'; + +// UserCog aliases +export { default as UserCogIcon } from './icons/user-cog'; +export { default as LucideUserCog } from './icons/user-cog'; + +// UserMinus aliases +export { default as UserMinusIcon } from './icons/user-minus'; +export { default as LucideUserMinus } from './icons/user-minus'; + +// UserPlus aliases +export { default as UserPlusIcon } from './icons/user-plus'; +export { default as LucideUserPlus } from './icons/user-plus'; + +// UserX aliases +export { default as UserXIcon } from './icons/user-x'; +export { default as LucideUserX } from './icons/user-x'; + +// User aliases +export { default as UserIcon } from './icons/user'; +export { default as LucideUser } from './icons/user'; + +// Users aliases +export { default as UsersIcon } from './icons/users'; +export { default as LucideUsers } from './icons/users'; + +// UtensilsCrossed aliases +export { default as UtensilsCrossedIcon } from './icons/utensils-crossed'; +export { default as LucideUtensilsCrossed } from './icons/utensils-crossed'; + +// Utensils aliases +export { default as UtensilsIcon } from './icons/utensils'; +export { default as LucideUtensils } from './icons/utensils'; + +// Vegan aliases +export { default as VeganIcon } from './icons/vegan'; +export { default as LucideVegan } from './icons/vegan'; + +// VenetianMask aliases +export { default as VenetianMaskIcon } from './icons/venetian-mask'; +export { default as LucideVenetianMask } from './icons/venetian-mask'; + +// Verified aliases +export { default as VerifiedIcon } from './icons/verified'; +export { default as LucideVerified } from './icons/verified'; + +// VibrateOff aliases +export { default as VibrateOffIcon } from './icons/vibrate-off'; +export { default as LucideVibrateOff } from './icons/vibrate-off'; + +// Vibrate aliases +export { default as VibrateIcon } from './icons/vibrate'; +export { default as LucideVibrate } from './icons/vibrate'; + +// VideoOff aliases +export { default as VideoOffIcon } from './icons/video-off'; +export { default as LucideVideoOff } from './icons/video-off'; + +// Video aliases +export { default as VideoIcon } from './icons/video'; +export { default as LucideVideo } from './icons/video'; + +// View aliases +export { default as ViewIcon } from './icons/view'; +export { default as LucideView } from './icons/view'; + +// Voicemail aliases +export { default as VoicemailIcon } from './icons/voicemail'; +export { default as LucideVoicemail } from './icons/voicemail'; + +// Volume1 aliases +export { default as Volume1Icon } from './icons/volume-1'; +export { default as LucideVolume1 } from './icons/volume-1'; + +// Volume2 aliases +export { default as Volume2Icon } from './icons/volume-2'; +export { default as LucideVolume2 } from './icons/volume-2'; + +// VolumeX aliases +export { default as VolumeXIcon } from './icons/volume-x'; +export { default as LucideVolumeX } from './icons/volume-x'; + +// Volume aliases +export { default as VolumeIcon } from './icons/volume'; +export { default as LucideVolume } from './icons/volume'; + +// Wallet aliases +export { default as WalletIcon } from './icons/wallet'; +export { default as LucideWallet } from './icons/wallet'; + +// Wand2 aliases +export { default as Wand2Icon } from './icons/wand-2'; +export { default as LucideWand2 } from './icons/wand-2'; + +// Wand aliases +export { default as WandIcon } from './icons/wand'; +export { default as LucideWand } from './icons/wand'; + +// Watch aliases +export { default as WatchIcon } from './icons/watch'; +export { default as LucideWatch } from './icons/watch'; + +// Waves aliases +export { default as WavesIcon } from './icons/waves'; +export { default as LucideWaves } from './icons/waves'; + +// Webcam aliases +export { default as WebcamIcon } from './icons/webcam'; +export { default as LucideWebcam } from './icons/webcam'; + +// Webhook aliases +export { default as WebhookIcon } from './icons/webhook'; +export { default as LucideWebhook } from './icons/webhook'; + +// WheatOff aliases +export { default as WheatOffIcon } from './icons/wheat-off'; +export { default as LucideWheatOff } from './icons/wheat-off'; + +// Wheat aliases +export { default as WheatIcon } from './icons/wheat'; +export { default as LucideWheat } from './icons/wheat'; + +// WifiOff aliases +export { default as WifiOffIcon } from './icons/wifi-off'; +export { default as LucideWifiOff } from './icons/wifi-off'; + +// Wifi aliases +export { default as WifiIcon } from './icons/wifi'; +export { default as LucideWifi } from './icons/wifi'; + +// Wind aliases +export { default as WindIcon } from './icons/wind'; +export { default as LucideWind } from './icons/wind'; + +// WineOff aliases +export { default as WineOffIcon } from './icons/wine-off'; +export { default as LucideWineOff } from './icons/wine-off'; + +// Wine aliases +export { default as WineIcon } from './icons/wine'; +export { default as LucideWine } from './icons/wine'; + +// WrapText aliases +export { default as WrapTextIcon } from './icons/wrap-text'; +export { default as LucideWrapText } from './icons/wrap-text'; + +// Wrench aliases +export { default as WrenchIcon } from './icons/wrench'; +export { default as LucideWrench } from './icons/wrench'; + +// XCircle aliases +export { default as XCircleIcon } from './icons/x-circle'; +export { default as LucideXCircle } from './icons/x-circle'; + +// XOctagon aliases +export { default as XOctagonIcon } from './icons/x-octagon'; +export { default as LucideXOctagon } from './icons/x-octagon'; + +// XSquare aliases +export { default as XSquareIcon } from './icons/x-square'; +export { default as LucideXSquare } from './icons/x-square'; + +// X aliases +export { default as XIcon } from './icons/x'; +export { default as LucideX } from './icons/x'; + +// Youtube aliases +export { default as YoutubeIcon } from './icons/youtube'; +export { default as LucideYoutube } from './icons/youtube'; + +// ZapOff aliases +export { default as ZapOffIcon } from './icons/zap-off'; +export { default as LucideZapOff } from './icons/zap-off'; + +// Zap aliases +export { default as ZapIcon } from './icons/zap'; +export { default as LucideZap } from './icons/zap'; + +// ZoomIn aliases +export { default as ZoomInIcon } from './icons/zoom-in'; +export { default as LucideZoomIn } from './icons/zoom-in'; + +// ZoomOut aliases +export { default as ZoomOutIcon } from './icons/zoom-out'; +export { default as LucideZoomOut } from './icons/zoom-out'; + + diff --git a/packages/lucide-react/src/createReactComponent.ts b/packages/lucide-react/src/createLucideIcon.ts similarity index 79% rename from packages/lucide-react/src/createReactComponent.ts rename to packages/lucide-react/src/createLucideIcon.ts index c04cfac..d58568b 100644 --- a/packages/lucide-react/src/createReactComponent.ts +++ b/packages/lucide-react/src/createLucideIcon.ts @@ -1,5 +1,4 @@ import { forwardRef, createElement, ReactSVG, SVGProps } from 'react'; -import PropTypes from 'prop-types'; import defaultAttributes from './defaultAttributes'; type IconNode = [elementName: keyof ReactSVG, attrs: Record][] @@ -19,7 +18,7 @@ export interface LucideProps extends SVGAttributes { */ export const toKebabCase = (string: string) => string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase(); -const createReactComponent = (iconName: string, iconNode: IconNode) => { +const createLucideIcon = (iconName: string, iconNode: IconNode) => { const Component = forwardRef( ({ color = 'currentColor', size = 24, strokeWidth = 2, children, ...rest }, ref) => createElement( @@ -43,15 +42,9 @@ const createReactComponent = (iconName: string, iconNode: IconNode) => { ), ); - Component.propTypes = { - color: PropTypes.string, - size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), - strokeWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), - }; - Component.displayName = `${iconName}`; return Component; }; -export default createReactComponent +export default createLucideIcon diff --git a/packages/lucide-react/src/lucide-react.ts b/packages/lucide-react/src/lucide-react.ts index 31d1f64..2ddd5eb 100644 --- a/packages/lucide-react/src/lucide-react.ts +++ b/packages/lucide-react/src/lucide-react.ts @@ -1,2 +1,4 @@ export * from './icons'; -export { default as createReactComponent } from './createReactComponent'; +export * as icons from './icons'; +export * from './aliases'; +export { default as createLucideIcon } from './createLucideIcon'; diff --git a/packages/lucide-react/tests/lucide-react.spec.tsx b/packages/lucide-react/tests/lucide-react.spec.tsx index 3ae442a..a43137d 100644 --- a/packages/lucide-react/tests/lucide-react.spec.tsx +++ b/packages/lucide-react/tests/lucide-react.spec.tsx @@ -1,7 +1,6 @@ import { describe, it, expect } from 'vitest'; -import React from 'react'; -import { render } from '@testing-library/react' -import { Grid } from '../src/icons' +import { render, cleanup } from '@testing-library/react' +import { Pen, Edit2, Grid } from '../src/lucide-react'; describe('Using lucide icon components', () => { it('should render an component', () => { @@ -29,4 +28,31 @@ describe('Using lucide icon components', () => { expect( container.innerHTML ).toMatchSnapshot(); }); + + it('should render the alias icon', () => { + const testId = 'pen-icon'; + const { container } = render( + , + ); + + const PenIconRenderedHTML = container.innerHTML + + cleanup() + + const { container: Edit2Container } = render( + , + ); + + expect(PenIconRenderedHTML).toBe(Edit2Container.innerHTML) + }); }) diff --git a/packages/lucide-react/tsconfig.json b/packages/lucide-react/tsconfig.json index 5ae5e43..09bb9a5 100644 --- a/packages/lucide-react/tsconfig.json +++ b/packages/lucide-react/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "strict": true, - "declaration": true, + "declaration": false, "noEmitOnError": true, "noEmit": true, "noFallthroughCasesInSwitch": true, @@ -17,7 +17,6 @@ "downlevelIteration": true, "sourceMap": true, "outDir": "./dist", - "declarationMap": true, "jsx": "react-jsx", }, "exclude": ["**/node_modules"] diff --git a/packages/lucide-solid/package.json b/packages/lucide-solid/package.json index ab869f7..86fc378 100644 --- a/packages/lucide-solid/package.json +++ b/packages/lucide-solid/package.json @@ -1,7 +1,7 @@ { "name": "lucide-solid", "description": "A Lucide icon library package for Solid applications", - "version": "0.88.0-beta.3", + "version": "0.105.0-alpha.9", "license": "ISC", "homepage": "https://lucide.dev", "bugs": "https://github.com/lucide-icons/lucide/issues", @@ -11,34 +11,44 @@ "directory": "packages/lucide-solid" }, "author": "Eric Fennis", - "amdName": "lucide-solid", + "source": "src/lucide-solid.ts", "main": "dist/cjs/lucide-solid.js", - "main:umd": "dist/umd/lucide-solid.js", "module": "dist/esm/lucide-solid.js", - "unpkg": "dist/umd/lucide-solid.min.js", - "typings": "dist/lucide-solid.d.ts", - "files": [ - "dist" - ], + "types": "dist/types/lucide-solid.d.ts", + "files": ["dist"], + "exports": { + ".": { + "solid": "./dist/source/lucide-solid.js", + "import": "./dist/esm/lucide-solid.js", + "browser": "./dist/esm/lucide-solid.js", + "require": "./dist/cjs/lucide-solid.js", + "node": "./dist/cjs/lucide-solid.js" + } + }, "sideEffects": false, "scripts": { - "build": "pnpm clean && pnpm copy:license && pnpm build:icons && pnpm build:bundles && pnpm build:types", + "build": "pnpm clean && pnpm copy:license && pnpm build:icons && pnpm build:bundle && pnpm build:version", "copy:license": "cp ../../LICENSE ./LICENSE", "clean": "rm -rf dist && rm -rf stats && rm -rf ./src/icons/*.js", - "build:icons": "node ../../scripts/buildIcons.mjs --output=./src --templateSrc=./scripts/exportTemplate.mjs --renderUniqueKey --iconFileExtension=.ts --exportFileName=index.ts", - "build:types": "node ./scripts/buildTypes.mjs", - "build:bundles": "rollup -c ./rollup.config.mjs", + "build:transpile": "tsc --jsx preserve -t es2020 --rootDir src --outDir dist --noEmit false", + "build:version": "node ./scripts/replaceVersion.mjs", + "build:bundle": "rollup -c rollup.config.mjs", + "build:icons": "build-icons --output=./src --templateSrc=./scripts/exportTemplate.mjs --renderUniqueKey --withAliases --aliasesFileExtension=.ts --iconFileExtension=.tsx --exportFileName=index.ts", "test": "vitest run", "version": "pnpm version --git-tag-version=false" }, "devDependencies": { - "@lucide/rollup-plugins": "workspace:*", + "@lucide/build-icons": "workspace:*", + "@atomico/rollup-plugin-sizes": "^1.1.4", "@testing-library/jest-dom": "^5.16.5", + "rollup-plugin-license": "^3.0.1", "babel-preset-solid": "^1.5.4", "jsdom": "^20.0.0", "rollup": "^3.5.1", + "rollup-preset-solid": "^2.0.1", "solid-js": "^1.4.7", "solid-testing-library": "^0.3.0", + "typescript": "^4.9.4", "vite": "^3.2.4", "vite-plugin-solid": "^2.3.0", "vitest": "^0.23.2" diff --git a/packages/lucide-solid/rollup.config.mjs b/packages/lucide-solid/rollup.config.mjs index 468885d..4bcd8ed 100644 --- a/packages/lucide-solid/rollup.config.mjs +++ b/packages/lucide-solid/rollup.config.mjs @@ -1,65 +1,20 @@ -import plugins from '@lucide/rollup-plugins'; +// eslint-disable-next-line import/no-extraneous-dependencies +import withSolid from 'rollup-preset-solid'; +import bundleSize from '@atomico/rollup-plugin-sizes'; +import license from 'rollup-plugin-license'; + import pkg from './package.json' assert { type: 'json' }; -const packageName = 'LucideSolid'; -const outputFileName = 'lucide-solid'; -const outputDir = 'dist'; -const inputs = [`src/lucide-solid.ts`]; -const bundles = [ - { - format: 'umd', - inputs, - outputDir, - minify: true, - }, - { - format: 'umd', - inputs, - outputDir, - }, - { - format: 'cjs', - inputs, - outputDir, - }, - { - format: 'es', - inputs, - outputDir, - }, - { - format: 'esm', - inputs, - outputDir, - preserveModules: true, - }, +const config = withSolid({ + targets: ['esm', 'cjs'], +}); + +config.plugins = [ + ...config.plugins, + license({ + banner: `${pkg.name} v${pkg.version} - ${pkg.license}`, + }), + bundleSize(), ]; -const configs = bundles - .map(({ inputs, outputDir, format, minify, preserveModules }) => - inputs.map(input => ({ - input, - plugins: plugins(pkg, minify), - external: ['solid-js', 'solid-js/h'], - output: { - name: packageName, - ...(preserveModules - ? { - dir: `${outputDir}/${format}`, - } - : { - file: `${outputDir}/${format}/${outputFileName}${minify ? '.min' : ''}.js`, - }), - preserveModules, - format, - sourcemap: true, - globals: { - 'solid-js': 'solid-js', - 'solid-js/h': 'solid-js/h', - }, - }, - })), - ) - .flat(); - -export default configs; +export default config; diff --git a/packages/lucide-solid/scripts/buildTypes.mjs b/packages/lucide-solid/scripts/buildTypes.mjs index 7116918..2177a84 100644 --- a/packages/lucide-solid/scripts/buildTypes.mjs +++ b/packages/lucide-solid/scripts/buildTypes.mjs @@ -1,18 +1,27 @@ import path from 'path'; +// eslint-disable-next-line import/no-extraneous-dependencies +import { getAliases } from '@lucide/build-icons'; import { writeFile, readSvgDirectory, resetFile, toPascalCase, - appendFile, getCurrentDirPath, } from '../../../scripts/helpers.mjs'; const currentDir = getCurrentDirPath(import.meta.url); const srcDirectory = path.join(currentDir, '../dist'); +const writeDeclarationFile = (typesFile, directory, content) => { + resetFile(typesFile, directory); + writeFile(content, typesFile, directory); +}; + +const ICONS_DIR = path.resolve(currentDir, '../../../icons'); +const TYPES_FILE = 'lucide-solid.d.ts'; + // Declare type definitions -const typeDefinitions = `\ +let declarationFileContent = `\ /// import { JSX } from 'solid-js' @@ -24,23 +33,55 @@ interface LucideProps extends Partial> { class?: string } +export type LucideIcon = (props: LucideProps) => JSX.Element; + // Generated icons `; -const ICONS_DIR = path.resolve(currentDir, '../../../icons'); -const TYPES_FILE = 'lucide-solid.d.ts'; - -resetFile(TYPES_FILE, srcDirectory); -writeFile(typeDefinitions, TYPES_FILE, srcDirectory); - const svgFiles = readSvgDirectory(ICONS_DIR); svgFiles.forEach((svgFile) => { const iconName = path.basename(svgFile, '.svg'); const componentName = toPascalCase(iconName); - const exportTypeString = `export declare const ${componentName}: (props: LucideProps) => JSX.Element;\n`; - appendFile(exportTypeString, TYPES_FILE, srcDirectory); + declarationFileContent += `export declare const ${componentName}: LucideIcon;\n`; }); -console.log(`Generated ${TYPES_FILE} file with`, svgFiles.length, 'icons'); +const aliases = await getAliases(ICONS_DIR); + +declarationFileContent += `\n + +// Generated icon aliases +`; + +let aliasesCount = 0; + +svgFiles.forEach((svgFile) => { + const iconName = path.basename(svgFile, '.svg'); + const componentName = toPascalCase(iconName); + const iconAliases = aliases[iconName]?.aliases; + + declarationFileContent += `// ${componentName} aliases\n`; + declarationFileContent += `export declare const ${componentName}Icon: LucideIcon;\n`; + declarationFileContent += `export declare const Lucide${componentName}: LucideIcon;\n`; + aliasesCount += 1; + if (iconAliases != null && Array.isArray(iconAliases)) { + iconAliases.forEach((alias) => { + const componentNameAlias = toPascalCase(alias); + declarationFileContent += `export declare const ${componentNameAlias}: LucideIcon;\n`; + + aliasesCount += 1; + }); + } + + declarationFileContent += '\n'; +}); + +writeDeclarationFile(TYPES_FILE, srcDirectory, declarationFileContent); +console.log( + `Generated ${TYPES_FILE} file with`, + svgFiles.length, + 'icons and with', + aliasesCount, + 'aliases', +); diff --git a/packages/lucide-solid/scripts/exportTemplate.mjs b/packages/lucide-solid/scripts/exportTemplate.mjs index 2e36e9d..715f477 100644 --- a/packages/lucide-solid/scripts/exportTemplate.mjs +++ b/packages/lucide-solid/scripts/exportTemplate.mjs @@ -1,7 +1,12 @@ export default ({ componentName, children }) => ` -import createSolidComponent from '../createSolidComponent'; +import Icon from '../Icon'; +import type { IconNode, LucideProps } from '../types'; -const ${componentName} = createSolidComponent('${componentName}', ${JSON.stringify(children)}); +const iconNode: IconNode = ${JSON.stringify(children)}; + +const ${componentName} = (props: LucideProps) => ( + +) export default ${componentName}; `; diff --git a/packages/lucide-solid/scripts/replaceVersion.mjs b/packages/lucide-solid/scripts/replaceVersion.mjs new file mode 100644 index 0000000..eff6ddf --- /dev/null +++ b/packages/lucide-solid/scripts/replaceVersion.mjs @@ -0,0 +1,18 @@ +import fs from 'fs' +import path from 'path' + +import pkg from '../package.json' assert { type: 'json' }; + +const files = [ + 'dist/source/lucide-solid.js', + 'dist/types/lucide-solid.d.ts' +] + +files.forEach((file) => { + const fileContents = fs.readFileSync(path.resolve(file), 'utf-8'); + const newFileContents = fileContents.replace('{{version}}', pkg.version) + + fs.writeFileSync(path.resolve(file), newFileContents, 'utf-8') +}) + + diff --git a/packages/lucide-solid/src/Icon.tsx b/packages/lucide-solid/src/Icon.tsx new file mode 100644 index 0000000..22925e6 --- /dev/null +++ b/packages/lucide-solid/src/Icon.tsx @@ -0,0 +1,55 @@ +import { For, JSX, splitProps } from 'solid-js'; +import { Dynamic } from 'solid-js/web'; +import defaultAttributes from './defaultAttributes'; +import { IconNode, LucideProps } from './types'; + +/** + * Converts string to KebabCase + * Copied from scripts/helper. If anyone knows how to properly import it here + * then please fix it. + * + * @param {string} string + * @returns {string} A kebabized string + */ +export const toKebabCase = (string: string) => string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase(); + +interface IconProps { + name: string + iconNode: IconNode +} + +const Icon = (props: LucideProps & IconProps) => { + const [localProps, rest] = splitProps(props, [ + 'color', + 'size', + 'strokeWidth', + 'children', + 'class', + 'name', + 'iconNode' + ]); + + return ( + + + {([elementName, attrs]) => { + return ( + + ); + }} + + + ) +} + +export default Icon diff --git a/packages/lucide-solid/src/createSolidComponent.ts b/packages/lucide-solid/src/createSolidComponent.ts deleted file mode 100644 index c822235..0000000 --- a/packages/lucide-solid/src/createSolidComponent.ts +++ /dev/null @@ -1,57 +0,0 @@ -import h from 'solid-js/h'; -import { JSX, splitProps } from 'solid-js'; -import defaultAttributes from './defaultAttributes'; - -type IconNode = [elementName: keyof JSX.IntrinsicElements, attrs: Record][] - -interface LucideProps extends Partial> { - key?: string | number; - color?: string - size?: string | number - strokeWidth?: string | number - class?: string -} - -/** - * Converts string to KebabCase - * Copied from scripts/helper. If anyone knows how to properly import it here - * then please fix it. - * - * @param {string} string - * @returns {string} A kebabized string - */ -export const toKebabCase = (string: string) => string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase(); - -export default (iconName: string, iconNode: IconNode) => { - const Component = (props: LucideProps) => { - const [localProps, rest] = splitProps(props, [ - 'color', - 'size', - 'strokeWidth', - 'children', - 'class', - ]); - - const svgProps = { - ...defaultAttributes, - width: () => (localProps.size != null ? localProps.size : defaultAttributes.width), - height: () => (localProps.size != null ? localProps.size : defaultAttributes.height), - stroke: () => (localProps.color != null ? localProps.color : defaultAttributes.stroke), - 'stroke-width': () => - localProps.strokeWidth != null ? localProps.strokeWidth : defaultAttributes['stroke-width'], - class: () => - `lucide lucide-${toKebabCase(iconName)} ${ - localProps.class != null ? localProps.class : '' - }`, - }; - - return h( - 'svg', - [svgProps, rest], - [...iconNode.map(([tag, attrs]) => h(tag, attrs)), localProps.children], - ); - }; - - Component.displayName = `${iconName}`; - return Component; -}; diff --git a/packages/lucide-solid/src/defaultAttributes.ts b/packages/lucide-solid/src/defaultAttributes.ts index 8ae7d46..1a3542a 100644 --- a/packages/lucide-solid/src/defaultAttributes.ts +++ b/packages/lucide-solid/src/defaultAttributes.ts @@ -1,4 +1,7 @@ -export default { +import { JSX } from "solid-js/jsx-runtime"; +import { SVGAttributes } from "./types"; + +const defaultAttributes: SVGAttributes = { xmlns: 'http://www.w3.org/2000/svg', width: 24, height: 24, @@ -9,3 +12,5 @@ export default { 'stroke-linecap': 'round', 'stroke-linejoin': 'round', }; + +export default defaultAttributes diff --git a/packages/lucide-solid/src/lucide-solid.ts b/packages/lucide-solid/src/lucide-solid.ts index 838008a..f5d8e91 100644 --- a/packages/lucide-solid/src/lucide-solid.ts +++ b/packages/lucide-solid/src/lucide-solid.ts @@ -1 +1,7 @@ +/** + * lucide-solid {{version}} - ISC + */ + export * from './icons'; +export * as icons from './icons'; +export * from './aliases'; diff --git a/packages/lucide-solid/src/types.ts b/packages/lucide-solid/src/types.ts new file mode 100644 index 0000000..55e3c69 --- /dev/null +++ b/packages/lucide-solid/src/types.ts @@ -0,0 +1,12 @@ +import { JSX } from "solid-js/jsx-runtime"; + +export type IconNode = [elementName: keyof JSX.IntrinsicElements, attrs: Record][] +export type SVGAttributes = Partial> + +export interface LucideProps extends SVGAttributes { + key?: string | number; + color?: string + size?: string | number + strokeWidth?: string | number + class?: string +} diff --git a/packages/lucide-solid/tests/__snapshots__/lucide-solid.spec.tsx.snap b/packages/lucide-solid/tests/__snapshots__/lucide-solid.spec.tsx.snap index 65afb2c..9e7e0b3 100644 --- a/packages/lucide-solid/tests/__snapshots__/lucide-solid.spec.tsx.snap +++ b/packages/lucide-solid/tests/__snapshots__/lucide-solid.spec.tsx.snap @@ -1,5 +1,5 @@ // Vitest Snapshot v1 -exports[`Using lucide icon components > should adjust the size, stroke color and stroke width 1`] = `""`; +exports[`Using lucide icon components > should adjust the size, stroke color and stroke width 1`] = `""`; exports[`Using lucide icon components > should render an component 1`] = `""`; diff --git a/packages/lucide-solid/tests/lucide-solid.spec.tsx b/packages/lucide-solid/tests/lucide-solid.spec.tsx index e35c5cc..ee7d179 100644 --- a/packages/lucide-solid/tests/lucide-solid.spec.tsx +++ b/packages/lucide-solid/tests/lucide-solid.spec.tsx @@ -4,7 +4,7 @@ import { Grid } from '../src/icons' describe('Using lucide icon components', () => { it('should render an component', () => { - const { container } = render(() => ); + const { container } = render(() => ); expect( container.innerHTML ).toMatchSnapshot(); }); @@ -15,7 +15,7 @@ describe('Using lucide icon components', () => { , ); diff --git a/packages/lucide-solid/tsconfig.json b/packages/lucide-solid/tsconfig.json index 249b273..5530233 100644 --- a/packages/lucide-solid/tsconfig.json +++ b/packages/lucide-solid/tsconfig.json @@ -10,6 +10,7 @@ "jsxImportSource": "solid-js", "types": ["vite/client"], "noEmit": true, - "isolatedModules": true + "isolatedModules": true, + "outDir": "dist" } } diff --git a/packages/lucide-svelte/package.json b/packages/lucide-svelte/package.json index 26cf078..54c62af 100644 --- a/packages/lucide-svelte/package.json +++ b/packages/lucide-svelte/package.json @@ -1,7 +1,7 @@ { "name": "lucide-svelte", "description": "A Lucide icon library package for Svelte applications", - "version": "0.104.0", + "version": "0.105.0-alpha.0", "license": "ISC", "homepage": "https://lucide.dev", "bugs": "https://github.com/lucide-icons/lucide/issues", @@ -25,7 +25,7 @@ "build": "pnpm clean && pnpm copy:license && pnpm build:icons && pnpm build:bundles && pnpm build:strip && pnpm build:types", "copy:license": "cp ../../LICENSE ./LICENSE", "clean": "rm -rf dist && rm -rf stats && rm -rf ./src/icons/*.svelte && rm -f index.js", - "build:icons": "node ../../scripts/buildIcons.mjs --output=./src --templateSrc=./scripts/exportTemplate.mjs --exportFileName=index.ts --iconFileExtension=.svelte --pretty=false", + "build:icons": "build-icons --output=./src --templateSrc=./scripts/exportTemplate.mjs --exportFileName=index.ts --iconFileExtension=.svelte --importImportFileExtension=.svelte --withAliases --aliasesFileExtension=.ts --aliasImportFileExtension=.svelte --pretty=false", "build:types": "node ./scripts/buildTypes.mjs", "build:bundles": "rollup -c ./rollup.config.mjs", "build:strip": "svelte-strip strip src/ dist/svelte", @@ -34,6 +34,7 @@ }, "devDependencies": { "@lucide/rollup-plugins": "workspace:*", + "@lucide/build-icons": "workspace:*", "@rollup/plugin-node-resolve": "^15.0.1", "@sveltejs/vite-plugin-svelte": "^1.2.0", "@testing-library/jest-dom": "^5.16.2", diff --git a/packages/lucide-svelte/rollup.config.mjs b/packages/lucide-svelte/rollup.config.mjs index f5049d5..7d875b2 100644 --- a/packages/lucide-svelte/rollup.config.mjs +++ b/packages/lucide-svelte/rollup.config.mjs @@ -59,7 +59,7 @@ const configs = bundles ] : []), ...plugins(pkg, minify), ], - external: format === 'svelte' ? [/\.svelte/] : ['svelte'], + external: format === 'svelte' ? [/\.svelte/] : ['svelte', 'svelte/internal'], output: { name: packageName, ...(preserveModules diff --git a/packages/lucide-svelte/scripts/buildTypes.mjs b/packages/lucide-svelte/scripts/buildTypes.mjs index 6fe473e..ee7ee86 100644 --- a/packages/lucide-svelte/scripts/buildTypes.mjs +++ b/packages/lucide-svelte/scripts/buildTypes.mjs @@ -1,18 +1,30 @@ import path from 'path'; +// eslint-disable-next-line import/no-extraneous-dependencies +import { getAliases } from '@lucide/build-icons'; import { writeFile, readSvgDirectory, resetFile, toPascalCase, - appendFile, getCurrentDirPath, } from '../../../scripts/helpers.mjs'; const currentDir = getCurrentDirPath(import.meta.url); -const srcDirectory = path.join(currentDir, '../dist'); +const targetDirectory = path.join(currentDir, '../dist'); + +const writeDeclarationFile = (typesFile, directory, content) => { + resetFile(typesFile, directory); + writeFile(content, typesFile, directory); +}; + +const getComponentImport = (componentName) => + `export declare class ${componentName} extends SvelteComponentTyped {}\n`; + +const ICONS_DIR = path.resolve(currentDir, '../../../icons'); +const TYPES_FILE = 'lucide-svelte.d.ts'; // Declare type definitions -const typeDefinitions = `\ +let declarationFileContent = `\ /// /// import { SvelteComponentTyped } from "svelte"; @@ -33,20 +45,51 @@ export type Icon = SvelteComponentTyped // Generated icons `; -const ICONS_DIR = path.resolve(currentDir, '../../../icons'); -const TYPES_FILE = 'lucide-svelte.d.ts'; - -resetFile(TYPES_FILE, srcDirectory); -writeFile(typeDefinitions, TYPES_FILE, srcDirectory); - const svgFiles = readSvgDirectory(ICONS_DIR); svgFiles.forEach((svgFile) => { const iconName = path.basename(svgFile, '.svg'); const componentName = toPascalCase(iconName); - const exportTypeString = `export declare class ${componentName} extends SvelteComponentTyped {}\n`; - appendFile(exportTypeString, TYPES_FILE, srcDirectory); + declarationFileContent += getComponentImport(componentName); }); -console.log(`Generated ${TYPES_FILE} file with`, svgFiles.length, 'icons'); +const aliases = await getAliases(ICONS_DIR); + +declarationFileContent += `\n + +// Generated icon aliases +`; + +let aliasesCount = 0; + +svgFiles.forEach((svgFile) => { + const iconName = path.basename(svgFile, '.svg'); + const componentName = toPascalCase(iconName); + const iconAliases = aliases[iconName]?.aliases; + + declarationFileContent += `// ${componentName} aliases\n`; + declarationFileContent += getComponentImport(`${componentName}Icon`); + declarationFileContent += getComponentImport(`Lucide${componentName}`); + + aliasesCount += 1; + if (iconAliases != null && Array.isArray(iconAliases)) { + iconAliases.forEach((alias) => { + const componentNameAlias = toPascalCase(alias); + declarationFileContent += getComponentImport(componentNameAlias); + + aliasesCount += 1; + }); + } + + declarationFileContent += '\n'; +}); + +writeDeclarationFile(TYPES_FILE, targetDirectory, declarationFileContent); +console.log( + `Generated ${TYPES_FILE} file with`, + svgFiles.length, + 'icons and with', + aliasesCount, + 'aliases', +); diff --git a/packages/lucide-svelte/src/lucide-svelte.ts b/packages/lucide-svelte/src/lucide-svelte.ts index ade5677..8de8d51 100644 --- a/packages/lucide-svelte/src/lucide-svelte.ts +++ b/packages/lucide-svelte/src/lucide-svelte.ts @@ -1,2 +1,4 @@ export * from './icons'; +export * as icons from './icons'; +export * from './aliases'; export { default as defaultAttributes } from './defaultAttributes' diff --git a/packages/lucide-vue-next/package.json b/packages/lucide-vue-next/package.json index d8d152d..7267b3d 100644 --- a/packages/lucide-vue-next/package.json +++ b/packages/lucide-vue-next/package.json @@ -1,6 +1,6 @@ { "name": "lucide-vue-next", - "version": "0.104.0", + "version": "0.105.0-alpha.0", "author": "Eric Fennis", "description": "A Lucide icon library package for Vue 3 applications", "license": "ISC", @@ -27,7 +27,7 @@ "build": "pnpm clean && pnpm copy:license && pnpm build:icons && pnpm build:bundles && pnpm build:types", "copy:license": "cp ../../LICENSE ./LICENSE", "clean": "rm -rf dist && rm -rf ./src/icons/*.ts", - "build:icons": "node ../../scripts/buildIcons.mjs --output=./src --templateSrc=./scripts/exportTemplate.mjs --renderUniqueKey --iconFileExtension=.ts --exportFileName=index.ts", + "build:icons": "build-icons --output=./src --templateSrc=./scripts/exportTemplate.mjs --renderUniqueKey --withAliases --aliasesFileExtension=.ts --iconFileExtension=.ts --exportFileName=index.ts", "build:types": "node ./scripts/buildTypes.mjs", "build:bundles": "rollup -c ./rollup.config.mjs", "test": "vitest", @@ -35,6 +35,7 @@ }, "devDependencies": { "@lucide/rollup-plugins": "workspace:*", + "@lucide/build-icons": "workspace:*", "@testing-library/jest-dom": "^5.16.5", "@testing-library/vue": "^6.6.1", "@vue/compiler-sfc": "3.2.45", diff --git a/packages/lucide-vue-next/rollup.config.mjs b/packages/lucide-vue-next/rollup.config.mjs index f428355..c7bbdc0 100644 --- a/packages/lucide-vue-next/rollup.config.mjs +++ b/packages/lucide-vue-next/rollup.config.mjs @@ -1,4 +1,4 @@ -import plugins from '@lucide/rollup-plugins'; +import plugins, { replace } from '@lucide/rollup-plugins'; import pkg from './package.json' assert { type: 'json' }; const packageName = 'LucideVueNext'; @@ -39,7 +39,20 @@ const configs = bundles .map(({ inputs, outputDir, format, minify, preserveModules }) => inputs.map(input => ({ input, - plugins: plugins(pkg, minify), + plugins: [ + // This for aliases, only for esm + ...( + format !== 'esm' ? [ + replace({ + "export * from './aliases';": '', + "export * as icons from './icons';": '', + delimiters: ['', ''], + preventAssignment: false, + }), + ] : [] + ), + ...plugins(pkg, minify) + ], external: ['vue'], output: { name: packageName, diff --git a/packages/lucide-vue-next/scripts/buildTypes.mjs b/packages/lucide-vue-next/scripts/buildTypes.mjs index 39b1862..86b6d13 100644 --- a/packages/lucide-vue-next/scripts/buildTypes.mjs +++ b/packages/lucide-vue-next/scripts/buildTypes.mjs @@ -1,21 +1,29 @@ import path from 'path'; - +// eslint-disable-next-line import/no-extraneous-dependencies +import { getAliases } from '@lucide/build-icons'; import { readSvgDirectory, resetFile, - appendFile, + writeFile, toPascalCase, getCurrentDirPath, } from '../../../scripts/helpers.mjs'; const currentDir = getCurrentDirPath(import.meta.url); +const targetDirectory = path.join(currentDir, '../dist'); + +const writeDeclarationFile = (typesFile, directory, content) => { + resetFile(typesFile, directory); + writeFile(content, typesFile, directory); +}; + +const getComponentImport = (componentName) => `export declare const ${componentName}: Icon;\n`; -const TARGET_DIR = path.join(currentDir, '../dist'); const ICONS_DIR = path.resolve(currentDir, '../../../icons'); -const TYPES_FILE_NAME = 'lucide-vue-next.d.ts'; +const TYPES_FILE = 'lucide-vue-next.d.ts'; // Generates header of d.ts file include some types and functions -const typeDefinitions = `\ +let declarationFileContent = `\ import { SVGAttributes, FunctionalComponent } from 'vue'; declare module 'lucide-vue-next' @@ -24,23 +32,56 @@ export interface SVGProps extends Partial { size?: 24 | number } +export type Icon = (props: SVGProps) => FunctionalComponent + // Generated icons `; -resetFile(TYPES_FILE_NAME, TARGET_DIR); -appendFile(typeDefinitions, TYPES_FILE_NAME, TARGET_DIR); - const svgFiles = readSvgDirectory(ICONS_DIR); svgFiles.forEach((svgFile) => { const nameSvg = path.basename(svgFile, '.svg'); const componentName = toPascalCase(nameSvg); - appendFile( - `export declare const ${componentName}: (props: SVGProps) => FunctionalComponent;\n`, - TYPES_FILE_NAME, - TARGET_DIR, - ); + declarationFileContent += getComponentImport(componentName); }); -console.log(`Generated ${TYPES_FILE_NAME} file with`, svgFiles.length, 'icons'); +const aliases = await getAliases(ICONS_DIR); + +declarationFileContent += `\n + +// Generated icon aliases +`; + +let aliasesCount = 0; + +svgFiles.forEach((svgFile) => { + const iconName = path.basename(svgFile, '.svg'); + const componentName = toPascalCase(iconName); + const iconAliases = aliases[iconName]?.aliases; + + declarationFileContent += `// ${componentName} aliases\n`; + declarationFileContent += getComponentImport(`${componentName}Icon`); + declarationFileContent += getComponentImport(`Lucide${componentName}`); + + aliasesCount += 1; + if (iconAliases != null && Array.isArray(iconAliases)) { + iconAliases.forEach((alias) => { + const componentNameAlias = toPascalCase(alias); + declarationFileContent += getComponentImport(componentNameAlias); + + aliasesCount += 1; + }); + } + + declarationFileContent += '\n'; +}); + +writeDeclarationFile(TYPES_FILE, targetDirectory, declarationFileContent); +console.log( + `Generated ${TYPES_FILE} file with`, + svgFiles.length, + 'icons and with', + aliasesCount, + 'aliases', +); diff --git a/packages/lucide-vue-next/scripts/exportTemplate.mjs b/packages/lucide-vue-next/scripts/exportTemplate.mjs index 650b417..97b9731 100644 --- a/packages/lucide-vue-next/scripts/exportTemplate.mjs +++ b/packages/lucide-vue-next/scripts/exportTemplate.mjs @@ -1,7 +1,7 @@ export default ({ componentName, children }) => ` -import createVueComponent from '../createVueComponent'; +import createLucideIcon from '../createLucideIcon'; -const ${componentName} = createVueComponent('${componentName}Icon', ${JSON.stringify(children)}); +const ${componentName} = createLucideIcon('${componentName}Icon', ${JSON.stringify(children)}); export default ${componentName}; `; diff --git a/packages/lucide-vue-next/src/createVueComponent.ts b/packages/lucide-vue-next/src/createLucideIcon.ts similarity index 89% rename from packages/lucide-vue-next/src/createVueComponent.ts rename to packages/lucide-vue-next/src/createLucideIcon.ts index ecfe56b..44b4244 100644 --- a/packages/lucide-vue-next/src/createVueComponent.ts +++ b/packages/lucide-vue-next/src/createLucideIcon.ts @@ -20,7 +20,7 @@ type IconNode = [elementName: string, attrs: Record][] */ export const toKebabCase = (string: string) => string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase(); -const createVueComponent = (iconName: string, iconNode: IconNode): FunctionalComponent => ( +const createLucideIcon = (iconName: string, iconNode: IconNode): FunctionalComponent => ( { size, color, ...props }, // props { attrs, slots } // context ) => { @@ -42,4 +42,4 @@ const createVueComponent = (iconName: string, iconNode: IconNode): FunctionalCom ); }; -export default createVueComponent; +export default createLucideIcon; diff --git a/packages/lucide-vue-next/src/lucide-vue-next.ts b/packages/lucide-vue-next/src/lucide-vue-next.ts index 838008a..2e28382 100644 --- a/packages/lucide-vue-next/src/lucide-vue-next.ts +++ b/packages/lucide-vue-next/src/lucide-vue-next.ts @@ -1 +1,3 @@ export * from './icons'; +export * as icons from './icons'; +export * from './aliases'; diff --git a/packages/lucide-vue/package.json b/packages/lucide-vue/package.json index a342a34..01c8e85 100644 --- a/packages/lucide-vue/package.json +++ b/packages/lucide-vue/package.json @@ -1,6 +1,6 @@ { "name": "lucide-vue", - "version": "0.104.0", + "version": "0.105.0-alpha.0", "author": "Eric Fennis", "description": "A Lucide icon library package for Vue 2 applications", "license": "ISC", @@ -26,13 +26,14 @@ "build": "pnpm clean && pnpm copy:license && pnpm build:icons && pnpm build:bundles", "copy:license": "cp ../../LICENSE ./LICENSE", "clean": "rm -rf dist && rm -rf stats && rm -rf ./src/icons/*.js", - "build:icons": "node ../../scripts/buildIcons.mjs --output=./src --templateSrc=./scripts/exportTemplate.mjs --renderUniqueKey --iconFileExtention=.ts --exportFileName=index.ts", + "build:icons": "build-icons --output=./src --templateSrc=./scripts/exportTemplate.mjs --renderUniqueKey --withAliases --aliasesFileExtension=.ts --iconFileExtention=.ts --exportFileName=index.ts", "build:bundles": "rollup -c ./rollup.config.mjs", "test": "vitest", "version": "pnpm version --git-tag-version=false" }, "devDependencies": { "@lucide/rollup-plugins": "workspace:*", + "@lucide/build-icons": "workspace:*", "@testing-library/jest-dom": "^5.16.2", "@testing-library/vue": "^5.8.2", "@vitejs/plugin-vue2": "^2.0.1", diff --git a/packages/lucide-vue/rollup.config.mjs b/packages/lucide-vue/rollup.config.mjs index e719b86..2cb927a 100644 --- a/packages/lucide-vue/rollup.config.mjs +++ b/packages/lucide-vue/rollup.config.mjs @@ -1,4 +1,4 @@ -import plugins from '@lucide/rollup-plugins'; +import plugins, { replace } from '@lucide/rollup-plugins'; import pkg from './package.json' assert { type: 'json' }; const packageName = 'LucideVue'; @@ -39,7 +39,20 @@ const configs = bundles .map(({ inputs, outputDir, format, minify, preserveModules }) => inputs.map(input => ({ input, - plugins: plugins(pkg, minify), + plugins: [ + // This for aliases, only for esm + ...( + format !== 'esm' ? [ + replace({ + "export * from './aliases';": '', + "export * as icons from './icons';": '', + delimiters: ['', ''], + preventAssignment: false, + }), + ] : [] + ), + ...plugins(pkg, minify) + ], external: ['vue'], output: { name: packageName, diff --git a/packages/lucide-vue/src/lucide-vue.ts b/packages/lucide-vue/src/lucide-vue.ts index 838008a..2e28382 100644 --- a/packages/lucide-vue/src/lucide-vue.ts +++ b/packages/lucide-vue/src/lucide-vue.ts @@ -1 +1,3 @@ export * from './icons'; +export * as icons from './icons'; +export * from './aliases'; diff --git a/packages/lucide/package.json b/packages/lucide/package.json index 0ae2163..cfec4a2 100644 --- a/packages/lucide/package.json +++ b/packages/lucide/package.json @@ -25,7 +25,7 @@ "build": "pnpm clean && pnpm copy:license && pnpm build:icons && pnpm build:bundles", "copy:license": "cp ../../LICENSE ./LICENSE", "clean": "rm -rf dist && rm -rf stats && rm -rf ./src/icons/*.ts", - "build:icons": "node ../../scripts/buildIcons.mjs --output=./src --templateSrc=./scripts/exportTemplate.mjs --iconFileExtension=.ts", + "build:icons": "build-icons --output=./src --templateSrc=./scripts/exportTemplate.mjs --iconFileExtension=.ts", "build:types": "node ./scripts/buildTypes.mjs", "build:bundles": "rollup -c rollup.config.mjs", "test": "vitest", @@ -33,6 +33,7 @@ }, "devDependencies": { "@lucide/rollup-plugins": "workspace:*", + "@lucide/build-icons": "workspace:*", "@rollup/plugin-replace": "^5.0.1", "@testing-library/jest-dom": "^5.16.5", "rollup": "^3.5.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a59aebb..baf84a0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,6 +32,7 @@ importers: packages/lucide: specifiers: + '@lucide/build-icons': workspace:* '@lucide/rollup-plugins': workspace:* '@rollup/plugin-replace': ^5.0.1 '@testing-library/jest-dom': ^5.16.5 @@ -41,6 +42,7 @@ importers: vite: ^3.1.0 vitest: ^0.24.3 devDependencies: + '@lucide/build-icons': link:../../tools/build-icons '@lucide/rollup-plugins': link:../../tools/rollup-plugins '@rollup/plugin-replace': 5.0.1_rollup@3.5.1 '@testing-library/jest-dom': 5.16.5 @@ -60,6 +62,7 @@ importers: '@angular/core': ~14.2.7 '@angular/platform-browser': ~14.2.7 '@angular/platform-browser-dynamic': ~14.2.7 + '@lucide/build-icons': workspace:* '@types/jasmine': ~4.3.0 '@types/node': ^18.11.4 codelyzer: ^6.0.2 @@ -90,6 +93,7 @@ importers: '@angular/core': 14.2.7_rxjs@7.5.7+zone.js@0.11.8 '@angular/platform-browser': 14.2.7_aaupshc3v455velby5cf2mmuay '@angular/platform-browser-dynamic': 14.2.7_q4va4uwl4uyjrhqsdbamttsfvi + '@lucide/build-icons': link:../../tools/build-icons '@types/jasmine': 4.3.0 '@types/node': 18.11.4 codelyzer: 6.0.2_cykvwhouafxz23wqf5dcj7lrei @@ -137,6 +141,7 @@ importers: packages/lucide-preact: specifiers: + '@lucide/build-icons': workspace:* '@lucide/rollup-plugins': workspace:* '@preact/preset-vite': ^2.4.0 '@testing-library/jest-dom': ^5.16.5 @@ -147,6 +152,7 @@ importers: vite: ^3.1.0 vitest: ^0.24.3 devDependencies: + '@lucide/build-icons': link:../../tools/build-icons '@lucide/rollup-plugins': link:../../tools/rollup-plugins '@preact/preset-vite': 2.4.0_preact@10.11.2+vite@3.1.8 '@testing-library/jest-dom': 5.16.5 @@ -159,13 +165,13 @@ importers: packages/lucide-react: specifiers: + '@lucide/build-icons': workspace:* '@lucide/rollup-plugins': workspace:* '@testing-library/jest-dom': ^5.16.5 '@testing-library/react': ^11.2.6 '@types/prop-types': ^15.7.5 '@types/react': ^18.0.21 '@vitejs/plugin-react': ^2.1.0 - prop-types: ^15.7.2 react: 17.0.2 react-dom: 17.0.2 rollup: ^3.5.1 @@ -173,13 +179,13 @@ importers: vite: ^3.1.0 vitest: ^0.24.3 devDependencies: + '@lucide/build-icons': link:../../tools/build-icons '@lucide/rollup-plugins': link:../../tools/rollup-plugins '@testing-library/jest-dom': 5.16.5 '@testing-library/react': 11.2.7_sfoxds7t5ydpegc3knd667wn6m '@types/prop-types': 15.7.5 '@types/react': 18.0.25 '@vitejs/plugin-react': 2.1.0_vite@3.1.8 - prop-types: 15.8.1 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 rollup: 3.5.1 @@ -189,6 +195,7 @@ importers: packages/lucide-react-native: specifiers: + '@lucide/build-icons': workspace:* '@lucide/rollup-plugins': workspace:* '@testing-library/jest-dom': ^5.16.5 '@testing-library/react': ^13.4.0 @@ -205,6 +212,7 @@ importers: vite: ^3.1.0 vitest: ^0.24.3 devDependencies: + '@lucide/build-icons': link:../../tools/build-icons '@lucide/rollup-plugins': link:../../tools/rollup-plugins '@testing-library/jest-dom': 5.16.5 '@testing-library/react': 13.4.0_zpnidt7m3osuk7shl3s4oenomq @@ -223,24 +231,32 @@ importers: packages/lucide-solid: specifiers: - '@lucide/rollup-plugins': workspace:* + '@atomico/rollup-plugin-sizes': ^1.1.4 + '@lucide/build-icons': workspace:* '@testing-library/jest-dom': ^5.16.5 babel-preset-solid: ^1.5.4 jsdom: ^20.0.0 rollup: ^3.5.1 + rollup-plugin-license: ^3.0.1 + rollup-preset-solid: ^2.0.1 solid-js: ^1.4.7 solid-testing-library: ^0.3.0 + typescript: ^4.9.4 vite: ^3.2.4 vite-plugin-solid: ^2.3.0 vitest: ^0.23.2 devDependencies: - '@lucide/rollup-plugins': link:../../tools/rollup-plugins + '@atomico/rollup-plugin-sizes': 1.1.4_rollup@3.5.1 + '@lucide/build-icons': link:../../tools/build-icons '@testing-library/jest-dom': 5.16.5 babel-preset-solid: 1.5.4 jsdom: 20.0.0 rollup: 3.5.1 + rollup-plugin-license: 3.0.1_rollup@3.5.1 + rollup-preset-solid: 2.0.1 solid-js: 1.5.4 solid-testing-library: 0.3.0_solid-js@1.5.4 + typescript: 4.9.4 vite: 3.2.4 vite-plugin-solid: 2.3.0_solid-js@1.5.4+vite@3.2.4 vitest: 0.23.2_jsdom@20.0.0 @@ -255,6 +271,7 @@ importers: packages/lucide-svelte: specifiers: + '@lucide/build-icons': workspace:* '@lucide/rollup-plugins': workspace:* '@rollup/plugin-node-resolve': ^15.0.1 '@sveltejs/vite-plugin-svelte': ^1.2.0 @@ -272,6 +289,7 @@ importers: vite: ^3.1.0 vitest: ^0.23.2 devDependencies: + '@lucide/build-icons': link:../../tools/build-icons '@lucide/rollup-plugins': link:../../tools/rollup-plugins '@rollup/plugin-node-resolve': 15.0.1_rollup@3.5.1 '@sveltejs/vite-plugin-svelte': 1.2.0_svelte@3.53.1+vite@3.1.8 @@ -291,6 +309,7 @@ importers: packages/lucide-vue: specifiers: + '@lucide/build-icons': workspace:* '@lucide/rollup-plugins': workspace:* '@testing-library/jest-dom': ^5.16.2 '@testing-library/vue': ^5.8.2 @@ -304,6 +323,7 @@ importers: vue: 2.7.14 vue-template-compiler: 2.7.14 devDependencies: + '@lucide/build-icons': link:../../tools/build-icons '@lucide/rollup-plugins': link:../../tools/rollup-plugins '@testing-library/jest-dom': 5.16.5 '@testing-library/vue': 5.8.3_rhqkolmkwunxzlyyxxsuwaiuri @@ -319,6 +339,7 @@ importers: packages/lucide-vue-next: specifiers: + '@lucide/build-icons': workspace:* '@lucide/rollup-plugins': workspace:* '@testing-library/jest-dom': ^5.16.5 '@testing-library/vue': ^6.6.1 @@ -331,6 +352,7 @@ importers: vitest: ^0.24.3 vue: 3.2.45 devDependencies: + '@lucide/build-icons': link:../../tools/build-icons '@lucide/rollup-plugins': link:../../tools/rollup-plugins '@testing-library/jest-dom': 5.16.5 '@testing-library/vue': 6.6.1_tfvhctuaqmmqnirfl65c47tqwu @@ -430,6 +452,20 @@ importers: react-test-renderer: 17.0.2_react@17.0.2 typescript: 4.8.4 + tools/build-icons: + specifiers: + minimist: ^1.2.7 + node-fetch: ^3.2.10 + prettier: 2.7.1 + svgo: ^3.0.0 + svgson: ^5.2.1 + dependencies: + minimist: 1.2.7 + node-fetch: 3.2.10 + prettier: 2.7.1 + svgo: 3.0.0 + svgson: 5.2.1 + tools/outline-svg: specifiers: minimist: ^1.2.6 @@ -443,6 +479,7 @@ importers: tools/rollup-plugins: specifiers: '@atomico/rollup-plugin-sizes': ^1.1.4 + '@rollup/plugin-replace': ^5.0.1 esbuild: ^0.15.16 rollup: ^3.5.1 rollup-plugin-esbuild: ^4.10.2 @@ -450,6 +487,7 @@ importers: rollup-plugin-visualizer: ^5.8.3 dependencies: '@atomico/rollup-plugin-sizes': 1.1.4_rollup@3.5.1 + '@rollup/plugin-replace': 5.0.1_rollup@3.5.1 esbuild: 0.15.16 rollup: 3.5.1 rollup-plugin-esbuild: 4.10.2_okdlgivigpskxpa36mtdz7r5se @@ -567,7 +605,7 @@ packages: tree-kill: 1.2.2 tslib: 2.4.0 typescript: 4.8.4 - webpack: 5.74.0_esbuild@0.15.5 + webpack: 5.74.0 webpack-dev-middleware: 5.3.3_webpack@5.74.0 webpack-dev-server: 4.11.0_webpack@5.74.0 webpack-merge: 5.8.0 @@ -599,7 +637,7 @@ packages: dependencies: '@angular-devkit/architect': 0.1402.6 rxjs: 6.6.7 - webpack: 5.74.0_esbuild@0.15.5 + webpack: 5.74.0 webpack-dev-server: 4.11.0_webpack@5.74.0 transitivePeerDependencies: - chokidar @@ -615,7 +653,7 @@ packages: optional: true dependencies: ajv: 8.11.0 - ajv-formats: 2.1.1 + ajv-formats: 2.1.1_ajv@8.11.0 jsonc-parser: 3.1.0 rxjs: 6.6.7 source-map: 0.7.4 @@ -771,7 +809,6 @@ packages: gzip-size: 5.1.1 rollup: 3.5.1 simple-string-table: 1.0.0 - dev: false /@babel/code-frame/7.18.6: resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} @@ -788,6 +825,10 @@ packages: resolution: {integrity: sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==} engines: {node: '>=6.9.0'} + /@babel/compat-data/7.20.10: + resolution: {integrity: sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==} + engines: {node: '>=6.9.0'} + /@babel/core/7.12.9: resolution: {integrity: sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==} engines: {node: '>=6.9.0'} @@ -863,14 +904,14 @@ packages: dependencies: '@ampproject/remapping': 2.2.0 '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.3 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.2 + '@babel/generator': 7.20.7 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.2 '@babel/helper-module-transforms': 7.20.2 '@babel/helpers': 7.20.1 - '@babel/parser': 7.20.3 - '@babel/template': 7.18.10 - '@babel/traverse': 7.20.1 - '@babel/types': 7.20.2 + '@babel/parser': 7.20.7 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.12 + '@babel/types': 7.20.7 convert-source-map: 1.8.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -904,6 +945,14 @@ packages: '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 + /@babel/generator/7.20.7: + resolution: {integrity: sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.7 + '@jridgewell/gen-mapping': 0.3.2 + jsesc: 2.5.2 + /@babel/helper-annotate-as-pure/7.18.6: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} @@ -915,7 +964,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/helper-explode-assignable-expression': 7.18.6 - '@babel/types': 7.20.2 + '@babel/types': 7.20.7 /@babel/helper-compilation-targets/7.18.9_@babel+core@7.18.13: resolution: {integrity: sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==} @@ -932,6 +981,21 @@ packages: browserslist: 4.21.4 semver: 6.3.0 + /@babel/helper-compilation-targets/7.20.0: + resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/compat-data': 7.20.1 + '@babel/helper-validator-option': 7.18.6 + browserslist: 4.21.4 + semver: 6.3.0 + dev: true + /@babel/helper-compilation-targets/7.20.0_@babel+core@7.18.10: resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==} engines: {node: '>=6.9.0'} @@ -978,6 +1042,93 @@ packages: '@babel/helper-validator-option': 7.18.6 browserslist: 4.21.4 semver: 6.3.0 + dev: true + + /@babel/helper-compilation-targets/7.20.7: + resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/compat-data': 7.20.10 + '@babel/helper-validator-option': 7.18.6 + browserslist: 4.21.4 + lru-cache: 5.1.1 + semver: 6.3.0 + dev: true + + /@babel/helper-compilation-targets/7.20.7_@babel+core@7.18.10: + resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/compat-data': 7.20.10 + '@babel/core': 7.18.10 + '@babel/helper-validator-option': 7.18.6 + browserslist: 4.21.4 + lru-cache: 5.1.1 + semver: 6.3.0 + dev: true + + /@babel/helper-compilation-targets/7.20.7_@babel+core@7.18.13: + resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/compat-data': 7.20.10 + '@babel/core': 7.18.13 + '@babel/helper-validator-option': 7.18.6 + browserslist: 4.21.4 + lru-cache: 5.1.1 + semver: 6.3.0 + dev: false + + /@babel/helper-compilation-targets/7.20.7_@babel+core@7.20.2: + resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/compat-data': 7.20.10 + '@babel/core': 7.20.2 + '@babel/helper-validator-option': 7.18.6 + browserslist: 4.21.4 + lru-cache: 5.1.1 + semver: 6.3.0 + + /@babel/helper-create-class-features-plugin/7.18.13: + resolution: {integrity: sha512-hDvXp+QYxSRL+23mpAlSGxHMDyIGChm0/AwTfTAAK5Ufe40nCsyNdaYCGuK91phn/fVu9kqayImRDkvNAgdrsA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-member-expression-to-functions': 7.18.9 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-replace-supers': 7.19.1 + '@babel/helper-split-export-declaration': 7.18.6 + transitivePeerDependencies: + - supports-color + dev: true /@babel/helper-create-class-features-plugin/7.18.13_@babel+core@7.18.10: resolution: {integrity: sha512-hDvXp+QYxSRL+23mpAlSGxHMDyIGChm0/AwTfTAAK5Ufe40nCsyNdaYCGuK91phn/fVu9kqayImRDkvNAgdrsA==} @@ -1041,6 +1192,19 @@ packages: - supports-color dev: true + /@babel/helper-create-regexp-features-plugin/7.18.6: + resolution: {integrity: sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-annotate-as-pure': 7.18.6 + regexpu-core: 5.1.0 + dev: true + /@babel/helper-create-regexp-features-plugin/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==} engines: {node: '>=6.9.0'} @@ -1083,6 +1247,79 @@ packages: regexpu-core: 5.1.0 dev: true + /@babel/helper-create-regexp-features-plugin/7.20.5: + resolution: {integrity: sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-annotate-as-pure': 7.18.6 + regexpu-core: 5.2.2 + dev: true + + /@babel/helper-create-regexp-features-plugin/7.20.5_@babel+core@7.18.10: + resolution: {integrity: sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.18.10 + '@babel/helper-annotate-as-pure': 7.18.6 + regexpu-core: 5.2.2 + dev: true + + /@babel/helper-create-regexp-features-plugin/7.20.5_@babel+core@7.18.13: + resolution: {integrity: sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.18.13 + '@babel/helper-annotate-as-pure': 7.18.6 + regexpu-core: 5.2.2 + dev: false + + /@babel/helper-create-regexp-features-plugin/7.20.5_@babel+core@7.20.2: + resolution: {integrity: sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-annotate-as-pure': 7.18.6 + regexpu-core: 5.2.2 + dev: true + + /@babel/helper-define-polyfill-provider/0.3.3: + resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} + peerDependencies: + '@babel/core': ^7.4.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-compilation-targets': 7.20.7 + '@babel/helper-plugin-utils': 7.20.2 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.18.10: resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} peerDependencies: @@ -1092,7 +1329,7 @@ packages: optional: true dependencies: '@babel/core': 7.18.10 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.18.10 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.18.10 '@babel/helper-plugin-utils': 7.20.2 debug: 4.3.4 lodash.debounce: 4.0.8 @@ -1111,7 +1348,7 @@ packages: optional: true dependencies: '@babel/core': 7.18.13 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.18.13 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.18.13 '@babel/helper-plugin-utils': 7.20.2 debug: 4.3.4 lodash.debounce: 4.0.8 @@ -1130,7 +1367,7 @@ packages: optional: true dependencies: '@babel/core': 7.20.2 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.2 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.2 '@babel/helper-plugin-utils': 7.20.2 debug: 4.3.4 lodash.debounce: 4.0.8 @@ -1148,7 +1385,7 @@ packages: resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.2 + '@babel/types': 7.20.7 /@babel/helper-function-name/7.18.9: resolution: {integrity: sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==} @@ -1176,6 +1413,13 @@ packages: dependencies: '@babel/types': 7.20.2 + /@babel/helper-member-expression-to-functions/7.20.7: + resolution: {integrity: sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.7 + dev: true + /@babel/helper-module-imports/7.16.0: resolution: {integrity: sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==} engines: {node: '>=6.9.0'} @@ -1204,6 +1448,21 @@ packages: transitivePeerDependencies: - supports-color + /@babel/helper-module-transforms/7.20.11: + resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-simple-access': 7.20.2 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.12 + '@babel/types': 7.20.7 + transitivePeerDependencies: + - supports-color + /@babel/helper-module-transforms/7.20.2: resolution: {integrity: sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==} engines: {node: '>=6.9.0'} @@ -1213,9 +1472,9 @@ packages: '@babel/helper-simple-access': 7.20.2 '@babel/helper-split-export-declaration': 7.18.6 '@babel/helper-validator-identifier': 7.19.1 - '@babel/template': 7.18.10 - '@babel/traverse': 7.20.1 - '@babel/types': 7.20.2 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.12 + '@babel/types': 7.20.7 transitivePeerDependencies: - supports-color @@ -1237,6 +1496,23 @@ packages: resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} engines: {node: '>=6.9.0'} + /@babel/helper-remap-async-to-generator/7.18.9: + resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-wrap-function': 7.18.9 + '@babel/types': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.18.10: resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} engines: {node: '>=6.9.0'} @@ -1315,6 +1591,20 @@ packages: transitivePeerDependencies: - supports-color + /@babel/helper-replace-supers/7.20.7: + resolution: {integrity: sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-member-expression-to-functions': 7.20.7 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.12 + '@babel/types': 7.20.7 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-simple-access/7.18.6: resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==} engines: {node: '>=6.9.0'} @@ -1325,7 +1615,7 @@ packages: resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.2 + '@babel/types': 7.20.7 /@babel/helper-skip-transparent-expression-wrappers/7.18.9: resolution: {integrity: sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==} @@ -1337,7 +1627,7 @@ packages: resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.2 + '@babel/types': 7.20.7 /@babel/helper-split-export-declaration/7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} @@ -1362,9 +1652,9 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/helper-function-name': 7.19.0 - '@babel/template': 7.18.10 - '@babel/traverse': 7.20.1 - '@babel/types': 7.20.2 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.12 + '@babel/types': 7.20.7 transitivePeerDependencies: - supports-color @@ -1382,9 +1672,9 @@ packages: resolution: {integrity: sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.18.10 - '@babel/traverse': 7.20.1 - '@babel/types': 7.20.2 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.12 + '@babel/types': 7.20.7 transitivePeerDependencies: - supports-color @@ -1403,6 +1693,13 @@ packages: dependencies: '@babel/types': 7.20.2 + /@babel/parser/7.20.7: + resolution: {integrity: sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.20.7 + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} engines: {node: '>=6.9.0'} @@ -1429,6 +1726,19 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: false + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.18.9_@babel+core@7.18.10: resolution: {integrity: sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==} engines: {node: '>=6.9.0'} @@ -1440,7 +1750,7 @@ packages: dependencies: '@babel/core': 7.18.10 '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-skip-transparent-expression-wrappers': 7.18.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.18.10 dev: true @@ -1455,10 +1765,42 @@ packages: dependencies: '@babel/core': 7.18.13 '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-skip-transparent-expression-wrappers': 7.18.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.18.13 dev: false + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.18.9_@babel+core@7.20.2: + resolution: {integrity: sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.20.2 + dev: true + + /@babel/plugin-proposal-async-generator-functions/7.18.10: + resolution: {integrity: sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-remap-async-to-generator': 7.18.9 + '@babel/plugin-syntax-async-generators': 7.8.4 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-proposal-async-generator-functions/7.18.10_@babel+core@7.18.10: resolution: {integrity: sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==} engines: {node: '>=6.9.0'} @@ -1513,6 +1855,39 @@ packages: - supports-color dev: true + /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.20.2: + resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-class-properties/7.18.6: + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-create-class-features-plugin': 7.18.13 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} @@ -1595,6 +1970,23 @@ packages: - supports-color dev: false + /@babel/plugin-proposal-class-static-block/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-create-class-features-plugin': 7.18.13_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} engines: {node: '>=6.9.0'} @@ -1623,6 +2015,33 @@ packages: '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.18.13 dev: false + /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.2 + dev: true + + /@babel/plugin-proposal-export-default-from/7.18.9: + resolution: {integrity: sha512-1qtsLNCDm5awHLIt+2qAFDi31XC94r4QepMQcOosC7FpY6O+Bgay5f2IyAQt2wvm1TARumpFprnQt5pTIJ9nUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-export-default-from': 7.18.6 + dev: true + /@babel/plugin-proposal-export-default-from/7.18.9_@babel+core@7.20.2: resolution: {integrity: sha512-1qtsLNCDm5awHLIt+2qAFDi31XC94r4QepMQcOosC7FpY6O+Bgay5f2IyAQt2wvm1TARumpFprnQt5pTIJ9nUg==} engines: {node: '>=6.9.0'} @@ -1665,6 +2084,20 @@ packages: '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.18.13 dev: false + /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.20.2: + resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.2 + dev: true + /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} engines: {node: '>=6.9.0'} @@ -1693,6 +2126,20 @@ packages: '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.18.13 dev: false + /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.2 + dev: true + /@babel/plugin-proposal-logical-assignment-operators/7.18.9_@babel+core@7.18.10: resolution: {integrity: sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==} engines: {node: '>=6.9.0'} @@ -1721,6 +2168,33 @@ packages: '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.18.13 dev: false + /@babel/plugin-proposal-logical-assignment-operators/7.18.9_@babel+core@7.20.2: + resolution: {integrity: sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.2 + dev: true + + /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6: + resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3 + dev: true + /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} engines: {node: '>=6.9.0'} @@ -1773,7 +2247,7 @@ packages: optional: true dependencies: '@babel/core': 7.18.10 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.18.10 dev: true @@ -1791,6 +2265,20 @@ packages: '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.18.13 dev: false + /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.2 + dev: true + /@babel/plugin-proposal-object-rest-spread/7.12.1_@babel+core@7.12.9: resolution: {integrity: sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==} peerDependencies: @@ -1805,6 +2293,22 @@ packages: '@babel/plugin-transform-parameters': 7.20.3_@babel+core@7.12.9 dev: false + /@babel/plugin-proposal-object-rest-spread/7.18.9: + resolution: {integrity: sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/compat-data': 7.18.13 + '@babel/helper-compilation-targets': 7.20.0 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-object-rest-spread': 7.8.3 + '@babel/plugin-transform-parameters': 7.18.8 + dev: true + /@babel/plugin-proposal-object-rest-spread/7.18.9_@babel+core@7.18.10: resolution: {integrity: sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==} engines: {node: '>=6.9.0'} @@ -1856,6 +2360,36 @@ packages: '@babel/plugin-transform-parameters': 7.18.8_@babel+core@7.20.2 dev: true + /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.20.2: + resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/compat-data': 7.20.10 + '@babel/core': 7.20.2 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.20.2 + dev: true + + /@babel/plugin-proposal-optional-catch-binding/7.18.6: + resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3 + dev: true + /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} engines: {node: '>=6.9.0'} @@ -1898,6 +2432,20 @@ packages: '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.2 dev: true + /@babel/plugin-proposal-optional-chaining/7.18.9: + resolution: {integrity: sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-syntax-optional-chaining': 7.8.3 + dev: true + /@babel/plugin-proposal-optional-chaining/7.18.9_@babel+core@7.18.10: resolution: {integrity: sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==} engines: {node: '>=6.9.0'} @@ -1954,7 +2502,7 @@ packages: dependencies: '@babel/core': 7.18.10 '@babel/helper-create-class-features-plugin': 7.18.13_@babel+core@7.18.10 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color dev: true @@ -1975,6 +2523,22 @@ packages: - supports-color dev: false + /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-create-class-features-plugin': 7.18.13_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-proposal-private-property-in-object/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==} engines: {node: '>=6.9.0'} @@ -1987,7 +2551,7 @@ packages: '@babel/core': 7.18.10 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-create-class-features-plugin': 7.18.13_@babel+core@7.18.10 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.18.10 transitivePeerDependencies: - supports-color @@ -2011,6 +2575,24 @@ packages: - supports-color dev: false + /@babel/plugin-proposal-private-property-in-object/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-create-class-features-plugin': 7.18.13_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} engines: {node: '>=4'} @@ -2021,7 +2603,7 @@ packages: optional: true dependencies: '@babel/core': 7.18.10 - '@babel/helper-create-regexp-features-plugin': 7.18.6_@babel+core@7.18.10 + '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.18.10 '@babel/helper-plugin-utils': 7.20.2 dev: true @@ -2035,10 +2617,24 @@ packages: optional: true dependencies: '@babel/core': 7.18.13 - '@babel/helper-create-regexp-features-plugin': 7.18.6_@babel+core@7.18.13 + '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.18.13 '@babel/helper-plugin-utils': 7.20.2 dev: false + /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} + engines: {node: '>=4'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-syntax-async-generators/7.8.4: resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: @@ -2182,6 +2778,30 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: false + /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.20.2: + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-dynamic-import/7.8.3: + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.18.10: resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: @@ -2218,6 +2838,18 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-syntax-export-default-from/7.18.6: + resolution: {integrity: sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-syntax-export-default-from/7.18.6_@babel+core@7.20.2: resolution: {integrity: sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==} engines: {node: '>=6.9.0'} @@ -2255,6 +2887,30 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: false + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.20.2: + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-flow/7.18.6: + resolution: {integrity: sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-syntax-flow/7.18.6_@babel+core@7.20.2: resolution: {integrity: sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==} engines: {node: '>=6.9.0'} @@ -2294,6 +2950,19 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: false + /@babel/plugin-syntax-import-assertions/7.20.0_@babel+core@7.20.2: + resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-syntax-import-meta/7.10.4: resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: @@ -2731,6 +3400,19 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: false + /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.20.2: + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-syntax-top-level-await/7.14.5: resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} @@ -2782,6 +3464,18 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-syntax-typescript/7.18.6: + resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.18.13: resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==} engines: {node: '>=6.9.0'} @@ -2807,6 +3501,18 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-transform-arrow-functions/7.18.6: + resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-arrow-functions/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==} engines: {node: '>=6.9.0'} @@ -2846,6 +3552,22 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-transform-async-to-generator/7.18.6: + resolution: {integrity: sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-remap-async-to-generator': 7.18.9 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-async-to-generator/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==} engines: {node: '>=6.9.0'} @@ -2897,6 +3619,18 @@ packages: - supports-color dev: true + /@babel/plugin-transform-block-scoped-functions/7.18.6: + resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} engines: {node: '>=6.9.0'} @@ -2936,6 +3670,18 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-transform-block-scoping/7.18.9: + resolution: {integrity: sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-block-scoping/7.18.9_@babel+core@7.18.10: resolution: {integrity: sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==} engines: {node: '>=6.9.0'} @@ -2975,6 +3721,40 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-transform-block-scoping/7.20.11_@babel+core@7.20.2: + resolution: {integrity: sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-classes/7.18.9: + resolution: {integrity: sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.18.9 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-replace-supers': 7.18.9 + '@babel/helper-split-export-declaration': 7.18.6 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-classes/7.18.9_@babel+core@7.18.10: resolution: {integrity: sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==} engines: {node: '>=6.9.0'} @@ -3041,6 +3821,41 @@ packages: - supports-color dev: true + /@babel/plugin-transform-classes/7.20.7_@babel+core@7.20.2: + resolution: {integrity: sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.2 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-replace-supers': 7.20.7 + '@babel/helper-split-export-declaration': 7.18.6 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-computed-properties/7.18.9: + resolution: {integrity: sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-computed-properties/7.18.9_@babel+core@7.18.10: resolution: {integrity: sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==} engines: {node: '>=6.9.0'} @@ -3080,6 +3895,18 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-transform-destructuring/7.18.13: + resolution: {integrity: sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-destructuring/7.18.13_@babel+core@7.18.10: resolution: {integrity: sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==} engines: {node: '>=6.9.0'} @@ -3119,6 +3946,19 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-transform-destructuring/7.20.7_@babel+core@7.20.2: + resolution: {integrity: sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} engines: {node: '>=6.9.0'} @@ -3129,7 +3969,7 @@ packages: optional: true dependencies: '@babel/core': 7.18.10 - '@babel/helper-create-regexp-features-plugin': 7.18.6_@babel+core@7.18.10 + '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.18.10 '@babel/helper-plugin-utils': 7.20.2 dev: true @@ -3143,10 +3983,24 @@ packages: optional: true dependencies: '@babel/core': 7.18.13 - '@babel/helper-create-regexp-features-plugin': 7.18.6_@babel+core@7.18.13 + '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.18.13 '@babel/helper-plugin-utils': 7.20.2 dev: false + /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.18.10: resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} engines: {node: '>=6.9.0'} @@ -3173,6 +4027,32 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: false + /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.20.2: + resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-exponentiation-operator/7.18.6: + resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} engines: {node: '>=6.9.0'} @@ -3215,6 +4095,19 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-transform-flow-strip-types/7.18.9: + resolution: {integrity: sha512-+G6rp2zRuOAInY5wcggsx4+QVao1qPM0osC9fTUVlAV3zOrzTCnrMAFVnR6+a3T8wz1wFIH7KhYMcMB3u1n80A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.18.9 + '@babel/plugin-syntax-flow': 7.18.6 + dev: true + /@babel/plugin-transform-flow-strip-types/7.18.9_@babel+core@7.20.2: resolution: {integrity: sha512-+G6rp2zRuOAInY5wcggsx4+QVao1qPM0osC9fTUVlAV3zOrzTCnrMAFVnR6+a3T8wz1wFIH7KhYMcMB3u1n80A==} engines: {node: '>=6.9.0'} @@ -3229,6 +4122,18 @@ packages: '@babel/plugin-syntax-flow': 7.18.6_@babel+core@7.20.2 dev: true + /@babel/plugin-transform-for-of/7.18.8: + resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-for-of/7.18.8_@babel+core@7.18.10: resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==} engines: {node: '>=6.9.0'} @@ -3268,6 +4173,20 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-transform-function-name/7.18.9: + resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-compilation-targets': 7.20.7 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.18.10: resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} engines: {node: '>=6.9.0'} @@ -3278,7 +4197,7 @@ packages: optional: true dependencies: '@babel/core': 7.18.10 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.18.10 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.18.10 '@babel/helper-function-name': 7.19.0 '@babel/helper-plugin-utils': 7.20.2 dev: true @@ -3293,7 +4212,7 @@ packages: optional: true dependencies: '@babel/core': 7.18.13 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.18.13 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.18.13 '@babel/helper-function-name': 7.19.0 '@babel/helper-plugin-utils': 7.20.2 dev: false @@ -3308,11 +4227,23 @@ packages: optional: true dependencies: '@babel/core': 7.20.2 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.2 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.2 '@babel/helper-function-name': 7.19.0 '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-transform-literals/7.18.9: + resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-literals/7.18.9_@babel+core@7.18.10: resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} engines: {node: '>=6.9.0'} @@ -3352,6 +4283,18 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-transform-member-expression-literals/7.18.6: + resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} engines: {node: '>=6.9.0'} @@ -3425,6 +4368,22 @@ packages: - supports-color dev: false + /@babel/plugin-transform-modules-amd/7.20.11_@babel+core@7.20.2: + resolution: {integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-modules-commonjs/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==} engines: {node: '>=6.9.0'} @@ -3454,13 +4413,29 @@ packages: dependencies: '@babel/core': 7.18.13 '@babel/helper-module-transforms': 7.18.9 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-plugin-utils': 7.18.9 '@babel/helper-simple-access': 7.18.6 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color dev: false + /@babel/plugin-transform-modules-commonjs/7.19.6: + resolution: {integrity: sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-module-transforms': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-simple-access': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-modules-commonjs/7.19.6_@babel+core@7.20.2: resolution: {integrity: sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==} engines: {node: '>=6.9.0'} @@ -3516,6 +4491,24 @@ packages: - supports-color dev: false + /@babel/plugin-transform-modules-systemjs/7.20.11_@babel+core@7.20.2: + resolution: {integrity: sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-validator-identifier': 7.19.1 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} engines: {node: '>=6.9.0'} @@ -3526,7 +4519,7 @@ packages: optional: true dependencies: '@babel/core': 7.18.10 - '@babel/helper-module-transforms': 7.20.2 + '@babel/helper-module-transforms': 7.20.11 '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color @@ -3542,12 +4535,41 @@ packages: optional: true dependencies: '@babel/core': 7.18.13 - '@babel/helper-module-transforms': 7.20.2 + '@babel/helper-module-transforms': 7.20.11 '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color dev: false + /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex/7.18.6: + resolution: {integrity: sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-create-regexp-features-plugin': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-named-capturing-groups-regex/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==} engines: {node: '>=6.9.0'} @@ -3590,6 +4612,20 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-transform-named-capturing-groups-regex/7.20.5_@babel+core@7.20.2: + resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} engines: {node: '>=6.9.0'} @@ -3616,6 +4652,34 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: false + /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-object-super/7.18.6: + resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-replace-supers': 7.19.1 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} engines: {node: '>=6.9.0'} @@ -3627,7 +4691,7 @@ packages: dependencies: '@babel/core': 7.18.10 '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-replace-supers': 7.18.9 + '@babel/helper-replace-supers': 7.19.1 transitivePeerDependencies: - supports-color dev: true @@ -3643,7 +4707,7 @@ packages: dependencies: '@babel/core': 7.18.13 '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-replace-supers': 7.18.9 + '@babel/helper-replace-supers': 7.19.1 transitivePeerDependencies: - supports-color dev: false @@ -3659,11 +4723,23 @@ packages: dependencies: '@babel/core': 7.20.2 '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-replace-supers': 7.18.9 + '@babel/helper-replace-supers': 7.19.1 transitivePeerDependencies: - supports-color dev: true + /@babel/plugin-transform-parameters/7.18.8: + resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-parameters/7.18.8_@babel+core@7.18.10: resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==} engines: {node: '>=6.9.0'} @@ -3716,6 +4792,44 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: false + /@babel/plugin-transform-parameters/7.20.3_@babel+core@7.20.2: + resolution: {integrity: sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-parameters/7.20.7_@babel+core@7.20.2: + resolution: {integrity: sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-property-literals/7.18.6: + resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} engines: {node: '>=6.9.0'} @@ -3768,6 +4882,18 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: false + /@babel/plugin-transform-react-display-name/7.18.6: + resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-react-display-name/7.18.6_@babel+core@7.18.13: resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==} engines: {node: '>=6.9.0'} @@ -3829,6 +4955,18 @@ packages: '@babel/core': 7.20.2 '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.20.2 + /@babel/plugin-transform-react-jsx-self/7.18.6: + resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-react-jsx-self/7.18.6_@babel+core@7.18.13: resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==} engines: {node: '>=6.9.0'} @@ -3855,6 +4993,18 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-transform-react-jsx-source/7.18.6: + resolution: {integrity: sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.18.9 + dev: true + /@babel/plugin-transform-react-jsx-source/7.18.6_@babel+core@7.18.13: resolution: {integrity: sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==} engines: {node: '>=6.9.0'} @@ -4018,6 +5168,20 @@ packages: regenerator-transform: 0.15.0 dev: false + /@babel/plugin-transform-regenerator/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + regenerator-transform: 0.15.0 + dev: true + /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} engines: {node: '>=6.9.0'} @@ -4044,6 +5208,19 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: false + /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.20.2: + resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-runtime/7.18.10_@babel+core@7.18.10: resolution: {integrity: sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ==} engines: {node: '>=6.9.0'} @@ -4064,6 +5241,25 @@ packages: - supports-color dev: true + /@babel/plugin-transform-runtime/7.19.6: + resolution: {integrity: sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + babel-plugin-polyfill-corejs2: 0.3.3 + babel-plugin-polyfill-corejs3: 0.6.0 + babel-plugin-polyfill-regenerator: 0.4.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-runtime/7.19.6_@babel+core@7.20.2: resolution: {integrity: sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==} engines: {node: '>=6.9.0'} @@ -4084,6 +5280,18 @@ packages: - supports-color dev: true + /@babel/plugin-transform-shorthand-properties/7.18.6: + resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} engines: {node: '>=6.9.0'} @@ -4123,6 +5331,19 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-transform-spread/7.18.9: + resolution: {integrity: sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.18.9 + dev: true + /@babel/plugin-transform-spread/7.18.9_@babel+core@7.18.10: resolution: {integrity: sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==} engines: {node: '>=6.9.0'} @@ -4165,6 +5386,32 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.18.9 dev: true + /@babel/plugin-transform-spread/7.20.7_@babel+core@7.20.2: + resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + dev: true + + /@babel/plugin-transform-sticky-regex/7.18.6: + resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} engines: {node: '>=6.9.0'} @@ -4204,6 +5451,18 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-transform-template-literals/7.18.9: + resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.18.10: resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} engines: {node: '>=6.9.0'} @@ -4269,6 +5528,35 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: false + /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.20.2: + resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-typescript/7.18.12: + resolution: {integrity: sha512-2vjjam0cum0miPkenUbQswKowuxs/NjMwIKEq0zwegRxXk12C9YOF9STXnaUptITOtOJHKHpzvvWYOjbm6tc0w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-create-class-features-plugin': 7.18.13 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-typescript': 7.18.6 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-typescript/7.18.12_@babel+core@7.18.13: resolution: {integrity: sha512-2vjjam0cum0miPkenUbQswKowuxs/NjMwIKEq0zwegRxXk12C9YOF9STXnaUptITOtOJHKHpzvvWYOjbm6tc0w==} engines: {node: '>=6.9.0'} @@ -4328,6 +5616,32 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: false + /@babel/plugin-transform-unicode-escapes/7.18.10_@babel+core@7.20.2: + resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-unicode-regex/7.18.6: + resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-create-regexp-features-plugin': 7.20.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.18.10: resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} engines: {node: '>=6.9.0'} @@ -4338,7 +5652,7 @@ packages: optional: true dependencies: '@babel/core': 7.18.10 - '@babel/helper-create-regexp-features-plugin': 7.18.6_@babel+core@7.18.10 + '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.18.10 '@babel/helper-plugin-utils': 7.20.2 dev: true @@ -4352,7 +5666,7 @@ packages: optional: true dependencies: '@babel/core': 7.18.13 - '@babel/helper-create-regexp-features-plugin': 7.18.6_@babel+core@7.18.13 + '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.18.13 '@babel/helper-plugin-utils': 7.20.2 dev: false @@ -4366,7 +5680,7 @@ packages: optional: true dependencies: '@babel/core': 7.20.2 - '@babel/helper-create-regexp-features-plugin': 7.18.6_@babel+core@7.20.2 + '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.2 '@babel/helper-plugin-utils': 7.20.2 dev: true @@ -4548,6 +5862,95 @@ packages: - supports-color dev: false + /@babel/preset-env/7.20.2_@babel+core@7.20.2: + resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/compat-data': 7.20.10 + '@babel/core': 7.20.2 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-validator-option': 7.18.6 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-proposal-async-generator-functions': 7.20.7_@babel+core@7.20.2 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-proposal-class-static-block': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-proposal-logical-assignment-operators': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-proposal-object-rest-spread': 7.20.7_@babel+core@7.20.2 + '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-proposal-private-property-in-object': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.2 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.2 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.2 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-import-assertions': 7.20.0_@babel+core@7.20.2 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.2 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.2 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.2 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.2 + '@babel/plugin-transform-arrow-functions': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-async-to-generator': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-block-scoping': 7.20.11_@babel+core@7.20.2 + '@babel/plugin-transform-classes': 7.20.7_@babel+core@7.20.2 + '@babel/plugin-transform-computed-properties': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-transform-destructuring': 7.20.7_@babel+core@7.20.2 + '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-duplicate-keys': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-transform-exponentiation-operator': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-for-of': 7.18.8_@babel+core@7.20.2 + '@babel/plugin-transform-function-name': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-transform-literals': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-transform-member-expression-literals': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-modules-amd': 7.20.11_@babel+core@7.20.2 + '@babel/plugin-transform-modules-commonjs': 7.19.6_@babel+core@7.20.2 + '@babel/plugin-transform-modules-systemjs': 7.20.11_@babel+core@7.20.2 + '@babel/plugin-transform-modules-umd': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5_@babel+core@7.20.2 + '@babel/plugin-transform-new-target': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-object-super': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-parameters': 7.20.3_@babel+core@7.20.2 + '@babel/plugin-transform-property-literals': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-regenerator': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-spread': 7.20.7_@babel+core@7.20.2 + '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.20.2 + '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.20.2 + '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.20.2 + '@babel/preset-modules': 0.1.5_@babel+core@7.20.2 + '@babel/types': 7.20.7 + babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.20.2 + babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.20.2 + babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.20.2 + core-js-compat: 3.26.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/preset-flow/7.18.6_@babel+core@7.20.2: resolution: {integrity: sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==} engines: {node: '>=6.9.0'} @@ -4575,7 +5978,7 @@ packages: '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.18.10 '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.18.10 - '@babel/types': 7.20.2 + '@babel/types': 7.20.7 esutils: 2.0.3 dev: true @@ -4591,10 +5994,26 @@ packages: '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.18.13 '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.18.13 - '@babel/types': 7.20.2 + '@babel/types': 7.20.7 esutils: 2.0.3 dev: false + /@babel/preset-modules/0.1.5_@babel+core@7.20.2: + resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.2 + '@babel/types': 7.20.7 + esutils: 2.0.3 + dev: true + /@babel/preset-react/7.18.6_@babel+core@7.18.13: resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==} engines: {node: '>=6.9.0'} @@ -4703,6 +6122,14 @@ packages: '@babel/parser': 7.20.3 '@babel/types': 7.20.2 + /@babel/template/7.20.7: + resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.20.7 + '@babel/types': 7.20.7 + /@babel/traverse/7.18.13: resolution: {integrity: sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA==} engines: {node: '>=6.9.0'} @@ -4737,6 +6164,23 @@ packages: transitivePeerDependencies: - supports-color + /@babel/traverse/7.20.12: + resolution: {integrity: sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.20.7 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.20.7 + '@babel/types': 7.20.7 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + /@babel/types/7.18.13: resolution: {integrity: sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==} engines: {node: '>=6.9.0'} @@ -4753,6 +6197,14 @@ packages: '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 + /@babel/types/7.20.7: + resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + /@bcoe/v8-coverage/0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true @@ -6875,7 +8327,7 @@ packages: dependencies: '@angular/compiler-cli': 14.2.7_2drcwksc5ljle4ujljyylhgl6q typescript: 4.8.4 - webpack: 5.74.0_esbuild@0.15.5 + webpack: 5.74.0 dev: true /@nodelib/fs.scandir/2.1.5: @@ -7177,6 +8629,7 @@ packages: metro-runtime: 0.70.3 readline: 1.3.0 transitivePeerDependencies: + - '@babel/core' - bufferutil - encoding - supports-color @@ -7254,6 +8707,7 @@ packages: react-native: 0.69.3_react@18.0.0 semver: 6.3.0 transitivePeerDependencies: + - '@babel/core' - bufferutil - encoding - supports-color @@ -7272,6 +8726,27 @@ packages: resolution: {integrity: sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ==} dev: true + /@rollup/plugin-babel/6.0.3_qsdz34r7ez7s4eia4fj7dastgq: + resolution: {integrity: sha512-fKImZKppa1A/gX73eg4JGo+8kQr/q1HBQaCGKECZ0v4YBBv3lFqi14+7xyApECzvkLTHCifx+7ntcrvtBIRcpg==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + '@types/babel__core': + optional: true + rollup: + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-module-imports': 7.18.6 + '@rollup/pluginutils': 5.0.2_rollup@3.5.1 + rollup: 3.5.1 + dev: true + /@rollup/plugin-json/4.1.0_rollup@2.77.2: resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==} peerDependencies: @@ -7341,6 +8816,18 @@ packages: '@rollup/pluginutils': 5.0.2_rollup@3.5.1 magic-string: 0.26.7 rollup: 3.5.1 + + /@rollup/plugin-terser/0.1.0_rollup@3.5.1: + resolution: {integrity: sha512-N2KK+qUfHX2hBzVzM41UWGLrEmcjVC37spC8R3c9mt3oEDFKh3N2e12/lLp9aVSt86veR0TQiCNQXrm8C6aiUQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.x || ^3.x + peerDependenciesMeta: + rollup: + optional: true + dependencies: + rollup: 3.5.1 + terser: 5.16.1 dev: true /@rollup/pluginutils/3.1.0_rollup@2.77.2: @@ -8752,8 +10239,10 @@ packages: indent-string: 4.0.0 dev: true - /ajv-formats/2.1.1: + /ajv-formats/2.1.1_ajv@8.11.0: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 peerDependenciesMeta: ajv: optional: true @@ -8984,7 +10473,6 @@ packages: /array-find-index/1.0.2: resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==} engines: {node: '>=0.10.0'} - dev: false /array-flatten/1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} @@ -9232,7 +10720,7 @@ packages: loader-utils: 2.0.2 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.74.0_esbuild@0.15.5 + webpack: 5.74.0 dev: true /babel-plugin-apply-mdx-type-prop/1.6.22_@babel+core@7.12.9: @@ -9311,6 +10799,22 @@ packages: html-entities: 2.3.2 dev: true + /babel-plugin-jsx-dom-expressions/0.35.13_@babel+core@7.20.2: + resolution: {integrity: sha512-UlbzUP/2kFxwaEs1VDrPjCr84/oGDQUohf+vbyD8u8Ct3tSpfQz+OGrj+GBqf0Ib1Rxz7dSH+1mZz+kuxzeCSA==} + peerDependencies: + '@babel/core': ^7.20.12 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/helper-module-imports': 7.18.6 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.2 + '@babel/types': 7.20.7 + html-entities: 2.3.3 + validate-html-nesting: 1.1.0 + dev: true + /babel-plugin-macros/3.1.0: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} @@ -9320,6 +10824,21 @@ packages: resolve: 1.22.1 dev: false + /babel-plugin-polyfill-corejs2/0.3.3: + resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/compat-data': 7.20.10 + '@babel/helper-define-polyfill-provider': 0.3.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.18.10: resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} peerDependencies: @@ -9328,7 +10847,7 @@ packages: '@babel/core': optional: true dependencies: - '@babel/compat-data': 7.18.13 + '@babel/compat-data': 7.20.10 '@babel/core': 7.18.10 '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.18.10 semver: 6.3.0 @@ -9344,7 +10863,7 @@ packages: '@babel/core': optional: true dependencies: - '@babel/compat-data': 7.18.13 + '@babel/compat-data': 7.20.10 '@babel/core': 7.18.13 '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.18.13 semver: 6.3.0 @@ -9360,7 +10879,7 @@ packages: '@babel/core': optional: true dependencies: - '@babel/compat-data': 7.18.13 + '@babel/compat-data': 7.20.10 '@babel/core': 7.20.2 '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.2 semver: 6.3.0 @@ -9398,6 +10917,20 @@ packages: - supports-color dev: false + /babel-plugin-polyfill-corejs3/0.6.0: + resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-define-polyfill-provider': 0.3.3 + core-js-compat: 3.26.0 + transitivePeerDependencies: + - supports-color + dev: true + /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.20.2: resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} peerDependencies: @@ -9413,6 +10946,19 @@ packages: - supports-color dev: true + /babel-plugin-polyfill-regenerator/0.4.1: + resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/helper-define-polyfill-provider': 0.3.3 + transitivePeerDependencies: + - supports-color + dev: true + /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.18.10: resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} peerDependencies: @@ -9522,6 +11068,45 @@ packages: '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.2 dev: true + /babel-preset-fbjs/3.4.0: + resolution: {integrity: sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==} + peerDependencies: + '@babel/core': ^7.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/plugin-proposal-class-properties': 7.18.6 + '@babel/plugin-proposal-object-rest-spread': 7.18.9 + '@babel/plugin-syntax-class-properties': 7.12.13 + '@babel/plugin-syntax-flow': 7.18.6 + '@babel/plugin-syntax-jsx': 7.18.6 + '@babel/plugin-syntax-object-rest-spread': 7.8.3 + '@babel/plugin-transform-arrow-functions': 7.18.6 + '@babel/plugin-transform-block-scoped-functions': 7.18.6 + '@babel/plugin-transform-block-scoping': 7.18.9 + '@babel/plugin-transform-classes': 7.18.9 + '@babel/plugin-transform-computed-properties': 7.18.9 + '@babel/plugin-transform-destructuring': 7.18.13 + '@babel/plugin-transform-flow-strip-types': 7.18.9 + '@babel/plugin-transform-for-of': 7.18.8 + '@babel/plugin-transform-function-name': 7.18.9 + '@babel/plugin-transform-literals': 7.18.9 + '@babel/plugin-transform-member-expression-literals': 7.18.6 + '@babel/plugin-transform-modules-commonjs': 7.19.6 + '@babel/plugin-transform-object-super': 7.18.6 + '@babel/plugin-transform-parameters': 7.18.8 + '@babel/plugin-transform-property-literals': 7.18.6 + '@babel/plugin-transform-react-display-name': 7.18.6 + '@babel/plugin-transform-react-jsx': 7.19.0 + '@babel/plugin-transform-shorthand-properties': 7.18.6 + '@babel/plugin-transform-spread': 7.18.9 + '@babel/plugin-transform-template-literals': 7.18.9 + babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 + transitivePeerDependencies: + - supports-color + dev: true + /babel-preset-fbjs/3.4.0_@babel+core@7.20.2: resolution: {integrity: sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==} peerDependencies: @@ -9612,6 +11197,18 @@ packages: babel-plugin-jsx-dom-expressions: 0.34.7_@babel+core@7.18.13 dev: true + /babel-preset-solid/1.6.7_@babel+core@7.20.2: + resolution: {integrity: sha512-OYPYPX0d1ncf5MGJ7rdb8V1u0BQDaoUAR6LAgR7Cm2hS/BgjGkznrcmpY00Y6RxmQq7n2ozW+hPl2w2k7/v4vg==} + peerDependencies: + '@babel/core': ^7.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + babel-plugin-jsx-dom-expressions: 0.35.13_@babel+core@7.20.2 + dev: true + /bail/1.0.5: resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} dev: false @@ -9751,7 +11348,6 @@ packages: engines: {node: '>= 10.16.0'} dependencies: duplexer: 0.1.1 - dev: false /browser-process-hrtime/1.0.0: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} @@ -10130,6 +11726,7 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + dev: true /cliui/8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} @@ -10138,7 +11735,6 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true /clone-deep/4.0.1: resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} @@ -10296,7 +11892,6 @@ packages: /commenting/1.1.0: resolution: {integrity: sha512-YeNK4tavZwtH7jEgK1ZINXzLKm6DZdEMfsaaieOsCAN0S8vsY7UeuO3Q7d/M018EFgE+IeUAuBOKkFccBZsUZA==} - dev: false /commondir/1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} @@ -10435,7 +12030,7 @@ packages: normalize-path: 3.0.0 schema-utils: 4.0.0 serialize-javascript: 6.0.0 - webpack: 5.74.0_esbuild@0.15.5 + webpack: 5.74.0 dev: true /core-js-compat/3.24.1: @@ -10566,7 +12161,7 @@ packages: postcss-modules-values: 4.0.0_postcss@8.4.19 postcss-value-parser: 4.2.0 semver: 7.3.7 - webpack: 5.74.0_esbuild@0.15.5 + webpack: 5.74.0 dev: true /css-prefers-color-scheme/6.0.3_postcss@8.4.16: @@ -10609,7 +12204,6 @@ packages: domhandler: 5.0.3 domutils: 3.0.1 nth-check: 2.1.1 - dev: true /css-selector-tokenizer/0.7.3: resolution: {integrity: sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==} @@ -10639,7 +12233,6 @@ packages: dependencies: mdn-data: 2.0.28 source-map-js: 1.0.2 - dev: true /css-what/3.4.2: resolution: {integrity: sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==} @@ -10682,7 +12275,6 @@ packages: engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} dependencies: css-tree: 2.2.1 - dev: true /cssom/0.3.8: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} @@ -10736,7 +12328,6 @@ packages: /data-uri-to-buffer/4.0.0: resolution: {integrity: sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==} engines: {node: '>= 12'} - dev: true /data-urls/2.0.0: resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} @@ -11072,7 +12663,6 @@ packages: domelementtype: 2.3.0 domhandler: 5.0.3 entities: 4.4.0 - dev: true /dom-walk/0.1.2: resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} @@ -11110,7 +12700,6 @@ packages: engines: {node: '>= 4'} dependencies: domelementtype: 2.3.0 - dev: true /domutils/1.7.0: resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} @@ -11132,7 +12721,6 @@ packages: dom-serializer: 2.0.0 domelementtype: 2.3.0 domhandler: 5.0.3 - dev: true /downloadjs/1.4.7: resolution: {integrity: sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q==} @@ -11140,11 +12728,9 @@ packages: /duplexer/0.1.1: resolution: {integrity: sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==} - dev: false /duplexer/0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - dev: false /eastasianwidth/0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -12225,6 +13811,7 @@ packages: esbuild-windows-64: 0.15.5 esbuild-windows-arm64: 0.15.5 dev: true + optional: true /esbuild/0.9.7: resolution: {integrity: sha512-VtUf6aQ89VTmMLKrWHYG50uByMF4JQlVysb8dmg6cOgW8JnFCipmz7p+HNBl+RR3LLCuBxFGVauAe2wfnF9bLg==} @@ -12886,7 +14473,6 @@ packages: dependencies: node-domexception: 1.0.0 web-streams-polyfill: 3.2.1 - dev: true /figures/3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} @@ -13080,7 +14666,6 @@ packages: engines: {node: '>=12.20.0'} dependencies: fetch-blob: 3.2.0 - dev: true /forwarded/0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} @@ -13443,7 +15028,6 @@ packages: dependencies: duplexer: 0.1.2 pify: 4.0.1 - dev: false /handle-thing/2.0.1: resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} @@ -13683,6 +15267,10 @@ packages: resolution: {integrity: sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==} dev: true + /html-entities/2.3.3: + resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} + dev: true + /html-escaper/2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true @@ -14354,6 +15942,11 @@ packages: engines: {node: '>=12.13'} dev: true + /is-what/4.1.8: + resolution: {integrity: sha512-yq8gMao5upkPoGEU9LsB2P+K3Kt8Q3fQFCGyNCWOAnJAMzEXVV9drYb0TXr42TTliLLhKIBvulgAXgtLLnwzGA==} + engines: {node: '>=12.13'} + dev: true + /is-whitespace-character/1.0.4: resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==} dev: false @@ -15500,7 +17093,7 @@ packages: dependencies: klona: 2.0.5 less: 4.1.3 - webpack: 5.74.0_esbuild@0.15.5 + webpack: 5.74.0 dev: true /less/4.1.3: @@ -15554,7 +17147,7 @@ packages: webpack-sources: optional: true dependencies: - webpack: 5.74.0_esbuild@0.15.5 + webpack: 5.74.0 webpack-sources: 3.2.3 dev: true @@ -15790,6 +17383,11 @@ packages: yallist: 2.1.2 dev: true + /lru-cache/5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + /lru-cache/6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -15935,7 +17533,6 @@ packages: /mdn-data/2.0.28: resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - dev: true /mdn-data/2.0.4: resolution: {integrity: sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==} @@ -15969,6 +17566,13 @@ packages: ts-toolbelt: 9.6.0 dev: true + /merge-anything/5.1.4: + resolution: {integrity: sha512-7PWKwGOs5WWcpw+/OvbiFiAvEP6bv/QHiicigpqMGKIqPPAtGhBLR8LFJW+Zu6m9TXiR/a8+AiPlGG0ko1ruoQ==} + engines: {node: '>=12.13'} + dependencies: + is-what: 4.1.8 + dev: true + /merge-descriptors/1.0.1: resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} dev: true @@ -16059,6 +17663,59 @@ packages: /metro-react-native-babel-preset/0.70.3: resolution: {integrity: sha512-4Nxc1zEiHEu+GTdEMEsHnRgfaBkg8f/Td3+FcQ8NTSvs+xL3LBrQy6N07idWSQZHIdGFf+tTHvRfSIWLD8u8Tg==} + peerDependencies: + '@babel/core': '*' + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.20.2 + '@babel/plugin-proposal-async-generator-functions': 7.18.10 + '@babel/plugin-proposal-class-properties': 7.18.6 + '@babel/plugin-proposal-export-default-from': 7.18.9 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6 + '@babel/plugin-proposal-object-rest-spread': 7.18.9 + '@babel/plugin-proposal-optional-catch-binding': 7.18.6 + '@babel/plugin-proposal-optional-chaining': 7.18.9 + '@babel/plugin-syntax-dynamic-import': 7.8.3 + '@babel/plugin-syntax-export-default-from': 7.18.6 + '@babel/plugin-syntax-flow': 7.18.6 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3 + '@babel/plugin-syntax-optional-chaining': 7.8.3 + '@babel/plugin-transform-arrow-functions': 7.18.6 + '@babel/plugin-transform-async-to-generator': 7.18.6 + '@babel/plugin-transform-block-scoping': 7.18.9 + '@babel/plugin-transform-classes': 7.18.9 + '@babel/plugin-transform-computed-properties': 7.18.9 + '@babel/plugin-transform-destructuring': 7.18.13 + '@babel/plugin-transform-exponentiation-operator': 7.18.6 + '@babel/plugin-transform-flow-strip-types': 7.18.9 + '@babel/plugin-transform-function-name': 7.18.9 + '@babel/plugin-transform-literals': 7.18.9 + '@babel/plugin-transform-modules-commonjs': 7.19.6 + '@babel/plugin-transform-named-capturing-groups-regex': 7.18.6 + '@babel/plugin-transform-parameters': 7.18.8 + '@babel/plugin-transform-react-display-name': 7.18.6 + '@babel/plugin-transform-react-jsx': 7.19.0 + '@babel/plugin-transform-react-jsx-self': 7.18.6 + '@babel/plugin-transform-react-jsx-source': 7.18.6 + '@babel/plugin-transform-runtime': 7.19.6 + '@babel/plugin-transform-shorthand-properties': 7.18.6 + '@babel/plugin-transform-spread': 7.18.9 + '@babel/plugin-transform-sticky-regex': 7.18.6 + '@babel/plugin-transform-template-literals': 7.18.9 + '@babel/plugin-transform-typescript': 7.18.12 + '@babel/plugin-transform-unicode-regex': 7.18.6 + '@babel/template': 7.18.10 + react-refresh: 0.4.3 + transitivePeerDependencies: + - supports-color + dev: true + + /metro-react-native-babel-preset/0.70.3_@babel+core@7.20.2: + resolution: {integrity: sha512-4Nxc1zEiHEu+GTdEMEsHnRgfaBkg8f/Td3+FcQ8NTSvs+xL3LBrQy6N07idWSQZHIdGFf+tTHvRfSIWLD8u8Tg==} + peerDependencies: + '@babel/core': '*' peerDependenciesMeta: '@babel/core': optional: true @@ -16108,12 +17765,14 @@ packages: /metro-react-native-babel-transformer/0.70.3: resolution: {integrity: sha512-WKBU6S/G50j9cfmFM4k4oRYprd8u3qjleD4so1E2zbTNILg+gYla7ZFGCAvi2G0ZcqS2XuGCR375c2hF6VVvwg==} + peerDependencies: + '@babel/core': '*' peerDependenciesMeta: '@babel/core': optional: true dependencies: '@babel/core': 7.20.2 - babel-preset-fbjs: 3.4.0_@babel+core@7.20.2 + babel-preset-fbjs: 3.4.0 hermes-parser: 0.6.0 metro-babel-transformer: 0.70.3 metro-react-native-babel-preset: 0.70.3 @@ -16236,7 +17895,7 @@ packages: metro-hermes-compiler: 0.70.3 metro-inspector-proxy: 0.70.3 metro-minify-uglify: 0.70.3 - metro-react-native-babel-preset: 0.70.3 + metro-react-native-babel-preset: 0.70.3_@babel+core@7.20.2 metro-resolver: 0.70.3 metro-runtime: 0.70.3 metro-source-map: 0.70.3 @@ -16352,7 +18011,7 @@ packages: webpack: ^5.0.0 dependencies: schema-utils: 4.0.0 - webpack: 5.74.0_esbuild@0.15.5 + webpack: 5.74.0 dev: true /minimalistic-assert/1.0.1: @@ -16469,7 +18128,6 @@ packages: /moment/2.29.4: resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} - dev: false /mri/1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} @@ -16697,7 +18355,6 @@ packages: /node-domexception/1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} - dev: true /node-fetch/2.6.7: resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} @@ -16718,7 +18375,6 @@ packages: data-uri-to-buffer: 4.0.0 fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 - dev: true /node-forge/1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} @@ -17247,7 +18903,6 @@ packages: /package-name-regex/2.0.6: resolution: {integrity: sha512-gFL35q7kbE/zBaPA3UKhp2vSzcPYx2ecbYuwv1ucE9Il6IIgBDweBlH8D68UFGZic2MkllKa2KHCfC1IQBQUYA==} engines: {node: '>=12'} - dev: false /pacote/13.6.2: resolution: {integrity: sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg==} @@ -17742,7 +19397,7 @@ packages: klona: 2.0.5 postcss: 8.4.16 semver: 7.3.7 - webpack: 5.74.0_esbuild@0.15.5 + webpack: 5.74.0 dev: true /postcss-logical/5.0.4_postcss@8.4.16: @@ -18095,7 +19750,6 @@ packages: resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} engines: {node: '>=10.13.0'} hasBin: true - dev: true /pretty-bytes/5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} @@ -18530,6 +20184,7 @@ packages: whatwg-fetch: 3.6.2 ws: 6.2.2 transitivePeerDependencies: + - '@babel/core' - '@babel/preset-env' - bufferutil - encoding @@ -18785,6 +20440,12 @@ packages: dependencies: regenerate: 1.4.2 + /regenerate-unicode-properties/10.1.0: + resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + /regenerate/1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} @@ -18836,15 +20497,35 @@ packages: unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.0.0 + /regexpu-core/5.2.2: + resolution: {integrity: sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.0 + regjsgen: 0.7.1 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 + /regjsgen/0.6.0: resolution: {integrity: sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==} + /regjsgen/0.7.1: + resolution: {integrity: sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==} + /regjsparser/0.8.4: resolution: {integrity: sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==} hasBin: true dependencies: jsesc: 0.5.0 + /regjsparser/0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + /remark-footnotes/2.0.0: resolution: {integrity: sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==} dev: false @@ -19114,7 +20795,6 @@ packages: rollup: 3.5.1 spdx-expression-validate: 2.0.0 spdx-satisfies: 5.0.1 - dev: false /rollup-plugin-sourcemaps/0.6.3_ohounsz2qvjd37oi3odxcis45u: resolution: {integrity: sha512-paFu+nT1xvuO1tPFYXGe+XnQvg4Hjqv/eIhG8i5EspfYYPBKL57X7iVbfv55aNVASg3dzWvES9dmWsL2KhfByw==} @@ -19158,7 +20838,7 @@ packages: open: 8.4.0 rollup: 3.5.1 source-map: 0.7.4 - yargs: 17.5.1 + yargs: 17.6.2 dev: false /rollup-pluginutils/2.8.2: @@ -19167,6 +20847,26 @@ packages: estree-walker: 0.6.1 dev: true + /rollup-preset-solid/2.0.1: + resolution: {integrity: sha512-CPJn3SqADlIxhAW3jwZuAFRyZcz7HPeUAz4f+6BzulxHnK4v6tgoTbMvk8vEsfsvHwiTmX93KHIKdf79aTdVSA==} + dependencies: + '@babel/core': 7.20.2 + '@babel/preset-env': 7.20.2_@babel+core@7.20.2 + '@babel/preset-typescript': 7.18.6_@babel+core@7.20.2 + '@rollup/plugin-babel': 6.0.3_qsdz34r7ez7s4eia4fj7dastgq + '@rollup/plugin-node-resolve': 15.0.1_rollup@3.5.1 + '@rollup/plugin-terser': 0.1.0_rollup@3.5.1 + babel-preset-solid: 1.6.7_@babel+core@7.20.2 + colorette: 2.0.19 + esbuild: 0.15.16 + merge-anything: 5.1.4 + rollup: 3.5.1 + typescript: 4.9.4 + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + dev: true + /rollup/2.77.2: resolution: {integrity: sha512-m/4YzYgLcpMQbxX3NmAqDvwLATZzxt8bIegO78FZLl+lAgKJBd1DRAOeEiZcKOIOPjxE6ewHWHNgGEalFXuz1g==} engines: {node: '>=10.0.0'} @@ -19307,7 +21007,7 @@ packages: klona: 2.0.5 neo-async: 2.6.2 sass: 1.54.4 - webpack: 5.74.0_esbuild@0.15.5 + webpack: 5.74.0 dev: true /sass/1.54.4: @@ -19381,7 +21081,7 @@ packages: dependencies: '@types/json-schema': 7.0.11 ajv: 8.11.0 - ajv-formats: 2.1.1 + ajv-formats: 2.1.1_ajv@8.11.0 ajv-keywords: 5.1.0_ajv@8.11.0 dev: true @@ -19605,7 +21305,6 @@ packages: /simple-string-table/1.0.0: resolution: {integrity: sha512-iflPccjsYtTN+Rqj35v/G+i9A04g2HgOPkPp/B5evznUD4VZ4egi/qcFwrUHgGZwJMZz+Aq5elow4Qqsodfflw==} - dev: false /simple-swizzle/0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} @@ -19807,7 +21506,7 @@ packages: abab: 2.0.6 iconv-lite: 0.6.3 source-map-js: 1.0.2 - webpack: 5.74.0_esbuild@0.15.5 + webpack: 5.74.0 dev: true /source-map-resolve/0.5.3: @@ -19862,6 +21561,7 @@ packages: /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead /space-separated-tokens/1.1.5: resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} @@ -19873,7 +21573,6 @@ packages: array-find-index: 1.0.2 spdx-expression-parse: 3.0.1 spdx-ranges: 2.1.1 - dev: false /spdx-correct/3.1.1: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} @@ -19895,14 +21594,12 @@ packages: resolution: {integrity: sha512-b3wydZLM+Tc6CFvaRDBOF9d76oGIHNCLYFeHbftFXUWjnfZWganmDmvtM5sm1cRwJc/VDBMLyGGrsLFd1vOxbg==} dependencies: spdx-expression-parse: 3.0.1 - dev: false /spdx-license-ids/3.0.12: resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} /spdx-ranges/2.1.1: resolution: {integrity: sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==} - dev: false /spdx-satisfies/5.0.1: resolution: {integrity: sha512-Nwor6W6gzFp8XX4neaKQ7ChV4wmpSh2sSDemMFSzHxpTw460jxFYeOn+jq4ybnSSw/5sc3pjka9MQPouksQNpw==} @@ -19910,7 +21607,6 @@ packages: spdx-compare: 1.0.0 spdx-expression-parse: 3.0.1 spdx-ranges: 2.1.1 - dev: false /spdy-transport/3.0.0: resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} @@ -20218,7 +21914,7 @@ packages: klona: 2.0.5 normalize-path: 3.0.0 stylus: 0.59.0 - webpack: 5.74.0_esbuild@0.15.5 + webpack: 5.74.0 dev: true /stylus/0.59.0: @@ -20452,7 +22148,6 @@ packages: css-tree: 2.2.1 csso: 5.0.5 picocolors: 1.0.0 - dev: true /svgson/5.2.1: resolution: {integrity: sha512-nbM6QuyZiKzQ0Uo51VDta93YJAr96ikyT40PsgJRrzynOGsOlnmJ6zAK5hUFyE5gnxcg7yuOPUWbUlmV9K0+Dg==} @@ -20528,31 +22223,6 @@ packages: supports-hyperlinks: 2.2.0 dev: true - /terser-webpack-plugin/5.3.5_opeswuojjimgier3zsvonpntbm: - resolution: {integrity: sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - dependencies: - '@jridgewell/trace-mapping': 0.3.15 - esbuild: 0.15.5 - jest-worker: 27.5.1 - schema-utils: 3.1.1 - serialize-javascript: 6.0.0 - terser: 5.14.2 - webpack: 5.74.0_esbuild@0.15.5 - dev: true - /terser-webpack-plugin/5.3.5_webpack@5.74.0: resolution: {integrity: sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==} engines: {node: '>= 10.13.0'} @@ -20588,6 +22258,17 @@ packages: source-map-support: 0.5.21 dev: true + /terser/5.16.1: + resolution: {integrity: sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.2 + acorn: 8.8.1 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true + /test-exclude/6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -20959,6 +22640,12 @@ packages: hasBin: true dev: true + /typescript/4.9.4: + resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + /ua-parser-js/0.7.31: resolution: {integrity: sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==} dev: true @@ -21010,6 +22697,10 @@ packages: resolution: {integrity: sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==} engines: {node: '>=4'} + /unicode-match-property-value-ecmascript/2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + /unicode-property-aliases-ecmascript/2.0.0: resolution: {integrity: sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==} engines: {node: '>=4'} @@ -21276,6 +22967,10 @@ packages: source-map: 0.7.4 dev: true + /validate-html-nesting/1.1.0: + resolution: {integrity: sha512-m+tQ7mVs2AMXRP0hFFQzmdG2BRMyLJtH39AtCpJDhiHM4oL6eccFnNhnNnwrBRNlPr78Opgh3CC9am2bnaJ2Tg==} + dev: true + /validate-npm-package-license/3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: @@ -21750,7 +23445,6 @@ packages: /web-streams-polyfill/3.2.1: resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} engines: {node: '>= 8'} - dev: true /webdriver-js-extender/2.1.0: resolution: {integrity: sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==} @@ -21808,7 +23502,7 @@ packages: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.0.0 - webpack: 5.74.0_esbuild@0.15.5 + webpack: 5.74.0 dev: true /webpack-dev-server/4.11.0_webpack@5.74.0: @@ -21849,7 +23543,7 @@ packages: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack: 5.74.0_esbuild@0.15.5 + webpack: 5.74.0 webpack-dev-middleware: 5.3.3_webpack@5.74.0 ws: 8.11.0 transitivePeerDependencies: @@ -21883,7 +23577,7 @@ packages: optional: true dependencies: typed-assert: 1.0.9 - webpack: 5.74.0_esbuild@0.15.5 + webpack: 5.74.0 dev: true /webpack/5.74.0: @@ -21926,46 +23620,6 @@ packages: - uglify-js dev: true - /webpack/5.74.0_esbuild@0.15.5: - resolution: {integrity: sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - dependencies: - '@types/eslint-scope': 3.7.4 - '@types/estree': 0.0.51 - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/wasm-edit': 1.11.1 - '@webassemblyjs/wasm-parser': 1.11.1 - acorn: 8.8.1 - acorn-import-assertions: 1.8.0_acorn@8.8.1 - browserslist: 4.21.4 - chrome-trace-event: 1.0.3 - enhanced-resolve: 5.10.0 - es-module-lexer: 0.9.3 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.10 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.1.1 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.5_opeswuojjimgier3zsvonpntbm - watchpack: 2.4.0 - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - dev: true - /websocket-driver/0.7.4: resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} engines: {node: '>=0.8.0'} @@ -22250,6 +23904,9 @@ packages: resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} dev: true + /yallist/3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + /yallist/4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} @@ -22278,11 +23935,11 @@ packages: /yargs-parser/21.0.1: resolution: {integrity: sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==} engines: {node: '>=12'} + dev: true /yargs-parser/21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} - dev: true /yargs/15.4.1: resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} @@ -22325,6 +23982,7 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.0.1 + dev: true /yargs/17.6.2: resolution: {integrity: sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==} @@ -22337,7 +23995,6 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - dev: true /yauzl/2.10.0: resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} diff --git a/scripts/helpers.mjs b/scripts/helpers.mjs index cfbebd6..45a6bb1 100644 --- a/scripts/helpers.mjs +++ b/scripts/helpers.mjs @@ -76,8 +76,8 @@ export const writeFile = (content, fileName, outputDirectory) => * @param {string} directory * @returns {array} An array of file paths containig svgs */ -export const readSvgDirectory = (directory) => - fs.readdirSync(directory).filter((file) => path.extname(file) === '.svg'); +export const readSvgDirectory = (directory, fileExtension = '.svg') => + fs.readdirSync(directory).filter((file) => path.extname(file) === fileExtension); /** * Read svg from directory diff --git a/tools/build-icons/building/generateAliasesFile.mjs b/tools/build-icons/building/generateAliasesFile.mjs new file mode 100644 index 0000000..0a42fa3 --- /dev/null +++ b/tools/build-icons/building/generateAliasesFile.mjs @@ -0,0 +1,48 @@ +import path from 'path'; +import { toPascalCase, resetFile, appendFile } from '../../../scripts/helpers.mjs'; + +const getImportString = (componentName, iconName, aliasImportFileExtension = '') => + `export { default as ${componentName} } from './icons/${iconName}${aliasImportFileExtension}';\n`; + +export default function generateAliasesFile({ + iconNodes, + outputDirectory, + fileExtension, + aliases, + aliasImportFileExtension, + showLog = true, +}) { + const fileName = path.basename(`aliases${fileExtension}`); + const icons = Object.keys(iconNodes); + + // Reset file + resetFile(fileName, outputDirectory); + + // Generate Import for Icon VNodes + icons.forEach((iconName) => { + const componentName = toPascalCase(iconName); + const iconAliases = aliases[iconName]?.aliases; + + let importString = `// ${componentName} aliases\n`; + + importString += getImportString(`${componentName}Icon`, iconName, aliasImportFileExtension); + importString += getImportString(`Lucide${componentName}`, iconName, aliasImportFileExtension); + + if (iconAliases != null && Array.isArray(iconAliases)) { + iconAliases.forEach((alias) => { + const componentNameAlias = toPascalCase(alias); + importString += getImportString(componentNameAlias, iconName, aliasImportFileExtension); + }); + } + + importString += '\n'; + + appendFile(importString, fileName, outputDirectory); + }); + + appendFile('\n', fileName, outputDirectory); + + if (showLog) { + console.log(`Successfully generated ${fileName} file`); + } +} diff --git a/scripts/building/generateExportsFile.mjs b/tools/build-icons/building/generateExportsFile.mjs similarity index 72% rename from scripts/building/generateExportsFile.mjs rename to tools/build-icons/building/generateExportsFile.mjs index d5a1979..3a57c83 100644 --- a/scripts/building/generateExportsFile.mjs +++ b/tools/build-icons/building/generateExportsFile.mjs @@ -1,6 +1,6 @@ import path from 'path'; -import { toPascalCase, resetFile, appendFile } from '../helpers.mjs'; +import { toPascalCase, resetFile, appendFile } from '../../../scripts/helpers.mjs'; export default (inputEntry, outputDirectory, iconNodes, iconFileExtension = '') => { const fileName = path.basename(inputEntry); @@ -10,13 +10,10 @@ export default (inputEntry, outputDirectory, iconNodes, iconFileExtension = '') const icons = Object.keys(iconNodes); - const fileExtention = - iconFileExtension === '.ts' || iconFileExtension === '.js' ? '' : iconFileExtension; - // Generate Import for Icon VNodes icons.forEach((iconName) => { const componentName = toPascalCase(iconName); - const importString = `export { default as ${componentName} } from './${iconName}${fileExtention}';\n`; + const importString = `export { default as ${componentName} } from './${iconName}${iconFileExtension}';\n`; appendFile(importString, fileName, outputDirectory); }); diff --git a/scripts/building/generateIconFiles.mjs b/tools/build-icons/building/generateIconFiles.mjs similarity index 95% rename from scripts/building/generateIconFiles.mjs rename to tools/build-icons/building/generateIconFiles.mjs index d3f2f49..24e76d3 100644 --- a/scripts/building/generateIconFiles.mjs +++ b/tools/build-icons/building/generateIconFiles.mjs @@ -1,7 +1,7 @@ import fs from 'fs'; import path from 'path'; import prettier from 'prettier'; -import { toPascalCase } from '../helpers.mjs'; +import { toPascalCase } from '../../../scripts/helpers.mjs'; export default ({ iconNodes, diff --git a/tools/build-icons/index.mjs b/tools/build-icons/index.mjs new file mode 100644 index 0000000..923e98a --- /dev/null +++ b/tools/build-icons/index.mjs @@ -0,0 +1,2 @@ +// eslint-disable-next-line import/prefer-default-export +export { default as getAliases } from './utils/getAliases.mjs'; diff --git a/tools/build-icons/main.mjs b/tools/build-icons/main.mjs new file mode 100755 index 0000000..9c85ab3 --- /dev/null +++ b/tools/build-icons/main.mjs @@ -0,0 +1,85 @@ +#!/usr/bin/env node +import fs from 'fs'; +import path from 'path'; +import getArgumentOptions from 'minimist'; + +import renderIconsObject from './render/renderIconsObject.mjs'; +import generateIconFiles from './building/generateIconFiles.mjs'; +import generateExportsFile from './building/generateExportsFile.mjs'; + +import { readSvgDirectory, getCurrentDirPath } from '../../scripts/helpers.mjs'; +import generateAliasesFile from './building/generateAliasesFile.mjs'; +import getAliases from './utils/getAliases.mjs'; + +const cliArguments = getArgumentOptions(process.argv.slice(2)); + +const currentDir = getCurrentDirPath(import.meta.url); + +const ICONS_DIR = path.resolve(currentDir, '../../icons'); +const OUTPUT_DIR = path.resolve(process.cwd(), cliArguments.output || '../build'); + +if (!fs.existsSync(OUTPUT_DIR)) { + fs.mkdirSync(OUTPUT_DIR); +} + +const { + renderUniqueKey = false, + templateSrc, + silent = false, + iconFileExtension = '.js', + importImportFileExtension = '', + exportFileName = 'index.js', + withAliases = false, + aliasesFileExtension = '.js', + aliasImportFileExtension = '', + pretty = true, +} = cliArguments; + +async function buildIcons() { + if (templateSrc == null) { + throw new Error('No `templateSrc` argument given.'); + } + + const svgFiles = readSvgDirectory(ICONS_DIR); + + const icons = renderIconsObject(svgFiles, ICONS_DIR, renderUniqueKey); + + const { default: iconFileTemplate } = await import(path.resolve(process.cwd(), templateSrc)); + + // Generates iconsNodes files for each icon + generateIconFiles({ + iconNodes: icons, + outputDirectory: OUTPUT_DIR, + template: iconFileTemplate, + showLog: !silent, + iconFileExtension, + pretty: JSON.parse(pretty), + }); + + if (withAliases) { + const aliases = await getAliases(ICONS_DIR); + + generateAliasesFile({ + iconNodes: icons, + aliases, + outputDirectory: OUTPUT_DIR, + fileExtension: aliasesFileExtension, + aliasImportFileExtension, + showLog: !silent, + }); + } + + // Generates entry files for the compiler filled with icons exports + generateExportsFile( + path.join(OUTPUT_DIR, 'icons', exportFileName), + path.join(OUTPUT_DIR, 'icons'), + icons, + importImportFileExtension, + ); +} + +try { + buildIcons(); +} catch (error) { + console.error(error); +} diff --git a/tools/build-icons/package.json b/tools/build-icons/package.json new file mode 100644 index 0000000..e9ad967 --- /dev/null +++ b/tools/build-icons/package.json @@ -0,0 +1,27 @@ +{ + "name": "@lucide/build-icons", + "private": true, + "version": "1.0.0", + "description": "", + "main": "index.mjs", + "type":"module", + "scripts": { + "start": "node ./main.mjs" + }, + "bin": { + "build-icons": "./main.mjs" + }, + "engines": { + "node": ">= 16" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "minimist": "^1.2.7", + "node-fetch": "^3.2.10", + "prettier": "2.7.1", + "svgo": "^3.0.0", + "svgson": "^5.2.1" + } +} diff --git a/tools/build-icons/render/default-attrs.json b/tools/build-icons/render/default-attrs.json new file mode 100644 index 0000000..e57e91b --- /dev/null +++ b/tools/build-icons/render/default-attrs.json @@ -0,0 +1,11 @@ +{ + "xmlns": "http://www.w3.org/2000/svg", + "width": 24, + "height": 24, + "viewBox": "0 0 24 24", + "fill": "none", + "stroke": "currentColor", + "stroke-width": 2, + "stroke-linecap": "round", + "stroke-linejoin": "round" +} diff --git a/tools/build-icons/render/renderIconsObject.mjs b/tools/build-icons/render/renderIconsObject.mjs new file mode 100644 index 0000000..050ee7a --- /dev/null +++ b/tools/build-icons/render/renderIconsObject.mjs @@ -0,0 +1,39 @@ +import { basename } from 'path'; +import { parseSync } from 'svgson'; +import { generateHashedKey, readSvg, hasDuplicatedChildren } from '../../../scripts/helpers.mjs'; + +/** + * Build an object in the format: `{ : }`. + * @param {string[]} svgFiles - A list of filenames. + * @param {Function} getSvg - A function that returns the contents of an SVG file given a filename. + * @returns {Object} + */ +export default (svgFiles, iconsDirectory, renderUniqueKey = false) => + svgFiles + .map((svgFile) => { + const name = basename(svgFile, '.svg'); + const svg = readSvg(svgFile, iconsDirectory); + const contents = parseSync(svg); + + if (!(contents.children && contents.children.length)) { + throw new Error(`${name}.svg has no children!`); + } + + if (hasDuplicatedChildren(contents.children)) { + throw new Error(`Duplicated children in ${name}.svg`); + } + + if (renderUniqueKey) { + contents.children = contents.children.map((child) => { + child.attributes.key = generateHashedKey(child); + + return child; + }); + } + + return { name, contents }; + }) + .reduce((icons, icon) => { + icons[icon.name] = icon.contents; + return icons; + }, {}); diff --git a/tools/build-icons/utils/getAliases.mjs b/tools/build-icons/utils/getAliases.mjs new file mode 100644 index 0000000..91cc379 --- /dev/null +++ b/tools/build-icons/utils/getAliases.mjs @@ -0,0 +1,16 @@ +import path from 'path'; +import { readSvgDirectory } from '../../../scripts/helpers.mjs'; + +async function getAliases(iconDirectory) { + const iconJsons = readSvgDirectory(iconDirectory, '.json'); + const aliasesEntries = await Promise.all( + iconJsons.map(async (jsonFile) => { + const file = await import( path.join(iconDirectory, jsonFile), { assert: { type: 'json' } }); + return [path.basename(jsonFile, '.json'), file.default] + }) + ) + + return Object.fromEntries(aliasesEntries); +} + +export default getAliases diff --git a/tools/rollup-plugins/package.json b/tools/rollup-plugins/package.json index 2747966..a66248e 100644 --- a/tools/rollup-plugins/package.json +++ b/tools/rollup-plugins/package.json @@ -10,6 +10,7 @@ "type": "module", "dependencies": { "@atomico/rollup-plugin-sizes": "^1.1.4", + "@rollup/plugin-replace": "^5.0.1", "esbuild": "^0.15.16", "rollup": "^3.5.1", "rollup-plugin-esbuild": "^4.10.2", diff --git a/tools/rollup-plugins/plugins.js b/tools/rollup-plugins/plugins.js index e9e981a..a04d338 100644 --- a/tools/rollup-plugins/plugins.js +++ b/tools/rollup-plugins/plugins.js @@ -1,13 +1,15 @@ /* eslint-disable import/no-extraneous-dependencies */ -import bundleSize from '@atomico/rollup-plugin-sizes'; import { visualizer } from 'rollup-plugin-visualizer'; +import bundleSize from '@atomico/rollup-plugin-sizes'; +import replace from '@rollup/plugin-replace'; import license from 'rollup-plugin-license'; import esbuild from 'rollup-plugin-esbuild'; -const plugins = (pkg, minify) => +const plugins = (pkg, minify, esbuildOptions = {}) => [ esbuild({ minify, + ...esbuildOptions, }), license({ banner: `${pkg.name} v${pkg.version} - ${pkg.license}`, @@ -19,4 +21,6 @@ const plugins = (pkg, minify) => }), ].filter(Boolean); +export { bundleSize, license, visualizer, replace }; + export default plugins;