From b4cc0d8dffab0e32ebe4c853b7ce296144003119 Mon Sep 17 00:00:00 2001 From: codecalm Date: Thu, 4 Jan 2024 23:57:54 +0100 Subject: [PATCH] react components --- .build/build-icons.mjs | 32 +- .build/helpers.mjs | 15 + .editorconfig | 11 + .gitignore | 3 +- aliases.json | 5 + package.json | 3 +- packages/icons-react/build.mjs | 31 +- packages/icons-react/package.json | 18 +- packages/icons-react/rollup.config.mjs | 68 ++-- packages/icons-react/src/aliases.ts | 3 + .../icons-react/src/createReactComponent.js | 33 -- .../icons-react/src/createReactComponent.ts | 35 ++ ...aultAttributes.js => defaultAttributes.ts} | 0 .../icons-react/src/tabler-icons-react.js | 2 - .../icons-react/src/tabler-icons-react.ts | 8 + packages/icons-react/src/types.ts | 13 + packages/icons-react/tsconfig.json | 23 ++ packages/icons-svelte/build.mjs | 3 + packages/icons-svelte/src/aliases.ts | 104 +---- pnpm-lock.yaml | 355 +++++++++++------- 20 files changed, 412 insertions(+), 353 deletions(-) create mode 100644 .editorconfig create mode 100644 aliases.json create mode 100644 packages/icons-react/src/aliases.ts delete mode 100644 packages/icons-react/src/createReactComponent.js create mode 100644 packages/icons-react/src/createReactComponent.ts rename packages/icons-react/src/{defaultAttributes.js => defaultAttributes.ts} (100%) delete mode 100644 packages/icons-react/src/tabler-icons-react.js create mode 100644 packages/icons-react/src/tabler-icons-react.ts create mode 100644 packages/icons-react/src/types.ts create mode 100644 packages/icons-react/tsconfig.json diff --git a/.build/build-icons.mjs b/.build/build-icons.mjs index 4f854787b..ad73b1bd1 100644 --- a/.build/build-icons.mjs +++ b/.build/build-icons.mjs @@ -1,6 +1,6 @@ import fs from 'fs-extra' import path from 'path' -import { PACKAGES_DIR, readSvgs } from './helpers.mjs' +import { PACKAGES_DIR, readSvgs, readAliases, toPascalCase } from './helpers.mjs' import { stringify } from 'svgson' import prettier from 'prettier' @@ -9,6 +9,9 @@ import { visualizer } from 'rollup-plugin-visualizer' import license from 'rollup-plugin-license' import esbuild from 'rollup-plugin-esbuild' +const svgFiles = readSvgs(), + aliases = readAliases() + /** * Build icons * @@ -26,6 +29,7 @@ export const buildIcons = ({ indexItemTemplate, typeDefinitionsTemplate, indexTypeTemplate, + aliasTemplate, extension = 'js', pretty = true, key = true, @@ -33,8 +37,7 @@ export const buildIcons = ({ pascalName = true, indexFile = 'icons.js' }) => { - const DIST_DIR = path.resolve(PACKAGES_DIR, name), - svgFiles = readSvgs() + const DIST_DIR = path.resolve(PACKAGES_DIR, name); let index = [] let typings = [] @@ -61,8 +64,6 @@ export const buildIcons = ({ return !attributes.d || attributes.d !== 'M0 0h24v24H0z' }) - // process.stdout.write(`Building ${i}/${svgFiles.length}: ${svgFile.name.padEnd(42)}\r`) - let component = componentTemplate({ name: svgFile.name, namePascal: svgFile.namePascal, @@ -71,12 +72,14 @@ export const buildIcons = ({ svg: svgFile }) + // Format component const output = pretty ? prettier.format(component, { singleQuote: true, trailingComma: 'all', parser: 'babel' }) : component + let filePath = path.resolve(DIST_DIR, 'src/icons', `${pascalName ? svgFile.namePascal : svgFile.name}.${extension}`) fs.writeFileSync(filePath, output, 'utf-8') @@ -93,8 +96,27 @@ export const buildIcons = ({ } }) + // Write aliases + if (aliases && aliasTemplate) { + let aliasesStr = ''; + + Object.entries(aliases).forEach(([from, to]) => { + aliasesStr += aliasTemplate({ + from, to, + fromPascal: toPascalCase(from), + toPascal: toPascalCase(to) + }) + }) + + fs.writeFileSync(path.resolve(DIST_DIR, `./src/aliases.ts`), aliasesStr, 'utf-8') + } else { + fs.writeFileSync(path.resolve(DIST_DIR, `./src/aliases.ts`), `export {};`, 'utf-8') + } + + // Write index file fs.writeFileSync(path.resolve(DIST_DIR, `./src/${indexFile}`), index.join('\n'), 'utf-8') + // Write type definitions if (typeDefinitionsTemplate) { fs.ensureDirSync(path.resolve(DIST_DIR, `./dist/`)) fs.writeFileSync(path.resolve(DIST_DIR, `./dist/tabler-${name}.d.ts`), typeDefinitionsTemplate() + '\n' + typings.join('\n'), 'utf-8') diff --git a/.build/helpers.mjs b/.build/helpers.mjs index 9d6367177..026df1808 100644 --- a/.build/helpers.mjs +++ b/.build/helpers.mjs @@ -66,6 +66,21 @@ export const readSvgs = () => { }); } +export const readAliases = () => { + const allAliases = JSON.parse(fs.readFileSync(resolve(HOME_DIR, 'aliases.json'), 'utf-8')), + svgFilesList = readSvgDirectory(ICONS_DIR).map(name => name.replace('.svg', '')); + + let aliases = []; + + for (const [key, value] of Object.entries(allAliases)) { + if (svgFilesList.includes(value)) { + aliases[key] = value; + } + } + + return aliases +} + /** * Read SVG * diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..19d44aaca --- /dev/null +++ b/.editorconfig @@ -0,0 +1,11 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +quote_type = single +max_line_length = 100 diff --git a/.gitignore b/.gitignore index a45a73506..3e1ec4ea5 100644 --- a/.gitignore +++ b/.gitignore @@ -34,5 +34,4 @@ packages/icons*/stats/* packages/icons*/icons/* .turbo -.sass-cache -aliases.json \ No newline at end of file +.sass-cache \ No newline at end of file diff --git a/aliases.json b/aliases.json new file mode 100644 index 000000000..242a989a8 --- /dev/null +++ b/aliases.json @@ -0,0 +1,5 @@ +{ + "aaa": "circle", + "bbb": "square", + "ccc": "square" +} diff --git a/package.json b/package.json index 86052abc1..29bf8e10d 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,8 @@ "parse-svg-path": "^0.1.2", "prettier": "^2.8.1", "release-it": "15.9.3", - "rollup": "2.78.1", + "rollup": "^4.9.2", + "rollup-plugin-dts": "^6.1.0", "rollup-plugin-esbuild": "^4.10.2", "rollup-plugin-filesize": "9.1.2", "rollup-plugin-license": "^3.0.1", diff --git a/packages/icons-react/build.mjs b/packages/icons-react/build.mjs index 71c491cb5..f51a176ed 100644 --- a/packages/icons-react/build.mjs +++ b/packages/icons-react/build.mjs @@ -13,35 +13,16 @@ export default createReactComponent('${name}', '${namePascal}', ${JSON.stringify const indexItemTemplate = ({ name, namePascal -}) => `export { default as ${namePascal} } from './icons/${namePascal}';` - -const typeDefinitionsTemplate = () => `/// -import { SVGAttributes } from 'react' - -declare module '@tabler/icons-react' - -// Create interface extending SVGProps -export interface TablerIconsProps extends Partial, 'stroke'>> { - size?: string | number, - stroke?: string | number -} - -export declare const createReactComponent: (iconName: string, iconNamePascal: string, iconNode: any[]) => (props: TablerIconsProps) => JSX.Element; - -export type Icon = React.FC; - -// Generated icons` - -const indexTypeTemplate = ({ - namePascal -}) => `export declare const ${namePascal}: (props: TablerIconsProps) => JSX.Element;` +}) => `export { default as ${namePascal} } from './${namePascal}';` +const aliasTemplate = ({ fromPascal, toPascal }) => `export { default as Icon${fromPascal} } from './icons/Icon${toPascal}';\n` buildIcons({ name: 'icons-react', componentTemplate, indexItemTemplate, - typeDefinitionsTemplate, - indexTypeTemplate, - pascalCase: true + aliasTemplate, + indexFile: 'icons/index.ts', + pascalCase: true, + extension: 'ts' }) diff --git a/packages/icons-react/package.json b/packages/icons-react/package.json index f83e893fd..04715da1a 100644 --- a/packages/icons-react/package.json +++ b/packages/icons-react/package.json @@ -27,18 +27,19 @@ "dist" ], "scripts": { - "build": "pnpm run clean && pnpm run copy:license && pnpm run build:icons && pnpm run build:bundles", + "build": "pnpm run clean && pnpm run copy:license && pnpm run build:icons && pnpm typecheck && pnpm run build:bundles", "build:icons": "node build.mjs", "build:bundles": "rollup -c ./rollup.config.mjs", "copy:license": "cp ../../LICENSE ./LICENSE", - "clean": "rm -rf dist && rm -rf ./src/icons/*.js", - "test": "pnpm run clean && pnpm run build:icons && jest --env=jsdom" + "clean": "rm -rf dist && rm -rf ./src/icons/*.js && rm -rf ./src/icons/*.ts", + "test": "pnpm run clean && pnpm run build:icons && jest --env=jsdom", + "typecheck": "tsc" }, "dependencies": { - "@tabler/icons": "2.45.0", - "prop-types": "^15.7.2" + "@tabler/icons": "2.45.0" }, "devDependencies": { + "@types/react": "18.2.0", "@babel/preset-env": "7.11.5", "@babel/preset-react": "7.10.4", "@testing-library/react": "^11.2.6", @@ -46,9 +47,10 @@ "jest": "^29.4.1", "jest-environment-jsdom": "^29.4.1", "prop-types": "^15.8.1", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "react-test-renderer": "^17.0.2" + "react": "18.2.0", + "react-dom": "18.2.0", + "react-test-renderer": "18.2.0", + "typescript": "^4.9.5" }, "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0" diff --git a/packages/icons-react/rollup.config.mjs b/packages/icons-react/rollup.config.mjs index 2d3397bf0..c84cee9e0 100644 --- a/packages/icons-react/rollup.config.mjs +++ b/packages/icons-react/rollup.config.mjs @@ -1,12 +1,13 @@ import fs from 'fs' import { getRollupPlugins } from '../../.build/build-icons.mjs' +import dts from "rollup-plugin-dts"; const pkg = JSON.parse(fs.readFileSync('package.json', 'utf-8')) const packageName = '@tabler/icons-react'; const outputFileName = 'tabler-icons-react'; const outputDir = 'dist'; -const inputs = ['./src/tabler-icons-react.js']; +const inputs = ['./src/tabler-icons-react.ts']; const bundles = [ { format: 'umd', @@ -24,11 +25,6 @@ const bundles = [ inputs, outputDir, }, - { - format: 'es', - inputs, - outputDir, - }, { format: 'esm', inputs, @@ -38,30 +34,38 @@ const bundles = [ ]; const configs = bundles - .map(({ inputs, outputDir, format, minify, preserveModules }) => - inputs.map(input => ({ - input, - plugins: getRollupPlugins(pkg, minify), - external: ['react', 'prop-types'], - output: { - name: packageName, - ...(preserveModules - ? { - dir: `${outputDir}/${format}`, - } - : { - file: `${outputDir}/${format}/${outputFileName}${minify ? '.min' : ''}.js`, - }), - format, - sourcemap: true, - preserveModules, - globals: { - react: 'react', - 'prop-types': 'PropTypes' - }, - }, - })), - ) - .flat(); + .map(({ inputs, outputDir, format, minify, preserveModules }) => + inputs.map(input => ({ + input, + plugins: getRollupPlugins(pkg, minify), + external: ['react', 'prop-types'], + output: { + name: packageName, + ...(preserveModules + ? { + dir: `${outputDir}/${format}`, + } + : { + file: `${outputDir}/${format}/${outputFileName}${minify ? '.min' : ''}.js`, + }), + format, + sourcemap: true, + preserveModules, + globals: { + react: 'react', + 'prop-types': 'PropTypes' + }, + }, + })), + ) + .flat(); -export default configs; +export default [ + { + input: inputs[0], + output: [{ + file: `dist/${outputFileName}.d.ts`, format: "es" + }], + plugins: [dts()], + }, + ...configs]; diff --git a/packages/icons-react/src/aliases.ts b/packages/icons-react/src/aliases.ts new file mode 100644 index 000000000..e62d20b61 --- /dev/null +++ b/packages/icons-react/src/aliases.ts @@ -0,0 +1,3 @@ +export { default as IconAaa } from './icons/IconCircle'; +export { default as IconBbb } from './icons/IconSquare'; +export { default as IconCcc } from './icons/IconSquare'; diff --git a/packages/icons-react/src/createReactComponent.js b/packages/icons-react/src/createReactComponent.js deleted file mode 100644 index ebd8d5895..000000000 --- a/packages/icons-react/src/createReactComponent.js +++ /dev/null @@ -1,33 +0,0 @@ -import { forwardRef, createElement } from 'react'; -import PropTypes from 'prop-types'; -import defaultAttributes from './defaultAttributes'; - -export default (iconName, iconNamePascal, iconNode) => { - const Component = forwardRef( - ({ color = 'currentColor', size = 24, stroke = 2, children, ...rest }, ref) => - createElement( - 'svg', - { - ref, - ...defaultAttributes, - width: size, - height: size, - stroke: color, - strokeWidth: stroke, - className: `tabler-icon tabler-icon-${iconName}`, - ...rest, - }, - [...iconNode.map(([tag, attrs]) => createElement(tag, attrs)), ...(children || [])], - ), - ); - - Component.propTypes = { - color: PropTypes.string, - size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), - stroke: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), - }; - - Component.displayName = `${iconNamePascal}`; - - return Component; -}; diff --git a/packages/icons-react/src/createReactComponent.ts b/packages/icons-react/src/createReactComponent.ts new file mode 100644 index 000000000..b20eb496c --- /dev/null +++ b/packages/icons-react/src/createReactComponent.ts @@ -0,0 +1,35 @@ +import { + forwardRef, + createElement, +} from 'react'; +import defaultAttributes from './defaultAttributes'; +import { IconNode, IconProps } from './types'; + +const createReactComponent = (iconName: string, iconNamePascal: string, iconNode: IconNode) => { + const Component = forwardRef( + ({ color = 'currentColor', size = 24, stroke = 2, className = '', children, ...rest }, ref) => + createElement( + 'svg', + { + ref, + ...defaultAttributes, + width: size, + height: size, + stroke: color, + strokeWidth: stroke, + className: [`tabler-icon`, `tabler-icon-${iconName}`, className].join(' '), + ...rest, + }, + [ + ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)), + ...(Array.isArray(children) ? children : [children]), + ] + ) + ); + + Component.displayName = `${iconNamePascal}`; + + return Component; +}; + +export default createReactComponent; diff --git a/packages/icons-react/src/defaultAttributes.js b/packages/icons-react/src/defaultAttributes.ts similarity index 100% rename from packages/icons-react/src/defaultAttributes.js rename to packages/icons-react/src/defaultAttributes.ts diff --git a/packages/icons-react/src/tabler-icons-react.js b/packages/icons-react/src/tabler-icons-react.js deleted file mode 100644 index 31d1f64b8..000000000 --- a/packages/icons-react/src/tabler-icons-react.js +++ /dev/null @@ -1,2 +0,0 @@ -export * from './icons'; -export { default as createReactComponent } from './createReactComponent'; diff --git a/packages/icons-react/src/tabler-icons-react.ts b/packages/icons-react/src/tabler-icons-react.ts new file mode 100644 index 000000000..9bec5acc2 --- /dev/null +++ b/packages/icons-react/src/tabler-icons-react.ts @@ -0,0 +1,8 @@ +export * from './icons/index'; +export * as icons from './icons/index'; +export * from './aliases'; +export { default as createReactComponent } from './createReactComponent'; + +export type { IconNode, IconProps, Icon } from './types'; + + diff --git a/packages/icons-react/src/types.ts b/packages/icons-react/src/types.ts new file mode 100644 index 000000000..04f205a44 --- /dev/null +++ b/packages/icons-react/src/types.ts @@ -0,0 +1,13 @@ + +import { ForwardRefExoticComponent, ReactSVG, SVGProps } from 'react'; + +export type IconNode = [elementName: keyof ReactSVG, attrs: Record][]; + +export type SVGAttributes = Partial>; + +export interface IconProps extends Partial, 'stroke'>> { + size?: string | number; + stroke?: string | number; +} + +export type Icon = ForwardRefExoticComponent; diff --git a/packages/icons-react/tsconfig.json b/packages/icons-react/tsconfig.json new file mode 100644 index 000000000..23e3877e3 --- /dev/null +++ b/packages/icons-react/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "strict": true, + "declaration": false, + "noEmitOnError": true, + "noEmit": true, + "noFallthroughCasesInSwitch": true, + "moduleResolution": "node", + "module": "ESNext", + "target": "ESNext", + "esModuleInterop": true, + "isolatedModules": true, + "lib": ["esnext", "dom"], + "skipLibCheck": true, + "resolveJsonModule": true, + "allowSyntheticDefaultImports": true, + "downlevelIteration": true, + "sourceMap": true, + "outDir": "./dist", + "jsx": "react-jsx" + }, + "exclude": ["**/node_modules"] +} diff --git a/packages/icons-svelte/build.mjs b/packages/icons-svelte/build.mjs index 901fa0cbe..42ca0f3e7 100644 --- a/packages/icons-svelte/build.mjs +++ b/packages/icons-svelte/build.mjs @@ -22,6 +22,8 @@ const iconNode: IconNode = ${JSON.stringify(children)}; `; }; +const aliasTemplate = ({ fromPascal, to }) => `export { default as Icon${fromPascal} } from './icons/${to}.svelte';\n` + const indexItemTemplate = ({ name, namePascal @@ -31,6 +33,7 @@ buildIcons({ name: 'icons-svelte', componentTemplate, indexItemTemplate, + aliasTemplate, extension: 'svelte', pretty: false, key: false, diff --git a/packages/icons-svelte/src/aliases.ts b/packages/icons-svelte/src/aliases.ts index 242315c19..588b6546a 100644 --- a/packages/icons-svelte/src/aliases.ts +++ b/packages/icons-svelte/src/aliases.ts @@ -1,101 +1,3 @@ -export { default as Icon12Hours } from "./icons/12-hours.svelte"; -export { default as Icon123 } from "./icons/123.svelte"; -export { default as Icon24Hours } from "./icons/24-hours.svelte"; -export { default as Icon2fa } from "./icons/2fa.svelte"; -export { default as Icon360View } from "./icons/360-view.svelte"; -export { default as Icon360 } from "./icons/360.svelte"; -export { default as Icon3dCubeSphereOff } from "./icons/3d-cube-sphere-off.svelte"; -export { default as Icon3dCubeSphere } from "./icons/3d-cube-sphere.svelte"; -export { default as Icon3dRotate } from "./icons/3d-rotate.svelte"; -export { default as IconAB2 } from "./icons/a-b-2.svelte"; -export { default as IconABOff } from "./icons/a-b-off.svelte"; -export { default as IconAB } from "./icons/a-b.svelte"; -export { default as IconAbacusOff } from "./icons/abacus-off.svelte"; -export { default as IconAbacus } from "./icons/abacus.svelte"; -export { default as IconAbc } from "./icons/abc.svelte"; -export { default as IconAccessPointOff } from "./icons/access-point-off.svelte"; -export { default as IconAccessPoint } from "./icons/access-point.svelte"; -export { default as IconAccessibleOffFilled } from "./icons/accessible-off-filled.svelte"; -export { default as IconAccessibleOff } from "./icons/accessible-off.svelte"; -export { default as IconAccessible } from "./icons/accessible.svelte"; -export { default as IconActivityHeartbeat } from "./icons/activity-heartbeat.svelte"; -export { default as IconActivity } from "./icons/activity.svelte"; -export { default as IconAd2 } from "./icons/ad-2.svelte"; -export { default as IconAdCircleFilled } from "./icons/ad-circle-filled.svelte"; -export { default as IconAdCircleOff } from "./icons/ad-circle-off.svelte"; -export { default as IconAdCircle } from "./icons/ad-circle.svelte"; -export { default as IconAdFilled } from "./icons/ad-filled.svelte"; -export { default as IconAdOff } from "./icons/ad-off.svelte"; -export { default as IconAd } from "./icons/ad.svelte"; -export { default as IconAddressBookOff } from "./icons/address-book-off.svelte"; -export { default as IconAddressBook } from "./icons/address-book.svelte"; -export { default as IconAdjustmentsAlt } from "./icons/adjustments-alt.svelte"; -export { default as IconAdjustmentsBolt } from "./icons/adjustments-bolt.svelte"; -export { default as IconAdjustmentsCancel } from "./icons/adjustments-cancel.svelte"; -export { default as IconAdjustmentsCheck } from "./icons/adjustments-check.svelte"; -export { default as IconAdjustmentsCode } from "./icons/adjustments-code.svelte"; -export { default as IconAdjustmentsCog } from "./icons/adjustments-cog.svelte"; -export { default as IconAdjustmentsDollar } from "./icons/adjustments-dollar.svelte"; -export { default as IconAdjustmentsDown } from "./icons/adjustments-down.svelte"; -export { default as IconAdjustmentsExclamation } from "./icons/adjustments-exclamation.svelte"; -export { default as IconAdjustmentsFilled } from "./icons/adjustments-filled.svelte"; -export { default as IconAdjustmentsHeart } from "./icons/adjustments-heart.svelte"; -export { default as IconAdjustmentsHorizontal } from "./icons/adjustments-horizontal.svelte"; -export { default as IconAdjustmentsMinus } from "./icons/adjustments-minus.svelte"; -export { default as IconAdjustmentsOff } from "./icons/adjustments-off.svelte"; -export { default as IconAdjustmentsPause } from "./icons/adjustments-pause.svelte"; -export { default as IconAdjustmentsPin } from "./icons/adjustments-pin.svelte"; -export { default as IconAdjustmentsPlus } from "./icons/adjustments-plus.svelte"; -export { default as IconAdjustmentsQuestion } from "./icons/adjustments-question.svelte"; -export { default as IconAdjustmentsSearch } from "./icons/adjustments-search.svelte"; -export { default as IconAdjustmentsShare } from "./icons/adjustments-share.svelte"; -export { default as IconAdjustmentsStar } from "./icons/adjustments-star.svelte"; -export { default as IconAdjustmentsUp } from "./icons/adjustments-up.svelte"; -export { default as IconAdjustmentsX } from "./icons/adjustments-x.svelte"; -export { default as IconAdjustments } from "./icons/adjustments.svelte"; -export { default as IconAerialLift } from "./icons/aerial-lift.svelte"; -export { default as IconAffiliateFilled } from "./icons/affiliate-filled.svelte"; -export { default as IconAffiliate } from "./icons/affiliate.svelte"; -export { default as IconAirBalloon } from "./icons/air-balloon.svelte"; -export { default as IconAirConditioningDisabled } from "./icons/air-conditioning-disabled.svelte"; -export { default as IconAirConditioning } from "./icons/air-conditioning.svelte"; -export { default as IconAirTrafficControl } from "./icons/air-traffic-control.svelte"; -export { default as IconAlarmAverage } from "./icons/alarm-average.svelte"; -export { default as IconAlarmFilled } from "./icons/alarm-filled.svelte"; -export { default as IconAlarmMinusFilled } from "./icons/alarm-minus-filled.svelte"; -export { default as IconAlarmMinus } from "./icons/alarm-minus.svelte"; -export { default as IconAlarmOff } from "./icons/alarm-off.svelte"; -export { default as IconAlarmPlusFilled } from "./icons/alarm-plus-filled.svelte"; -export { default as IconAlarmPlus } from "./icons/alarm-plus.svelte"; -export { default as IconAlarmSnoozeFilled } from "./icons/alarm-snooze-filled.svelte"; -export { default as IconAlarmSnooze } from "./icons/alarm-snooze.svelte"; -export { default as IconAlarm } from "./icons/alarm.svelte"; -export { default as IconAlbumOff } from "./icons/album-off.svelte"; -export { default as IconAlbum } from "./icons/album.svelte"; -export { default as IconAlertCircleFilled } from "./icons/alert-circle-filled.svelte"; -export { default as IconAlertCircleOff } from "./icons/alert-circle-off.svelte"; -export { default as IconAlertCircle } from "./icons/alert-circle.svelte"; -export { default as IconAlertHexagonFilled } from "./icons/alert-hexagon-filled.svelte"; -export { default as IconAlertHexagonOff } from "./icons/alert-hexagon-off.svelte"; -export { default as IconAlertHexagon } from "./icons/alert-hexagon.svelte"; -export { default as IconAlertOctagonFilled } from "./icons/alert-octagon-filled.svelte"; -export { default as IconAlertOctagon } from "./icons/alert-octagon.svelte"; -export { default as IconAlertSmallOff } from "./icons/alert-small-off.svelte"; -export { default as IconAlertSmall } from "./icons/alert-small.svelte"; -export { default as IconAlertSquareFilled } from "./icons/alert-square-filled.svelte"; -export { default as IconAlertSquareRoundedFilled } from "./icons/alert-square-rounded-filled.svelte"; -export { default as IconAlertSquareRoundedOff } from "./icons/alert-square-rounded-off.svelte"; -export { default as IconAlertSquareRounded } from "./icons/alert-square-rounded.svelte"; -export { default as IconAlertSquare } from "./icons/alert-square.svelte"; -export { default as IconAlertTriangleFilled } from "./icons/alert-triangle-filled.svelte"; -export { default as IconAlertTriangleOff } from "./icons/alert-triangle-off.svelte"; -export { default as IconAlertTriangle } from "./icons/alert-triangle.svelte"; -export { default as IconAlienFilled } from "./icons/alien-filled.svelte"; -export { default as IconAlien } from "./icons/alien.svelte"; -export { default as IconAlignBoxBottomCenterFilled } from "./icons/align-box-bottom-center-filled.svelte"; -export { default as IconAlignBoxBottomCenter } from "./icons/align-box-bottom-center.svelte"; -export { default as IconAlignBoxBottomLeftFilled } from "./icons/align-box-bottom-left-filled.svelte"; -export { default as IconAlignBoxBottomLeft } from "./icons/align-box-bottom-left.svelte"; -export { default as IconAlignBoxBottomRightFilled } from "./icons/align-box-bottom-right-filled.svelte"; -export { default as IconAlignBoxBottomRight } from "./icons/align-box-bottom-right.svelte"; -export { default as IconAlignBoxCenterBottom } from "./icons/align-box-center-bottom.svelte"; +export { default as IconAaa } from './icons/circle.svelte'; +export { default as IconBbb } from './icons/square.svelte'; +export { default as IconCcc } from './icons/square.svelte'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b53d9f8ad..593849632 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: devDependencies: '@atomico/rollup-plugin-sizes': specifier: ^1.1.4 - version: 1.1.4(rollup@2.78.1) + version: 1.1.4(rollup@4.9.2) '@babel/cli': specifier: ^7.20.7 version: 7.20.7(@babel/core@7.11.6) @@ -34,13 +34,13 @@ importers: version: 3.2.0(release-it@15.9.3) '@rollup/plugin-babel': specifier: 5.2.1 - version: 5.2.1(@babel/core@7.11.6)(rollup@2.78.1) + version: 5.2.1(@babel/core@7.11.6)(rollup@4.9.2) '@rollup/plugin-commonjs': specifier: 15.1.0 - version: 15.1.0(rollup@2.78.1) + version: 15.1.0(rollup@4.9.2) '@rollup/plugin-node-resolve': specifier: 9.0.0 - version: 9.0.0(rollup@2.78.1) + version: 9.0.0(rollup@4.9.2) '@svgr/babel-plugin-replace-jsx-attribute-value': specifier: 5.0.1 version: 5.0.1 @@ -90,29 +90,32 @@ importers: specifier: 15.9.3 version: 15.9.3 rollup: - specifier: 2.78.1 - version: 2.78.1 + specifier: ^4.9.2 + version: 4.9.2 + rollup-plugin-dts: + specifier: ^6.1.0 + version: 6.1.0(rollup@4.9.2)(typescript@5.3.3) rollup-plugin-esbuild: specifier: ^4.10.2 - version: 4.10.3(esbuild@0.17.5)(rollup@2.78.1) + version: 4.10.3(esbuild@0.17.5)(rollup@4.9.2) rollup-plugin-filesize: specifier: 9.1.2 version: 9.1.2 rollup-plugin-license: specifier: ^3.0.1 - version: 3.0.1(rollup@2.78.1) + version: 3.0.1(rollup@4.9.2) rollup-plugin-peer-deps-external: specifier: 2.2.4 - version: 2.2.4(rollup@2.78.1) + version: 2.2.4(rollup@4.9.2) rollup-plugin-rename: specifier: ^1.0.1 - version: 1.0.1(rollup@2.78.1) + version: 1.0.1(rollup@4.9.2) rollup-plugin-terser: specifier: 7.0.2 - version: 7.0.2(rollup@2.78.1) + version: 7.0.2(rollup@4.9.2) rollup-plugin-visualizer: specifier: ^5.8.3 - version: 5.9.0(rollup@2.78.1) + version: 5.9.0(rollup@4.9.2) svg-outline-stroke: specifier: 1.3.1 version: 1.3.1 @@ -195,9 +198,6 @@ importers: '@tabler/icons': specifier: 2.45.0 version: link:../icons - prop-types: - specifier: ^15.7.2 - version: 15.8.1 devDependencies: '@babel/preset-env': specifier: 7.11.5 @@ -207,7 +207,10 @@ importers: version: 7.10.4(@babel/core@7.11.6) '@testing-library/react': specifier: ^11.2.6 - version: 11.2.7(react-dom@17.0.2)(react@17.0.2) + version: 11.2.7(react-dom@18.2.0)(react@18.2.0) + '@types/react': + specifier: 18.2.0 + version: 18.2.0 babel-jest: specifier: ^29.4.1 version: 29.4.2(@babel/core@7.11.6) @@ -217,15 +220,21 @@ importers: jest-environment-jsdom: specifier: ^29.4.1 version: 29.4.2 + prop-types: + specifier: ^15.8.1 + version: 15.8.1 react: - specifier: ^17.0.2 - version: 17.0.2 + specifier: 18.2.0 + version: 18.2.0 react-dom: - specifier: ^17.0.2 - version: 17.0.2(react@17.0.2) + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) react-test-renderer: - specifier: ^17.0.2 - version: 17.0.2(react@17.0.2) + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) + typescript: + specifier: ^4.9.5 + version: 4.9.5 packages/icons-solidjs: dependencies: @@ -327,7 +336,7 @@ importers: version: 3.2.45 vue-jest: specifier: ^5.0.0-alpha.10 - version: 5.0.0-alpha.10(@babel/core@7.11.6)(babel-jest@29.4.2)(jest@29.4.2)(vue@3.2.45) + version: 5.0.0-alpha.10(@babel/core@7.11.6)(babel-jest@29.4.2)(jest@29.4.2)(typescript@5.3.3)(vue@3.2.45) packages/icons-webfont: dependencies: @@ -402,10 +411,7 @@ importers: dependencies: '@tabler/icons-svelte': specifier: 2.45.0 - version: 2.45.0(svelte@4.2.8) - lucide-svelte: - specifier: ^0.304.0 - version: 0.304.0(svelte@4.2.8) + version: link:../../packages/icons-svelte devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^3.0.1 @@ -418,7 +424,7 @@ importers: version: 4.2.8 svelte-check: specifier: ^3.6.2 - version: 3.6.2(svelte@4.2.8) + version: 3.6.2(@babel/core@7.11.6)(svelte@4.2.8) tslib: specifier: ^2.6.2 version: 2.6.2 @@ -467,15 +473,16 @@ packages: dependencies: '@jridgewell/gen-mapping': 0.3.2 '@jridgewell/trace-mapping': 0.3.20 + dev: true - /@atomico/rollup-plugin-sizes@1.1.4(rollup@2.78.1): + /@atomico/rollup-plugin-sizes@1.1.4(rollup@4.9.2): resolution: {integrity: sha512-ilxLw9hT+kWXIx8mYoAFLA2eIVfLrsnabPCaGo5Mkrj8qxhEkZvFddcnH2HTp/hDKFEIJRpZVpXecsPp3FOdRw==} peerDependencies: rollup: 1.x || 2.x dependencies: brotli-size: 4.0.0 gzip-size: 5.1.1 - rollup: 2.78.1 + rollup: 4.9.2 simple-string-table: 1.0.0 dev: true @@ -506,6 +513,16 @@ packages: '@babel/highlight': 7.18.6 dev: true + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} + engines: {node: '>=6.9.0'} + requiresBuild: true + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + dev: true + optional: true + /@babel/compat-data@7.20.10: resolution: {integrity: sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==} engines: {node: '>=6.9.0'} @@ -833,6 +850,13 @@ packages: resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + requiresBuild: true + dev: true + optional: true + /@babel/helper-validator-option@7.18.6: resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} engines: {node: '>=6.9.0'} @@ -870,6 +894,17 @@ packages: js-tokens: 4.0.0 dev: true + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + engines: {node: '>=6.9.0'} + requiresBuild: true + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + optional: true + /@babel/parser@7.11.5: resolution: {integrity: sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==} engines: {node: '>=6.0.0'} @@ -3865,14 +3900,17 @@ packages: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.20 + dev: true /@jridgewell/resolve-uri@3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} + dev: true /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} + dev: true /@jridgewell/source-map@0.3.2: resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} @@ -3887,6 +3925,7 @@ packages: /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true /@jridgewell/trace-mapping@0.3.17: resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} @@ -3900,6 +3939,7 @@ packages: dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.15 + dev: true /@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3: resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==} @@ -4215,7 +4255,7 @@ packages: yaml: 2.2.1 dev: true - /@rollup/plugin-babel@5.2.1(@babel/core@7.11.6)(rollup@2.78.1): + /@rollup/plugin-babel@5.2.1(@babel/core@7.11.6)(rollup@4.9.2): resolution: {integrity: sha512-Jd7oqFR2dzZJ3NWANDyBjwTtX/lYbZpVcmkHrfQcpvawHs9E4c0nYk5U2mfZ6I/DZcIvy506KZJi54XK/jxH7A==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -4228,42 +4268,42 @@ packages: dependencies: '@babel/core': 7.11.6 '@babel/helper-module-imports': 7.18.6 - '@rollup/pluginutils': 3.1.0(rollup@2.78.1) - rollup: 2.78.1 + '@rollup/pluginutils': 3.1.0(rollup@4.9.2) + rollup: 4.9.2 dev: true - /@rollup/plugin-commonjs@15.1.0(rollup@2.78.1): + /@rollup/plugin-commonjs@15.1.0(rollup@4.9.2): resolution: {integrity: sha512-xCQqz4z/o0h2syQ7d9LskIMvBSH4PX5PjYdpSSvgS+pQik3WahkQVNWg3D8XJeYjZoVWnIUQYDghuEMRGrmQYQ==} engines: {node: '>= 8.0.0'} peerDependencies: rollup: ^2.22.0 dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.78.1) + '@rollup/pluginutils': 3.1.0(rollup@4.9.2) commondir: 1.0.1 estree-walker: 2.0.2 glob: 7.2.3 is-reference: 1.2.1 magic-string: 0.25.9 resolve: 1.22.1 - rollup: 2.78.1 + rollup: 4.9.2 dev: true - /@rollup/plugin-node-resolve@9.0.0(rollup@2.78.1): + /@rollup/plugin-node-resolve@9.0.0(rollup@4.9.2): resolution: {integrity: sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg==} engines: {node: '>= 10.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.78.1) + '@rollup/pluginutils': 3.1.0(rollup@4.9.2) '@types/resolve': 1.17.1 builtin-modules: 3.3.0 deepmerge: 4.2.2 is-module: 1.0.0 resolve: 1.22.1 - rollup: 2.78.1 + rollup: 4.9.2 dev: true - /@rollup/pluginutils@3.1.0(rollup@2.78.1): + /@rollup/pluginutils@3.1.0(rollup@4.9.2): resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} engines: {node: '>= 8.0.0'} peerDependencies: @@ -4272,7 +4312,7 @@ packages: '@types/estree': 0.0.39 estree-walker: 1.0.1 picomatch: 2.3.1 - rollup: 2.78.1 + rollup: 4.9.2 dev: true /@rollup/pluginutils@4.2.1: @@ -4598,19 +4638,6 @@ packages: defer-to-connect: 2.0.1 dev: true - /@tabler/icons-svelte@2.45.0(svelte@4.2.8): - resolution: {integrity: sha512-NfPuOWyBhqDQr4wweg89nM8KEvwQIBjJwENoaQOjals1GpH3C9rshkNEFFk5mrnYlUZERuwg2qm29B7aNnbQ9A==} - peerDependencies: - svelte: '>=3 <5' - dependencies: - '@tabler/icons': 2.45.0 - svelte: 4.2.8 - dev: false - - /@tabler/icons@2.45.0: - resolution: {integrity: sha512-J10UDghOni9wlrj5CpKAzychDCABCKYq897mGg0wGFsd+tYLaUdz0dt/HZeGnV8gZJo0hIiTPLGwBp5EW42Qsg==} - dev: false - /@testing-library/dom@7.31.2: resolution: {integrity: sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ==} engines: {node: '>=10'} @@ -4707,7 +4734,7 @@ packages: preact: 10.11.3 dev: true - /@testing-library/react@11.2.7(react-dom@17.0.2)(react@17.0.2): + /@testing-library/react@11.2.7(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-tzRNp7pzd5QmbtXNG/mhdcl7Awfu/Iz1RaVHY75zTdOkmHCuzMhRL83gWHSgOAcjS3CCbyfwUHMZgRJb4kAfpA==} engines: {node: '>=10'} peerDependencies: @@ -4716,8 +4743,8 @@ packages: dependencies: '@babel/runtime': 7.20.7 '@testing-library/dom': 7.31.2 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: true /@testing-library/svelte@4.0.2(svelte@4.0.1): @@ -4814,6 +4841,7 @@ packages: /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true /@types/graceful-fs@4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} @@ -4895,7 +4923,7 @@ packages: /@types/react-dom@18.0.10: resolution: {integrity: sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg==} dependencies: - '@types/react': 18.0.26 + '@types/react': 18.2.0 dev: true /@types/react@18.0.26: @@ -4906,6 +4934,14 @@ packages: csstype: 3.1.1 dev: true + /@types/react@18.2.0: + resolution: {integrity: sha512-0FLj93y5USLHdnhIhABk83rm8XEGA7kH3cr+YUlvxoUGp1xNt/DINUMvqPxLyOQMzLmZe8i4RTHbvb8MC7NmrA==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.2 + csstype: 3.1.1 + dev: true + /@types/resolve@1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: @@ -5155,6 +5191,7 @@ packages: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true + dev: true /adm-zip@0.5.10: resolution: {integrity: sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==} @@ -5320,6 +5357,7 @@ packages: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} dependencies: dequal: 2.0.3 + dev: true /array-find-index@1.0.2: resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==} @@ -5406,6 +5444,7 @@ packages: resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} dependencies: dequal: 2.0.3 + dev: true /babel-jest@29.4.2(@babel/core@7.11.6): resolution: {integrity: sha512-vcghSqhtowXPG84posYkkkzcZsdayFkubUgbE3/1tuGbX7AQtwCkkNA/wIbB0BMjuCPoqTkiDyKN7Ty7d3uwNQ==} @@ -6088,6 +6127,7 @@ packages: acorn: 8.11.3 estree-walker: 3.0.3 periscopic: 3.1.0 + dev: true /collect-v8-coverage@1.0.1: resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} @@ -6108,6 +6148,7 @@ packages: /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + requiresBuild: true dev: true /color-name@1.1.4: @@ -6323,6 +6364,7 @@ packages: dependencies: mdn-data: 2.0.30 source-map-js: 1.0.2 + dev: true /css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} @@ -6599,6 +6641,7 @@ packages: /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + dev: true /detect-indent@6.1.0: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} @@ -7022,6 +7065,7 @@ packages: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: '@types/estree': 1.0.5 + dev: true /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} @@ -7288,14 +7332,6 @@ packages: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - /fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -8184,6 +8220,7 @@ packages: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} dependencies: '@types/estree': 1.0.5 + dev: true /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} @@ -8590,7 +8627,7 @@ packages: micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /jest-leak-detector@29.4.2: @@ -9121,6 +9158,7 @@ packages: /locate-character@3.0.0: resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + dev: true /locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} @@ -9208,14 +9246,6 @@ packages: engines: {node: '>=12'} dev: true - /lucide-svelte@0.304.0(svelte@4.2.8): - resolution: {integrity: sha512-DknYGA5R8QCcEWxgxYial9YKuHtLi4Hj7QSlwliJCt0qF9Lbq+6EMnVYcq3sI9xsTZrbYtso2WG34RPAsI2RVA==} - peerDependencies: - svelte: '>=3 <5' - dependencies: - svelte: 4.2.8 - dev: false - /lz-string@1.4.4: resolution: {integrity: sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==} hasBin: true @@ -9250,6 +9280,7 @@ packages: engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + dev: true /make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} @@ -9346,6 +9377,7 @@ packages: /mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + dev: true /meow@9.0.0: resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} @@ -9942,6 +9974,7 @@ packages: /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + dev: true /object-inspect@1.12.2: resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} @@ -10315,6 +10348,7 @@ packages: '@types/estree': 1.0.5 estree-walker: 3.0.3 is-reference: 3.0.2 + dev: true /phin@2.9.3: resolution: {integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==} @@ -10503,7 +10537,7 @@ packages: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 - dev: false + dev: true /proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} @@ -10609,17 +10643,6 @@ packages: strip-json-comments: 2.0.1 dev: true - /react-dom@17.0.2(react@17.0.2): - resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==} - peerDependencies: - react: 17.0.2 - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react: 17.0.2 - scheduler: 0.20.2 - dev: true - /react-dom@18.2.0(react@18.2.0): resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: @@ -10628,11 +10651,10 @@ packages: loose-envify: 1.4.0 react: 18.2.0 scheduler: 0.23.0 - dev: false /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - dev: false + dev: true /react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} @@ -10647,34 +10669,25 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-shallow-renderer@16.15.0(react@17.0.2): + /react-shallow-renderer@16.15.0(react@18.2.0): resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==} peerDependencies: react: ^16.0.0 || ^17.0.0 || ^18.0.0 dependencies: object-assign: 4.1.1 - react: 17.0.2 + react: 18.2.0 react-is: 18.2.0 dev: true - /react-test-renderer@17.0.2(react@17.0.2): - resolution: {integrity: sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==} + /react-test-renderer@18.2.0(react@18.2.0): + resolution: {integrity: sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA==} peerDependencies: - react: 17.0.2 + react: ^18.2.0 dependencies: - object-assign: 4.1.1 - react: 17.0.2 - react-is: 17.0.2 - react-shallow-renderer: 16.15.0(react@17.0.2) - scheduler: 0.20.2 - dev: true - - /react@17.0.2: - resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} - engines: {node: '>=0.10.0'} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 + react: 18.2.0 + react-is: 18.2.0 + react-shallow-renderer: 16.15.0(react@18.2.0) + scheduler: 0.23.0 dev: true /react@18.2.0: @@ -10682,7 +10695,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 - dev: false /read-package-json-fast@2.0.3: resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==} @@ -11009,7 +11021,21 @@ packages: glob: 7.2.3 dev: true - /rollup-plugin-esbuild@4.10.3(esbuild@0.17.5)(rollup@2.78.1): + /rollup-plugin-dts@6.1.0(rollup@4.9.2)(typescript@5.3.3): + resolution: {integrity: sha512-ijSCPICkRMDKDLBK9torss07+8dl9UpY9z1N/zTeA1cIqdzMlpkV3MOOC7zukyvQfDyxa1s3Dl2+DeiP/G6DOw==} + engines: {node: '>=16'} + peerDependencies: + rollup: ^3.29.4 || ^4 + typescript: ^4.5 || ^5.0 + dependencies: + magic-string: 0.30.5 + rollup: 4.9.2 + typescript: 5.3.3 + optionalDependencies: + '@babel/code-frame': 7.23.5 + dev: true + + /rollup-plugin-esbuild@4.10.3(esbuild@0.17.5)(rollup@4.9.2): resolution: {integrity: sha512-RILwUCgnCL5vo8vyZ/ZpwcqRuE5KmLizEv6BujBQfgXFZ6ggcS0FiYvQN+gsTJfWCMaU37l0Fosh4eEufyO97Q==} engines: {node: '>=12'} peerDependencies: @@ -11022,7 +11048,7 @@ packages: esbuild: 0.17.5 joycon: 3.1.1 jsonc-parser: 3.2.0 - rollup: 2.78.1 + rollup: 4.9.2 transitivePeerDependencies: - supports-color dev: true @@ -11044,7 +11070,7 @@ packages: - supports-color dev: true - /rollup-plugin-license@3.0.1(rollup@2.78.1): + /rollup-plugin-license@3.0.1(rollup@4.9.2): resolution: {integrity: sha512-/lec6Y94Y3wMfTDeYTO/jSXII0GQ/XkDZCiqkMKxyU5D5nGPaxr/2JNYvAgYsoCYuOLGOanKDPjCCQiTT96p7A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -11057,42 +11083,42 @@ packages: mkdirp: 1.0.4 moment: 2.29.4 package-name-regex: 2.0.6 - rollup: 2.78.1 + rollup: 4.9.2 spdx-expression-validate: 2.0.0 spdx-satisfies: 5.0.1 dev: true - /rollup-plugin-peer-deps-external@2.2.4(rollup@2.78.1): + /rollup-plugin-peer-deps-external@2.2.4(rollup@4.9.2): resolution: {integrity: sha512-AWdukIM1+k5JDdAqV/Cxd+nejvno2FVLVeZ74NKggm3Q5s9cbbcOgUPGdbxPi4BXu7xGaZ8HG12F+thImYu/0g==} peerDependencies: rollup: '*' dependencies: - rollup: 2.78.1 + rollup: 4.9.2 dev: true - /rollup-plugin-rename@1.0.1(rollup@2.78.1): + /rollup-plugin-rename@1.0.1(rollup@4.9.2): resolution: {integrity: sha512-gISyKmUmIMNcHASejxuxFWOSjnAM5ehqiMo0o0xnmCnguwojYXRZ6maM9xhlYKZ8PPCAo1oTSyC79wiI0LKX5g==} dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.78.1) + '@rollup/pluginutils': 3.1.0(rollup@4.9.2) estree-walker: 2.0.2 magic-string: 0.25.9 transitivePeerDependencies: - rollup dev: true - /rollup-plugin-terser@7.0.2(rollup@2.78.1): + /rollup-plugin-terser@7.0.2(rollup@4.9.2): resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} peerDependencies: rollup: ^2.0.0 dependencies: '@babel/code-frame': 7.18.6 jest-worker: 26.6.2 - rollup: 2.78.1 + rollup: 4.9.2 serialize-javascript: 4.0.0 terser: 5.16.1 dev: true - /rollup-plugin-visualizer@5.9.0(rollup@2.78.1): + /rollup-plugin-visualizer@5.9.0(rollup@4.9.2): resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==} engines: {node: '>=14'} hasBin: true @@ -11104,25 +11130,17 @@ packages: dependencies: open: 8.4.0 picomatch: 2.3.1 - rollup: 2.78.1 + rollup: 4.9.2 source-map: 0.7.4 yargs: 17.6.2 dev: true - /rollup@2.78.1: - resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==} - engines: {node: '>=10.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.2 - dev: true - /rollup@3.9.1: resolution: {integrity: sha512-GswCYHXftN8ZKGVgQhTFUJB/NBXxrRGgO2NCy6E8s1rwEJ4Q9/VttNqcYfEvx4dTo4j58YqdC3OVztPzlKSX8w==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /rollup@4.9.2: @@ -11238,18 +11256,10 @@ packages: xmlchars: 2.2.0 dev: true - /scheduler@0.20.2: - resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - dev: true - /scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: loose-envify: 1.4.0 - dev: false /scss-tokenizer@0.4.3: resolution: {integrity: sha512-raKLgf1LI5QMQnG+RxHz6oK0sL3x3I4FN2UDLqgLOGO8hodECNnNh5BXn7fAyBxrA8zVzdQizQ6XjNJQ+uBwMw==} @@ -11799,8 +11809,8 @@ packages: picocolors: 1.0.0 sade: 1.8.1 svelte: 4.0.1 - svelte-preprocess: 5.0.4(@babel/core@7.11.6)(svelte@4.0.1)(typescript@5.1.6) - typescript: 5.1.6 + svelte-preprocess: 5.0.4(@babel/core@7.11.6)(svelte@4.0.1)(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - '@babel/core' - coffeescript @@ -11813,7 +11823,7 @@ packages: - sugarss dev: true - /svelte-check@3.6.2(svelte@4.2.8): + /svelte-check@3.6.2(@babel/core@7.11.6)(svelte@4.2.8): resolution: {integrity: sha512-E6iFh4aUCGJLRz6QZXH3gcN/VFfkzwtruWSRmlKrLWQTiO6VzLsivR6q02WYLGNAGecV3EocqZuCDrC2uttZ0g==} hasBin: true peerDependencies: @@ -11826,7 +11836,7 @@ packages: picocolors: 1.0.0 sade: 1.8.1 svelte: 4.2.8 - svelte-preprocess: 5.1.3(svelte@4.2.8)(typescript@5.3.3) + svelte-preprocess: 5.1.3(@babel/core@7.11.6)(svelte@4.2.8)(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - '@babel/core' @@ -11906,7 +11916,55 @@ packages: typescript: 5.1.6 dev: true - /svelte-preprocess@5.1.3(svelte@4.2.8)(typescript@5.3.3): + /svelte-preprocess@5.0.4(@babel/core@7.11.6)(svelte@4.0.1)(typescript@5.3.3): + resolution: {integrity: sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==} + engines: {node: '>= 14.10.0'} + requiresBuild: true + peerDependencies: + '@babel/core': ^7.10.2 + coffeescript: ^2.5.1 + less: ^3.11.3 || ^4.0.0 + postcss: ^7 || ^8 + postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 + pug: ^3.0.0 + sass: ^1.26.8 + stylus: ^0.55.0 + sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 + svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 + typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' + peerDependenciesMeta: + '@babel/core': + optional: true + coffeescript: + optional: true + less: + optional: true + postcss: + optional: true + postcss-load-config: + optional: true + pug: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + typescript: + optional: true + dependencies: + '@babel/core': 7.11.6 + '@types/pug': 2.0.6 + detect-indent: 6.1.0 + magic-string: 0.27.0 + sorcery: 0.11.0 + strip-indent: 3.0.0 + svelte: 4.0.1 + typescript: 5.3.3 + dev: true + + /svelte-preprocess@5.1.3(@babel/core@7.11.6)(svelte@4.2.8)(typescript@5.3.3): resolution: {integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==} engines: {node: '>= 16.0.0', pnpm: ^8.0.0} requiresBuild: true @@ -11944,6 +12002,7 @@ packages: typescript: optional: true dependencies: + '@babel/core': 7.11.6 '@types/pug': 2.0.6 detect-indent: 6.1.0 magic-string: 0.30.5 @@ -12001,6 +12060,7 @@ packages: locate-character: 3.0.0 magic-string: 0.30.5 periscopic: 3.1.0 + dev: true /svg-outline-stroke@1.3.1: resolution: {integrity: sha512-nfSJw3wFJCB8lVupuhD4SZjExZS72W2CF4QDr9tHRxXlbmTUqWKU3uDMMf3EIgryC6Pl458G+Ct9jesM5NUBXQ==} @@ -12317,6 +12377,12 @@ packages: hasBin: true dev: true + /typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + /typescript@5.1.6: resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} engines: {node: '>=14.17'} @@ -12591,7 +12657,7 @@ packages: resolve: 1.22.1 rollup: 3.9.1 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /vite@5.0.10: @@ -12660,7 +12726,7 @@ packages: acorn-walk: 8.2.0 dev: true - /vue-jest@5.0.0-alpha.10(@babel/core@7.11.6)(babel-jest@29.4.2)(jest@29.4.2)(vue@3.2.45): + /vue-jest@5.0.0-alpha.10(@babel/core@7.11.6)(babel-jest@29.4.2)(jest@29.4.2)(typescript@5.3.3)(vue@3.2.45): resolution: {integrity: sha512-iN62cTi4AL0UsgxEyVeJtHG6qXEv+8Ci2wX1vP3b/dAZvyBRmqy5aJHQrP6VCEuio+HgHQ1LAZ+ccM2pouBmlg==} peerDependencies: '@babel/core': 7.x @@ -12684,6 +12750,7 @@ packages: jest: 29.4.2 source-map: 0.5.6 tsconfig: 7.0.0 + typescript: 5.3.3 vue: 3.2.45 transitivePeerDependencies: - supports-color