diff --git a/.changeset/README.md b/.changeset/README.md new file mode 100644 index 00000000..e5b6d8d6 --- /dev/null +++ b/.changeset/README.md @@ -0,0 +1,8 @@ +# Changesets + +Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works +with multi-package repos, or single-package repos to help you version and publish your code. You can +find the full documentation for it [in our repository](https://github.com/changesets/changesets) + +We have a quick list of common questions to get you started engaging with this project in +[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 00000000..d88011f6 --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json", + "changelog": "@changesets/cli/changelog", + "commit": false, + "fixed": [], + "linked": [], + "access": "restricted", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "ignore": [] +} diff --git a/packages/eslint/src/index.ts b/packages/eslint/src/index.ts index 36f22512..9a31d583 100644 --- a/packages/eslint/src/index.ts +++ b/packages/eslint/src/index.ts @@ -17,6 +17,7 @@ export const overridesStylisticConfig: Exclude['overrides'] = { 'ts/consistent-type-exports': 'error', 'ts/consistent-type-imports': 'error', - "ts/consistent-type-definitions": [ - "error", - "type" - ], + 'ts/consistent-type-definitions': [ + 'error', + 'type' + ], 'ts/naming-convention': [ 'warn', { diff --git a/packages/ui/icons/.gitignore b/packages/ui/icons/.gitignore new file mode 100644 index 00000000..8efad032 --- /dev/null +++ b/packages/ui/icons/.gitignore @@ -0,0 +1,28 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# Artifacts +/*.d.ts +/*.jsx \ No newline at end of file diff --git a/packages/ui/icons/CHANGELOG.md b/packages/ui/icons/CHANGELOG.md new file mode 100644 index 00000000..60b3b628 --- /dev/null +++ b/packages/ui/icons/CHANGELOG.md @@ -0,0 +1,13 @@ +# @flippo/icons + +## 1.0.2 + +### Patch Changes + +- Fixed exports from package. + +## 1.0.1 + +### Patch Changes + +- First release. diff --git a/packages/ui/icons/README.md b/packages/ui/icons/README.md new file mode 100644 index 00000000..6bb524fe --- /dev/null +++ b/packages/ui/icons/README.md @@ -0,0 +1,3 @@ +# Flippo Icons + +This package contains a set of React SVG icons used in the Flippo project. diff --git a/packages/ui/icons/eslint.config.js b/packages/ui/icons/eslint.config.js new file mode 100644 index 00000000..bed54eaa --- /dev/null +++ b/packages/ui/icons/eslint.config.js @@ -0,0 +1,3 @@ +import { eslintReactConfig } from '@flippo/eslint'; + +export default eslintReactConfig(import.meta.dirname); diff --git a/packages/ui/icons/lib/AddRowAbove.tsx b/packages/ui/icons/lib/AddRowAbove.tsx new file mode 100644 index 00000000..8a8f3f6b --- /dev/null +++ b/packages/ui/icons/lib/AddRowAbove.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const AddRowAbove = (props: SVGProps) => ; +export default AddRowAbove; diff --git a/packages/ui/icons/lib/AddRowBelow.tsx b/packages/ui/icons/lib/AddRowBelow.tsx new file mode 100644 index 00000000..5387bf02 --- /dev/null +++ b/packages/ui/icons/lib/AddRowBelow.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const AddRowBelow = (props: SVGProps) => ; +export default AddRowBelow; diff --git a/packages/ui/icons/lib/AddSquare.tsx b/packages/ui/icons/lib/AddSquare.tsx new file mode 100644 index 00000000..b177471d --- /dev/null +++ b/packages/ui/icons/lib/AddSquare.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const AddSquare = (props: SVGProps) => ; +export default AddSquare; diff --git a/packages/ui/icons/lib/Arrow360.tsx b/packages/ui/icons/lib/Arrow360.tsx new file mode 100644 index 00000000..37ec35a2 --- /dev/null +++ b/packages/ui/icons/lib/Arrow360.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Arrow360 = (props: SVGProps) => ; +export default Arrow360; diff --git a/packages/ui/icons/lib/ArrowBack.tsx b/packages/ui/icons/lib/ArrowBack.tsx new file mode 100644 index 00000000..8a9cedf4 --- /dev/null +++ b/packages/ui/icons/lib/ArrowBack.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ArrowBack = (props: SVGProps) => ; +export default ArrowBack; diff --git a/packages/ui/icons/lib/ArrowDownToSquare.tsx b/packages/ui/icons/lib/ArrowDownToSquare.tsx new file mode 100644 index 00000000..f760c731 --- /dev/null +++ b/packages/ui/icons/lib/ArrowDownToSquare.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ArrowDownToSquare = (props: SVGProps) => ; +export default ArrowDownToSquare; diff --git a/packages/ui/icons/lib/ArrowLeftArrowRight.tsx b/packages/ui/icons/lib/ArrowLeftArrowRight.tsx new file mode 100644 index 00000000..75b912f7 --- /dev/null +++ b/packages/ui/icons/lib/ArrowLeftArrowRight.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ArrowLeftArrowRight = (props: SVGProps) => ; +export default ArrowLeftArrowRight; diff --git a/packages/ui/icons/lib/ArrowOutward.tsx b/packages/ui/icons/lib/ArrowOutward.tsx new file mode 100644 index 00000000..dc8a74a9 --- /dev/null +++ b/packages/ui/icons/lib/ArrowOutward.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ArrowOutward = (props: SVGProps) => ; +export default ArrowOutward; diff --git a/packages/ui/icons/lib/ArrowRightFromSquare.tsx b/packages/ui/icons/lib/ArrowRightFromSquare.tsx new file mode 100644 index 00000000..28e8cb5d --- /dev/null +++ b/packages/ui/icons/lib/ArrowRightFromSquare.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ArrowRightFromSquare = (props: SVGProps) => ; +export default ArrowRightFromSquare; diff --git a/packages/ui/icons/lib/ArrowRightToSquare.tsx b/packages/ui/icons/lib/ArrowRightToSquare.tsx new file mode 100644 index 00000000..d46e6b85 --- /dev/null +++ b/packages/ui/icons/lib/ArrowRightToSquare.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ArrowRightToSquare = (props: SVGProps) => ; +export default ArrowRightToSquare; diff --git a/packages/ui/icons/lib/ArrowShapeTurnUpRight.tsx b/packages/ui/icons/lib/ArrowShapeTurnUpRight.tsx new file mode 100644 index 00000000..027244f0 --- /dev/null +++ b/packages/ui/icons/lib/ArrowShapeTurnUpRight.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ArrowShapeTurnUpRight = (props: SVGProps) => ; +export default ArrowShapeTurnUpRight; diff --git a/packages/ui/icons/lib/ArrowShapeTurnUpRightCheck.tsx b/packages/ui/icons/lib/ArrowShapeTurnUpRightCheck.tsx new file mode 100644 index 00000000..5530fa44 --- /dev/null +++ b/packages/ui/icons/lib/ArrowShapeTurnUpRightCheck.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ArrowShapeTurnUpRightCheck = (props: SVGProps) => ; +export default ArrowShapeTurnUpRightCheck; diff --git a/packages/ui/icons/lib/ArrowUpArrowDown.tsx b/packages/ui/icons/lib/ArrowUpArrowDown.tsx new file mode 100644 index 00000000..dad8a3d6 --- /dev/null +++ b/packages/ui/icons/lib/ArrowUpArrowDown.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ArrowUpArrowDown = (props: SVGProps) => ; +export default ArrowUpArrowDown; diff --git a/packages/ui/icons/lib/ArrowUturnCcwLeft.tsx b/packages/ui/icons/lib/ArrowUturnCcwLeft.tsx new file mode 100644 index 00000000..96e9726e --- /dev/null +++ b/packages/ui/icons/lib/ArrowUturnCcwLeft.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ArrowUturnCcwLeft = (props: SVGProps) => ; +export default ArrowUturnCcwLeft; diff --git a/packages/ui/icons/lib/ArrowUturnCwRight.tsx b/packages/ui/icons/lib/ArrowUturnCwRight.tsx new file mode 100644 index 00000000..edce0c22 --- /dev/null +++ b/packages/ui/icons/lib/ArrowUturnCwRight.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ArrowUturnCwRight = (props: SVGProps) => ; +export default ArrowUturnCwRight; diff --git a/packages/ui/icons/lib/ArrowsRotateRightAdd.tsx b/packages/ui/icons/lib/ArrowsRotateRightAdd.tsx new file mode 100644 index 00000000..50b374b1 --- /dev/null +++ b/packages/ui/icons/lib/ArrowsRotateRightAdd.tsx @@ -0,0 +1,14 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +function ArrowsRotateRightAdd(props: SVGProps) { + return ( + + + + + + + ); +} +export default ArrowsRotateRightAdd; diff --git a/packages/ui/icons/lib/ArrowsRotateRightCheck.tsx b/packages/ui/icons/lib/ArrowsRotateRightCheck.tsx new file mode 100644 index 00000000..f57d01da --- /dev/null +++ b/packages/ui/icons/lib/ArrowsRotateRightCheck.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ArrowsRotateRightCheck = (props: SVGProps) => ; +export default ArrowsRotateRightCheck; diff --git a/packages/ui/icons/lib/AttachFile.tsx b/packages/ui/icons/lib/AttachFile.tsx new file mode 100644 index 00000000..7181444e --- /dev/null +++ b/packages/ui/icons/lib/AttachFile.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const AttachFile = (props: SVGProps) => ; +export default AttachFile; diff --git a/packages/ui/icons/lib/Bookmark.tsx b/packages/ui/icons/lib/Bookmark.tsx new file mode 100644 index 00000000..bde19398 --- /dev/null +++ b/packages/ui/icons/lib/Bookmark.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Bookmark = (props: SVGProps) => ; +export default Bookmark; diff --git a/packages/ui/icons/lib/BookmarkFill.tsx b/packages/ui/icons/lib/BookmarkFill.tsx new file mode 100644 index 00000000..ed27ac7d --- /dev/null +++ b/packages/ui/icons/lib/BookmarkFill.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const BookmarkFill = (props: SVGProps) => ; +export default BookmarkFill; diff --git a/packages/ui/icons/lib/Bookmarks.tsx b/packages/ui/icons/lib/Bookmarks.tsx new file mode 100644 index 00000000..220fd904 --- /dev/null +++ b/packages/ui/icons/lib/Bookmarks.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Bookmarks = (props: SVGProps) => ; +export default Bookmarks; diff --git a/packages/ui/icons/lib/Check.tsx b/packages/ui/icons/lib/Check.tsx new file mode 100644 index 00000000..a289c7a4 --- /dev/null +++ b/packages/ui/icons/lib/Check.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Check = (props: SVGProps) => ; +export default Check; diff --git a/packages/ui/icons/lib/ChevronDown.tsx b/packages/ui/icons/lib/ChevronDown.tsx new file mode 100644 index 00000000..4c3ae030 --- /dev/null +++ b/packages/ui/icons/lib/ChevronDown.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ChevronDown = (props: SVGProps) => ; +export default ChevronDown; diff --git a/packages/ui/icons/lib/ChevronDownToLine.tsx b/packages/ui/icons/lib/ChevronDownToLine.tsx new file mode 100644 index 00000000..39506292 --- /dev/null +++ b/packages/ui/icons/lib/ChevronDownToLine.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ChevronDownToLine = (props: SVGProps) => ; +export default ChevronDownToLine; diff --git a/packages/ui/icons/lib/ChevronLeft.tsx b/packages/ui/icons/lib/ChevronLeft.tsx new file mode 100644 index 00000000..b773f582 --- /dev/null +++ b/packages/ui/icons/lib/ChevronLeft.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ChevronLeft = (props: SVGProps) => ; +export default ChevronLeft; diff --git a/packages/ui/icons/lib/ChevronRight.tsx b/packages/ui/icons/lib/ChevronRight.tsx new file mode 100644 index 00000000..4a7e7e6b --- /dev/null +++ b/packages/ui/icons/lib/ChevronRight.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ChevronRight = (props: SVGProps) => ; +export default ChevronRight; diff --git a/packages/ui/icons/lib/ChevronUp.tsx b/packages/ui/icons/lib/ChevronUp.tsx new file mode 100644 index 00000000..3de881e2 --- /dev/null +++ b/packages/ui/icons/lib/ChevronUp.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ChevronUp = (props: SVGProps) => ; +export default ChevronUp; diff --git a/packages/ui/icons/lib/ChevronUpToLine.tsx b/packages/ui/icons/lib/ChevronUpToLine.tsx new file mode 100644 index 00000000..74a7f41b --- /dev/null +++ b/packages/ui/icons/lib/ChevronUpToLine.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ChevronUpToLine = (props: SVGProps) => ; +export default ChevronUpToLine; diff --git a/packages/ui/icons/lib/ChevronsCollapseUpRight.tsx b/packages/ui/icons/lib/ChevronsCollapseUpRight.tsx new file mode 100644 index 00000000..b31f63e9 --- /dev/null +++ b/packages/ui/icons/lib/ChevronsCollapseUpRight.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ChevronsCollapseUpRight = (props: SVGProps) => ; +export default ChevronsCollapseUpRight; diff --git a/packages/ui/icons/lib/ChevronsExpandUpRight.tsx b/packages/ui/icons/lib/ChevronsExpandUpRight.tsx new file mode 100644 index 00000000..1da37aec --- /dev/null +++ b/packages/ui/icons/lib/ChevronsExpandUpRight.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ChevronsExpandUpRight = (props: SVGProps) => ; +export default ChevronsExpandUpRight; diff --git a/packages/ui/icons/lib/CircleCheck.tsx b/packages/ui/icons/lib/CircleCheck.tsx new file mode 100644 index 00000000..01878914 --- /dev/null +++ b/packages/ui/icons/lib/CircleCheck.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const CircleCheck = (props: SVGProps) => ; +export default CircleCheck; diff --git a/packages/ui/icons/lib/CircleCheckFill.tsx b/packages/ui/icons/lib/CircleCheckFill.tsx new file mode 100644 index 00000000..7e5eabfa --- /dev/null +++ b/packages/ui/icons/lib/CircleCheckFill.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const CircleCheckFill = (props: SVGProps) => ; +export default CircleCheckFill; diff --git a/packages/ui/icons/lib/CircleInfo.tsx b/packages/ui/icons/lib/CircleInfo.tsx new file mode 100644 index 00000000..d93df20c --- /dev/null +++ b/packages/ui/icons/lib/CircleInfo.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const CircleInfo = (props: SVGProps) => ; +export default CircleInfo; diff --git a/packages/ui/icons/lib/CircleInfoFill.tsx b/packages/ui/icons/lib/CircleInfoFill.tsx new file mode 100644 index 00000000..57b2a07e --- /dev/null +++ b/packages/ui/icons/lib/CircleInfoFill.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const CircleInfoFill = (props: SVGProps) => ; +export default CircleInfoFill; diff --git a/packages/ui/icons/lib/CircleXmark.tsx b/packages/ui/icons/lib/CircleXmark.tsx new file mode 100644 index 00000000..e0cb42a9 --- /dev/null +++ b/packages/ui/icons/lib/CircleXmark.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const CircleXmark = (props: SVGProps) => ; +export default CircleXmark; diff --git a/packages/ui/icons/lib/CircleXmarkFill.tsx b/packages/ui/icons/lib/CircleXmarkFill.tsx new file mode 100644 index 00000000..6f6c13a6 --- /dev/null +++ b/packages/ui/icons/lib/CircleXmarkFill.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const CircleXmarkFill = (props: SVGProps) => ; +export default CircleXmarkFill; diff --git a/packages/ui/icons/lib/Clipboard.tsx b/packages/ui/icons/lib/Clipboard.tsx new file mode 100644 index 00000000..31ac9e9d --- /dev/null +++ b/packages/ui/icons/lib/Clipboard.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Clipboard = (props: SVGProps) => ; +export default Clipboard; diff --git a/packages/ui/icons/lib/Clock40.tsx b/packages/ui/icons/lib/Clock40.tsx new file mode 100644 index 00000000..0e633563 --- /dev/null +++ b/packages/ui/icons/lib/Clock40.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Clock40 = (props: SVGProps) => ; +export default Clock40; diff --git a/packages/ui/icons/lib/Clock60.tsx b/packages/ui/icons/lib/Clock60.tsx new file mode 100644 index 00000000..2a9383af --- /dev/null +++ b/packages/ui/icons/lib/Clock60.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Clock60 = (props: SVGProps) => ; +export default Clock60; diff --git a/packages/ui/icons/lib/ClockArrowRotateCcwLeft.tsx b/packages/ui/icons/lib/ClockArrowRotateCcwLeft.tsx new file mode 100644 index 00000000..0e819bf6 --- /dev/null +++ b/packages/ui/icons/lib/ClockArrowRotateCcwLeft.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ClockArrowRotateCcwLeft = (props: SVGProps) => ; +export default ClockArrowRotateCcwLeft; diff --git a/packages/ui/icons/lib/CodeBlock.tsx b/packages/ui/icons/lib/CodeBlock.tsx new file mode 100644 index 00000000..fc57e8cb --- /dev/null +++ b/packages/ui/icons/lib/CodeBlock.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const CodeBlock = (props: SVGProps) => ; +export default CodeBlock; diff --git a/packages/ui/icons/lib/Copy.tsx b/packages/ui/icons/lib/Copy.tsx new file mode 100644 index 00000000..12c03c0f --- /dev/null +++ b/packages/ui/icons/lib/Copy.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Copy = (props: SVGProps) => ; +export default Copy; diff --git a/packages/ui/icons/lib/Delete.tsx b/packages/ui/icons/lib/Delete.tsx new file mode 100644 index 00000000..78a89932 --- /dev/null +++ b/packages/ui/icons/lib/Delete.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Delete = (props: SVGProps) => ; +export default Delete; diff --git a/packages/ui/icons/lib/DeleteXmark.tsx b/packages/ui/icons/lib/DeleteXmark.tsx new file mode 100644 index 00000000..bbcfe3ef --- /dev/null +++ b/packages/ui/icons/lib/DeleteXmark.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const DeleteXmark = (props: SVGProps) => ; +export default DeleteXmark; diff --git a/packages/ui/icons/lib/DotsHorizontal.tsx b/packages/ui/icons/lib/DotsHorizontal.tsx new file mode 100644 index 00000000..cc68c79f --- /dev/null +++ b/packages/ui/icons/lib/DotsHorizontal.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const DotsHorizontal = (props: SVGProps) => ; +export default DotsHorizontal; diff --git a/packages/ui/icons/lib/DotsVertical.tsx b/packages/ui/icons/lib/DotsVertical.tsx new file mode 100644 index 00000000..62090f0f --- /dev/null +++ b/packages/ui/icons/lib/DotsVertical.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const DotsVertical = (props: SVGProps) => ; +export default DotsVertical; diff --git a/packages/ui/icons/lib/Equal.tsx b/packages/ui/icons/lib/Equal.tsx new file mode 100644 index 00000000..9197e687 --- /dev/null +++ b/packages/ui/icons/lib/Equal.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Equal = (props: SVGProps) => ; +export default Equal; diff --git a/packages/ui/icons/lib/Explore.tsx b/packages/ui/icons/lib/Explore.tsx new file mode 100644 index 00000000..4c2c35b1 --- /dev/null +++ b/packages/ui/icons/lib/Explore.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Explore = (props: SVGProps) => ; +export default Explore; diff --git a/packages/ui/icons/lib/ExploreFill.tsx b/packages/ui/icons/lib/ExploreFill.tsx new file mode 100644 index 00000000..132899e8 --- /dev/null +++ b/packages/ui/icons/lib/ExploreFill.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ExploreFill = (props: SVGProps) => ; +export default ExploreFill; diff --git a/packages/ui/icons/lib/Favorite.tsx b/packages/ui/icons/lib/Favorite.tsx new file mode 100644 index 00000000..cf2beec5 --- /dev/null +++ b/packages/ui/icons/lib/Favorite.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Favorite = (props: SVGProps) => ; +export default Favorite; diff --git a/packages/ui/icons/lib/FavoriteFill.tsx b/packages/ui/icons/lib/FavoriteFill.tsx new file mode 100644 index 00000000..11c8d089 --- /dev/null +++ b/packages/ui/icons/lib/FavoriteFill.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const FavoriteFill = (props: SVGProps) => ; +export default FavoriteFill; diff --git a/packages/ui/icons/lib/File.tsx b/packages/ui/icons/lib/File.tsx new file mode 100644 index 00000000..5c0901a2 --- /dev/null +++ b/packages/ui/icons/lib/File.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const File = (props: SVGProps) => ; +export default File; diff --git a/packages/ui/icons/lib/FileAdd.tsx b/packages/ui/icons/lib/FileAdd.tsx new file mode 100644 index 00000000..9b1859a2 --- /dev/null +++ b/packages/ui/icons/lib/FileAdd.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const FileAdd = (props: SVGProps) => ; +export default FileAdd; diff --git a/packages/ui/icons/lib/FileCheck.tsx b/packages/ui/icons/lib/FileCheck.tsx new file mode 100644 index 00000000..7349254a --- /dev/null +++ b/packages/ui/icons/lib/FileCheck.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const FileCheck = (props: SVGProps) => ; +export default FileCheck; diff --git a/packages/ui/icons/lib/FileCheckFill.tsx b/packages/ui/icons/lib/FileCheckFill.tsx new file mode 100644 index 00000000..b6427dfe --- /dev/null +++ b/packages/ui/icons/lib/FileCheckFill.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const FileCheckFill = (props: SVGProps) => ; +export default FileCheckFill; diff --git a/packages/ui/icons/lib/Filter.tsx b/packages/ui/icons/lib/Filter.tsx new file mode 100644 index 00000000..3a7f8acf --- /dev/null +++ b/packages/ui/icons/lib/Filter.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Filter = (props: SVGProps) => ; +export default Filter; diff --git a/packages/ui/icons/lib/FilterFill.tsx b/packages/ui/icons/lib/FilterFill.tsx new file mode 100644 index 00000000..643211c5 --- /dev/null +++ b/packages/ui/icons/lib/FilterFill.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const FilterFill = (props: SVGProps) => ; +export default FilterFill; diff --git a/packages/ui/icons/lib/FlagRu.tsx b/packages/ui/icons/lib/FlagRu.tsx new file mode 100644 index 00000000..b0a89183 --- /dev/null +++ b/packages/ui/icons/lib/FlagRu.tsx @@ -0,0 +1,28 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +function FlagRu(props: SVGProps) { + return ( + + + + + + + + + + + ); +} +export default FlagRu; diff --git a/packages/ui/icons/lib/FlagUk.tsx b/packages/ui/icons/lib/FlagUk.tsx new file mode 100644 index 00000000..40fbe53b --- /dev/null +++ b/packages/ui/icons/lib/FlagUk.tsx @@ -0,0 +1,28 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +function FlagUk(props: SVGProps) { + return ( + + + + + + + + + + + ); +} +export default FlagUk; diff --git a/packages/ui/icons/lib/Folder.tsx b/packages/ui/icons/lib/Folder.tsx new file mode 100644 index 00000000..4c0aedb1 --- /dev/null +++ b/packages/ui/icons/lib/Folder.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Folder = (props: SVGProps) => ; +export default Folder; diff --git a/packages/ui/icons/lib/FolderAdd.tsx b/packages/ui/icons/lib/FolderAdd.tsx new file mode 100644 index 00000000..7ccb7782 --- /dev/null +++ b/packages/ui/icons/lib/FolderAdd.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const FolderAdd = (props: SVGProps) => ; +export default FolderAdd; diff --git a/packages/ui/icons/lib/FolderFill.tsx b/packages/ui/icons/lib/FolderFill.tsx new file mode 100644 index 00000000..6dfe0380 --- /dev/null +++ b/packages/ui/icons/lib/FolderFill.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const FolderFill = (props: SVGProps) => ; +export default FolderFill; diff --git a/packages/ui/icons/lib/FolderOpen.tsx b/packages/ui/icons/lib/FolderOpen.tsx new file mode 100644 index 00000000..2ab15f70 --- /dev/null +++ b/packages/ui/icons/lib/FolderOpen.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const FolderOpen = (props: SVGProps) => ; +export default FolderOpen; diff --git a/packages/ui/icons/lib/FolderOpenFill.tsx b/packages/ui/icons/lib/FolderOpenFill.tsx new file mode 100644 index 00000000..66211f7e --- /dev/null +++ b/packages/ui/icons/lib/FolderOpenFill.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const FolderOpenFill = (props: SVGProps) => ; +export default FolderOpenFill; diff --git a/packages/ui/icons/lib/Folders.tsx b/packages/ui/icons/lib/Folders.tsx new file mode 100644 index 00000000..294d5437 --- /dev/null +++ b/packages/ui/icons/lib/Folders.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Folders = (props: SVGProps) => ; +export default Folders; diff --git a/packages/ui/icons/lib/FormatBold.tsx b/packages/ui/icons/lib/FormatBold.tsx new file mode 100644 index 00000000..9e8fce06 --- /dev/null +++ b/packages/ui/icons/lib/FormatBold.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const FormatBold = (props: SVGProps) => ; +export default FormatBold; diff --git a/packages/ui/icons/lib/FormatItalic.tsx b/packages/ui/icons/lib/FormatItalic.tsx new file mode 100644 index 00000000..a572aa36 --- /dev/null +++ b/packages/ui/icons/lib/FormatItalic.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const FormatItalic = (props: SVGProps) => ; +export default FormatItalic; diff --git a/packages/ui/icons/lib/FormatListOl.tsx b/packages/ui/icons/lib/FormatListOl.tsx new file mode 100644 index 00000000..a69bd7a1 --- /dev/null +++ b/packages/ui/icons/lib/FormatListOl.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const FormatListOl = (props: SVGProps) => ; +export default FormatListOl; diff --git a/packages/ui/icons/lib/FormatListUl.tsx b/packages/ui/icons/lib/FormatListUl.tsx new file mode 100644 index 00000000..4e6a2f07 --- /dev/null +++ b/packages/ui/icons/lib/FormatListUl.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const FormatListUl = (props: SVGProps) => ; +export default FormatListUl; diff --git a/packages/ui/icons/lib/FormatUndeline.tsx b/packages/ui/icons/lib/FormatUndeline.tsx new file mode 100644 index 00000000..d4362fd7 --- /dev/null +++ b/packages/ui/icons/lib/FormatUndeline.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const FormatUndeline = (props: SVGProps) => ; +export default FormatUndeline; diff --git a/packages/ui/icons/lib/Fullscreen.tsx b/packages/ui/icons/lib/Fullscreen.tsx new file mode 100644 index 00000000..2d0c0d66 --- /dev/null +++ b/packages/ui/icons/lib/Fullscreen.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Fullscreen = (props: SVGProps) => ; +export default Fullscreen; diff --git a/packages/ui/icons/lib/Funnel.tsx b/packages/ui/icons/lib/Funnel.tsx new file mode 100644 index 00000000..b408b931 --- /dev/null +++ b/packages/ui/icons/lib/Funnel.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Funnel = (props: SVGProps) => ; +export default Funnel; diff --git a/packages/ui/icons/lib/Globe.tsx b/packages/ui/icons/lib/Globe.tsx new file mode 100644 index 00000000..f549baea --- /dev/null +++ b/packages/ui/icons/lib/Globe.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Globe = (props: SVGProps) => ; +export default Globe; diff --git a/packages/ui/icons/lib/GlobeAdd.tsx b/packages/ui/icons/lib/GlobeAdd.tsx new file mode 100644 index 00000000..902e41dd --- /dev/null +++ b/packages/ui/icons/lib/GlobeAdd.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const GlobeAdd = (props: SVGProps) => ; +export default GlobeAdd; diff --git a/packages/ui/icons/lib/Google.tsx b/packages/ui/icons/lib/Google.tsx new file mode 100644 index 00000000..b32547f9 --- /dev/null +++ b/packages/ui/icons/lib/Google.tsx @@ -0,0 +1,14 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +function Google(props: SVGProps) { + return ( + + + + + + + ); +} +export default Google; diff --git a/packages/ui/icons/lib/Grip.tsx b/packages/ui/icons/lib/Grip.tsx new file mode 100644 index 00000000..3301fd98 --- /dev/null +++ b/packages/ui/icons/lib/Grip.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Grip = (props: SVGProps) => ; +export default Grip; diff --git a/packages/ui/icons/lib/Hint.tsx b/packages/ui/icons/lib/Hint.tsx new file mode 100644 index 00000000..f885be5e --- /dev/null +++ b/packages/ui/icons/lib/Hint.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Hint = (props: SVGProps) => ; +export default Hint; diff --git a/packages/ui/icons/lib/HintAdd.tsx b/packages/ui/icons/lib/HintAdd.tsx new file mode 100644 index 00000000..97e37393 --- /dev/null +++ b/packages/ui/icons/lib/HintAdd.tsx @@ -0,0 +1,14 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +function HintAdd(props: SVGProps) { + return ( + + + + + + + ); +} +export default HintAdd; diff --git a/packages/ui/icons/lib/HintSlash.tsx b/packages/ui/icons/lib/HintSlash.tsx new file mode 100644 index 00000000..8ed8e441 --- /dev/null +++ b/packages/ui/icons/lib/HintSlash.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const HintSlash = (props: SVGProps) => ; +export default HintSlash; diff --git a/packages/ui/icons/lib/Home.tsx b/packages/ui/icons/lib/Home.tsx new file mode 100644 index 00000000..7ffaa194 --- /dev/null +++ b/packages/ui/icons/lib/Home.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Home = (props: SVGProps) => ; +export default Home; diff --git a/packages/ui/icons/lib/HomeFill.tsx b/packages/ui/icons/lib/HomeFill.tsx new file mode 100644 index 00000000..78b16e6b --- /dev/null +++ b/packages/ui/icons/lib/HomeFill.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const HomeFill = (props: SVGProps) => ; +export default HomeFill; diff --git a/packages/ui/icons/lib/Interests.tsx b/packages/ui/icons/lib/Interests.tsx new file mode 100644 index 00000000..030e7785 --- /dev/null +++ b/packages/ui/icons/lib/Interests.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Interests = (props: SVGProps) => ; +export default Interests; diff --git a/packages/ui/icons/lib/InterestsFill.tsx b/packages/ui/icons/lib/InterestsFill.tsx new file mode 100644 index 00000000..84a41e29 --- /dev/null +++ b/packages/ui/icons/lib/InterestsFill.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const InterestsFill = (props: SVGProps) => ; +export default InterestsFill; diff --git a/packages/ui/icons/lib/Language.tsx b/packages/ui/icons/lib/Language.tsx new file mode 100644 index 00000000..6532b79b --- /dev/null +++ b/packages/ui/icons/lib/Language.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Language = (props: SVGProps) => ; +export default Language; diff --git a/packages/ui/icons/lib/Learn.tsx b/packages/ui/icons/lib/Learn.tsx new file mode 100644 index 00000000..58a7710a --- /dev/null +++ b/packages/ui/icons/lib/Learn.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Learn = (props: SVGProps) => ; +export default Learn; diff --git a/packages/ui/icons/lib/Link.tsx b/packages/ui/icons/lib/Link.tsx new file mode 100644 index 00000000..80b7d878 --- /dev/null +++ b/packages/ui/icons/lib/Link.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Link = (props: SVGProps) => ; +export default Link; diff --git a/packages/ui/icons/lib/LinkAdd.tsx b/packages/ui/icons/lib/LinkAdd.tsx new file mode 100644 index 00000000..e3414b02 --- /dev/null +++ b/packages/ui/icons/lib/LinkAdd.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const LinkAdd = (props: SVGProps) => ; +export default LinkAdd; diff --git a/packages/ui/icons/lib/LinkSlash.tsx b/packages/ui/icons/lib/LinkSlash.tsx new file mode 100644 index 00000000..20645ac1 --- /dev/null +++ b/packages/ui/icons/lib/LinkSlash.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const LinkSlash = (props: SVGProps) => ; +export default LinkSlash; diff --git a/packages/ui/icons/lib/ListAdd.tsx b/packages/ui/icons/lib/ListAdd.tsx new file mode 100644 index 00000000..2cac847f --- /dev/null +++ b/packages/ui/icons/lib/ListAdd.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const ListAdd = (props: SVGProps) => ; +export default ListAdd; diff --git a/packages/ui/icons/lib/Magnifier.tsx b/packages/ui/icons/lib/Magnifier.tsx new file mode 100644 index 00000000..944606e5 --- /dev/null +++ b/packages/ui/icons/lib/Magnifier.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Magnifier = (props: SVGProps) => ; +export default Magnifier; diff --git a/packages/ui/icons/lib/MailAol.tsx b/packages/ui/icons/lib/MailAol.tsx new file mode 100644 index 00000000..dc926e19 --- /dev/null +++ b/packages/ui/icons/lib/MailAol.tsx @@ -0,0 +1,18 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +function MailAol(props: SVGProps) { + return ( + + + + + + + + + + + ); +} +export default MailAol; diff --git a/packages/ui/icons/lib/MailGmail.tsx b/packages/ui/icons/lib/MailGmail.tsx new file mode 100644 index 00000000..61c53922 --- /dev/null +++ b/packages/ui/icons/lib/MailGmail.tsx @@ -0,0 +1,15 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +function MailGmail(props: SVGProps) { + return ( + + + + + + + + ); +} +export default MailGmail; diff --git a/packages/ui/icons/lib/MailIcloud.tsx b/packages/ui/icons/lib/MailIcloud.tsx new file mode 100644 index 00000000..ce2934d8 --- /dev/null +++ b/packages/ui/icons/lib/MailIcloud.tsx @@ -0,0 +1,48 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +function MailIcloud(props: SVGProps) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} +export default MailIcloud; diff --git a/packages/ui/icons/lib/MailMail.tsx b/packages/ui/icons/lib/MailMail.tsx new file mode 100644 index 00000000..8dc4a44c --- /dev/null +++ b/packages/ui/icons/lib/MailMail.tsx @@ -0,0 +1,15 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +function MailMail(props: SVGProps) { + return ( + + + + + + + + ); +} +export default MailMail; diff --git a/packages/ui/icons/lib/MailOutlook.tsx b/packages/ui/icons/lib/MailOutlook.tsx new file mode 100644 index 00000000..139e3b27 --- /dev/null +++ b/packages/ui/icons/lib/MailOutlook.tsx @@ -0,0 +1,25 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +function MailOutlook(props: SVGProps) { + return ( + + + + + + + + + + + + + + + + + + ); +} +export default MailOutlook; diff --git a/packages/ui/icons/lib/MailProton.tsx b/packages/ui/icons/lib/MailProton.tsx new file mode 100644 index 00000000..5158c118 --- /dev/null +++ b/packages/ui/icons/lib/MailProton.tsx @@ -0,0 +1,12 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +function MailProton(props: SVGProps) { + return ( + + + + + ); +} +export default MailProton; diff --git a/packages/ui/icons/lib/MailYahoo.tsx b/packages/ui/icons/lib/MailYahoo.tsx new file mode 100644 index 00000000..e01db515 --- /dev/null +++ b/packages/ui/icons/lib/MailYahoo.tsx @@ -0,0 +1,15 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +function MailYahoo(props: SVGProps) { + return ( + + + + + + + + ); +} +export default MailYahoo; diff --git a/packages/ui/icons/lib/MailYandex.tsx b/packages/ui/icons/lib/MailYandex.tsx new file mode 100644 index 00000000..b3ff0feb --- /dev/null +++ b/packages/ui/icons/lib/MailYandex.tsx @@ -0,0 +1,23 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +function MailYandex(props: SVGProps) { + return ( + + + + + + + + + + + + + + + + ); +} +export default MailYandex; diff --git a/packages/ui/icons/lib/Minus.tsx b/packages/ui/icons/lib/Minus.tsx new file mode 100644 index 00000000..8c09577c --- /dev/null +++ b/packages/ui/icons/lib/Minus.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Minus = (props: SVGProps) => ; +export default Minus; diff --git a/packages/ui/icons/lib/MoveToFolder.tsx b/packages/ui/icons/lib/MoveToFolder.tsx new file mode 100644 index 00000000..c76e67d3 --- /dev/null +++ b/packages/ui/icons/lib/MoveToFolder.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const MoveToFolder = (props: SVGProps) => ; +export default MoveToFolder; diff --git a/packages/ui/icons/lib/Notifications.tsx b/packages/ui/icons/lib/Notifications.tsx new file mode 100644 index 00000000..b46e6897 --- /dev/null +++ b/packages/ui/icons/lib/Notifications.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Notifications = (props: SVGProps) => ; +export default Notifications; diff --git a/packages/ui/icons/lib/Pencil.tsx b/packages/ui/icons/lib/Pencil.tsx new file mode 100644 index 00000000..4b6037ad --- /dev/null +++ b/packages/ui/icons/lib/Pencil.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Pencil = (props: SVGProps) => ; +export default Pencil; diff --git a/packages/ui/icons/lib/PersonAdd.tsx b/packages/ui/icons/lib/PersonAdd.tsx new file mode 100644 index 00000000..c49678ac --- /dev/null +++ b/packages/ui/icons/lib/PersonAdd.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const PersonAdd = (props: SVGProps) => ; +export default PersonAdd; diff --git a/packages/ui/icons/lib/PersonCheck.tsx b/packages/ui/icons/lib/PersonCheck.tsx new file mode 100644 index 00000000..47e7279a --- /dev/null +++ b/packages/ui/icons/lib/PersonCheck.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const PersonCheck = (props: SVGProps) => ; +export default PersonCheck; diff --git a/packages/ui/icons/lib/PersonCheckFill.tsx b/packages/ui/icons/lib/PersonCheckFill.tsx new file mode 100644 index 00000000..07aab18f --- /dev/null +++ b/packages/ui/icons/lib/PersonCheckFill.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const PersonCheckFill = (props: SVGProps) => ; +export default PersonCheckFill; diff --git a/packages/ui/icons/lib/PersonEdit.tsx b/packages/ui/icons/lib/PersonEdit.tsx new file mode 100644 index 00000000..06bc419a --- /dev/null +++ b/packages/ui/icons/lib/PersonEdit.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const PersonEdit = (props: SVGProps) => ; +export default PersonEdit; diff --git a/packages/ui/icons/lib/PersonEditFill.tsx b/packages/ui/icons/lib/PersonEditFill.tsx new file mode 100644 index 00000000..f6f0e95c --- /dev/null +++ b/packages/ui/icons/lib/PersonEditFill.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const PersonEditFill = (props: SVGProps) => ; +export default PersonEditFill; diff --git a/packages/ui/icons/lib/PersonGroup.tsx b/packages/ui/icons/lib/PersonGroup.tsx new file mode 100644 index 00000000..29fc5dd1 --- /dev/null +++ b/packages/ui/icons/lib/PersonGroup.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const PersonGroup = (props: SVGProps) => ; +export default PersonGroup; diff --git a/packages/ui/icons/lib/PersonPin.tsx b/packages/ui/icons/lib/PersonPin.tsx new file mode 100644 index 00000000..d627a936 --- /dev/null +++ b/packages/ui/icons/lib/PersonPin.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const PersonPin = (props: SVGProps) => ; +export default PersonPin; diff --git a/packages/ui/icons/lib/Plus.tsx b/packages/ui/icons/lib/Plus.tsx new file mode 100644 index 00000000..89302b55 --- /dev/null +++ b/packages/ui/icons/lib/Plus.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Plus = (props: SVGProps) => ; +export default Plus; diff --git a/packages/ui/icons/lib/Preview.tsx b/packages/ui/icons/lib/Preview.tsx new file mode 100644 index 00000000..70ec403b --- /dev/null +++ b/packages/ui/icons/lib/Preview.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Preview = (props: SVGProps) => ; +export default Preview; diff --git a/packages/ui/icons/lib/Set.tsx b/packages/ui/icons/lib/Set.tsx new file mode 100644 index 00000000..2fbe25d5 --- /dev/null +++ b/packages/ui/icons/lib/Set.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Set = (props: SVGProps) => ; +export default Set; diff --git a/packages/ui/icons/lib/SetAdd.tsx b/packages/ui/icons/lib/SetAdd.tsx new file mode 100644 index 00000000..671ad26c --- /dev/null +++ b/packages/ui/icons/lib/SetAdd.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const SetAdd = (props: SVGProps) => ; +export default SetAdd; diff --git a/packages/ui/icons/lib/Settings.tsx b/packages/ui/icons/lib/Settings.tsx new file mode 100644 index 00000000..936581ac --- /dev/null +++ b/packages/ui/icons/lib/Settings.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Settings = (props: SVGProps) => ; +export default Settings; diff --git a/packages/ui/icons/lib/Shuffle.tsx b/packages/ui/icons/lib/Shuffle.tsx new file mode 100644 index 00000000..09853785 --- /dev/null +++ b/packages/ui/icons/lib/Shuffle.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Shuffle = (props: SVGProps) => ; +export default Shuffle; diff --git a/packages/ui/icons/lib/Sort.tsx b/packages/ui/icons/lib/Sort.tsx new file mode 100644 index 00000000..9dcc5f24 --- /dev/null +++ b/packages/ui/icons/lib/Sort.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Sort = (props: SVGProps) => ; +export default Sort; diff --git a/packages/ui/icons/lib/SortByAlpha.tsx b/packages/ui/icons/lib/SortByAlpha.tsx new file mode 100644 index 00000000..2f3b194c --- /dev/null +++ b/packages/ui/icons/lib/SortByAlpha.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const SortByAlpha = (props: SVGProps) => ; +export default SortByAlpha; diff --git a/packages/ui/icons/lib/Spinner.tsx b/packages/ui/icons/lib/Spinner.tsx new file mode 100644 index 00000000..b7790693 --- /dev/null +++ b/packages/ui/icons/lib/Spinner.tsx @@ -0,0 +1,12 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +function Spinner(props: SVGProps) { + return ( + + + + + ); +} +export default Spinner; diff --git a/packages/ui/icons/lib/Star.tsx b/packages/ui/icons/lib/Star.tsx new file mode 100644 index 00000000..99f23a23 --- /dev/null +++ b/packages/ui/icons/lib/Star.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Star = (props: SVGProps) => ; +export default Star; diff --git a/packages/ui/icons/lib/TableConvert.tsx b/packages/ui/icons/lib/TableConvert.tsx new file mode 100644 index 00000000..649ade65 --- /dev/null +++ b/packages/ui/icons/lib/TableConvert.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const TableConvert = (props: SVGProps) => ; +export default TableConvert; diff --git a/packages/ui/icons/lib/Tag.tsx b/packages/ui/icons/lib/Tag.tsx new file mode 100644 index 00000000..c031bf34 --- /dev/null +++ b/packages/ui/icons/lib/Tag.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Tag = (props: SVGProps) => ; +export default Tag; diff --git a/packages/ui/icons/lib/TextFormat.tsx b/packages/ui/icons/lib/TextFormat.tsx new file mode 100644 index 00000000..f9428726 --- /dev/null +++ b/packages/ui/icons/lib/TextFormat.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const TextFormat = (props: SVGProps) => ; +export default TextFormat; diff --git a/packages/ui/icons/lib/Vk.tsx b/packages/ui/icons/lib/Vk.tsx new file mode 100644 index 00000000..c3faf2c6 --- /dev/null +++ b/packages/ui/icons/lib/Vk.tsx @@ -0,0 +1,12 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +function Vk(props: SVGProps) { + return ( + + + + + ); +} +export default Vk; diff --git a/packages/ui/icons/lib/Xmark.tsx b/packages/ui/icons/lib/Xmark.tsx new file mode 100644 index 00000000..52e70033 --- /dev/null +++ b/packages/ui/icons/lib/Xmark.tsx @@ -0,0 +1,5 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +const Xmark = (props: SVGProps) => ; +export default Xmark; diff --git a/packages/ui/icons/lib/Yandex.tsx b/packages/ui/icons/lib/Yandex.tsx new file mode 100644 index 00000000..9d4aa050 --- /dev/null +++ b/packages/ui/icons/lib/Yandex.tsx @@ -0,0 +1,15 @@ +import type { SVGProps } from 'react'; +import * as React from 'react'; + +function Yandex(props: SVGProps) { + return ( + + + + + + + + ); +} +export default Yandex; diff --git a/packages/ui/icons/lib/index.tsx b/packages/ui/icons/lib/index.tsx new file mode 100644 index 00000000..d8f63e3d --- /dev/null +++ b/packages/ui/icons/lib/index.tsx @@ -0,0 +1,125 @@ +export { default as AddRowAbove } from './AddRowAbove'; +export { default as AddRowBelow } from './AddRowBelow'; +export { default as AddSquare } from './AddSquare'; +export { default as Arrow360 } from './Arrow360'; +export { default as ArrowBack } from './ArrowBack'; +export { default as ArrowDownToSquare } from './ArrowDownToSquare'; +export { default as ArrowLeftArrowRight } from './ArrowLeftArrowRight'; +export { default as ArrowOutward } from './ArrowOutward'; +export { default as ArrowRightFromSquare } from './ArrowRightFromSquare'; +export { default as ArrowRightToSquare } from './ArrowRightToSquare'; +export { default as ArrowShapeTurnUpRight } from './ArrowShapeTurnUpRight'; +export { default as ArrowShapeTurnUpRightCheck } from './ArrowShapeTurnUpRightCheck'; +export { default as ArrowsRotateRightAdd } from './ArrowsRotateRightAdd'; +export { default as ArrowsRotateRightCheck } from './ArrowsRotateRightCheck'; +export { default as ArrowUpArrowDown } from './ArrowUpArrowDown'; +export { default as ArrowUturnCcwLeft } from './ArrowUturnCcwLeft'; +export { default as ArrowUturnCwRight } from './ArrowUturnCwRight'; +export { default as AttachFile } from './AttachFile'; +export { default as Bookmark } from './Bookmark'; +export { default as BookmarkFill } from './BookmarkFill'; +export { default as Bookmarks } from './Bookmarks'; +export { default as Check } from './Check'; +export { default as ChevronDown } from './ChevronDown'; +export { default as ChevronDownToLine } from './ChevronDownToLine'; +export { default as ChevronLeft } from './ChevronLeft'; +export { default as ChevronRight } from './ChevronRight'; +export { default as ChevronsCollapseUpRight } from './ChevronsCollapseUpRight'; +export { default as ChevronsExpandUpRight } from './ChevronsExpandUpRight'; +export { default as ChevronUp } from './ChevronUp'; +export { default as ChevronUpToLine } from './ChevronUpToLine'; +export { default as CircleCheck } from './CircleCheck'; +export { default as CircleCheckFill } from './CircleCheckFill'; +export { default as CircleInfo } from './CircleInfo'; +export { default as CircleInfoFill } from './CircleInfoFill'; +export { default as CircleXmark } from './CircleXmark'; +export { default as CircleXmarkFill } from './CircleXmarkFill'; +export { default as Clipboard } from './Clipboard'; +export { default as Clock40 } from './Clock40'; +export { default as Clock60 } from './Clock60'; +export { default as ClockArrowRotateCcwLeft } from './ClockArrowRotateCcwLeft'; +export { default as CodeBlock } from './CodeBlock'; +export { default as Copy } from './Copy'; +export { default as Delete } from './Delete'; +export { default as DeleteXmark } from './DeleteXmark'; +export { default as DotsHorizontal } from './DotsHorizontal'; +export { default as DotsVertical } from './DotsVertical'; +export { default as Equal } from './Equal'; +export { default as Explore } from './Explore'; +export { default as ExploreFill } from './ExploreFill'; +export { default as Favorite } from './Favorite'; +export { default as FavoriteFill } from './FavoriteFill'; +export { default as File } from './File'; +export { default as FileAdd } from './FileAdd'; +export { default as FileCheck } from './FileCheck'; +export { default as FileCheckFill } from './FileCheckFill'; +export { default as Filter } from './Filter'; +export { default as FilterFill } from './FilterFill'; +export { default as FlagRu } from './FlagRu'; +export { default as FlagUk } from './FlagUk'; +export { default as Folder } from './Folder'; +export { default as FolderAdd } from './FolderAdd'; +export { default as FolderFill } from './FolderFill'; +export { default as FolderOpen } from './FolderOpen'; +export { default as FolderOpenFill } from './FolderOpenFill'; +export { default as Folders } from './Folders'; +export { default as FormatBold } from './FormatBold'; +export { default as FormatItalic } from './FormatItalic'; +export { default as FormatListOl } from './FormatListOl'; +export { default as FormatListUl } from './FormatListUl'; +export { default as FormatUndeline } from './FormatUndeline'; +export { default as Fullscreen } from './Fullscreen'; +export { default as Funnel } from './Funnel'; +export { default as Globe } from './Globe'; +export { default as GlobeAdd } from './GlobeAdd'; +export { default as Google } from './Google'; +export { default as Grip } from './Grip'; +export { default as Hint } from './Hint'; +export { default as HintAdd } from './HintAdd'; +export { default as HintSlash } from './HintSlash'; +export { default as Home } from './Home'; +export { default as HomeFill } from './HomeFill'; +export { default as Interests } from './Interests'; +export { default as InterestsFill } from './InterestsFill'; +export { default as Language } from './Language'; +export { default as Learn } from './Learn'; +export { default as Link } from './Link'; +export { default as LinkAdd } from './LinkAdd'; +export { default as LinkSlash } from './LinkSlash'; +export { default as ListAdd } from './ListAdd'; +export { default as Magnifier } from './Magnifier'; +export { default as MailAol } from './MailAol'; +export { default as MailGmail } from './MailGmail'; +export { default as MailIcloud } from './MailIcloud'; +export { default as MailMail } from './MailMail'; +export { default as MailOutlook } from './MailOutlook'; +export { default as MailProton } from './MailProton'; +export { default as MailYahoo } from './MailYahoo'; +export { default as MailYandex } from './MailYandex'; +export { default as Minus } from './Minus'; +export { default as MoveToFolder } from './MoveToFolder'; +export { default as Notifications } from './Notifications'; +export { default as Pencil } from './Pencil'; +export { default as PersonAdd } from './PersonAdd'; +export { default as PersonCheck } from './PersonCheck'; +export { default as PersonCheckFill } from './PersonCheckFill'; +export { default as PersonEdit } from './PersonEdit'; +export { default as PersonEditFill } from './PersonEditFill'; +export { default as PersonGroup } from './PersonGroup'; +export { default as PersonPin } from './PersonPin'; +export { default as Plus } from './Plus'; +export { default as Preview } from './Preview'; +export { default as Set } from './Set'; +export { default as SetAdd } from './SetAdd'; +export { default as Settings } from './Settings'; +export { default as Shuffle } from './Shuffle'; +export { default as Sort } from './Sort'; +export { default as SortByAlpha } from './SortByAlpha'; +export { default as Spinner } from './Spinner'; +export { default as Star } from './Star'; +export { default as TableConvert } from './TableConvert'; +export { default as Tag } from './Tag'; +export { default as TextFormat } from './TextFormat'; +export { default as Vk } from './Vk'; +export { default as Xmark } from './Xmark'; +export { default as Yandex } from './Yandex'; diff --git a/packages/ui/icons/metadata.json b/packages/ui/icons/metadata.json new file mode 100644 index 00000000..da3cec0f --- /dev/null +++ b/packages/ui/icons/metadata.json @@ -0,0 +1,1278 @@ +{ + "info": { + "palettes": [ + "colored", + "monochrome" + ], + "groups": [ + "avatar", + "flags", + "logos", + "misc", + "editor", + "social", + "navigation", + "arrows", + "folders", + "tool", + "sets", + "doc", + "time", + "file", + "symbol", + "system" + ] + }, + "icons": [ + { + "name": "flag_ru", + "style": "regular", + "svgName": "flag_ru", + "componentName": "FlagRu", + "meta": { + "palette": "colored", + "group": "flags" + } + }, + { + "name": "flag_uk", + "style": "regular", + "svgName": "flag_uk", + "componentName": "FlagUk", + "meta": { + "palette": "colored", + "group": "flags" + } + }, + { + "name": "mail_yahoo", + "style": "regular", + "svgName": "mail_yahoo", + "componentName": "MailYahoo", + "meta": { + "palette": "colored", + "group": "logos" + } + }, + { + "name": "mail_yandex", + "style": "regular", + "svgName": "mail_yandex", + "componentName": "MailYandex", + "meta": { + "palette": "colored", + "group": "logos" + } + }, + { + "name": "mail_proton", + "style": "regular", + "svgName": "mail_proton", + "componentName": "MailProton", + "meta": { + "palette": "colored", + "group": "logos" + } + }, + { + "name": "mail_aol", + "style": "regular", + "svgName": "mail_aol", + "componentName": "MailAol", + "meta": { + "palette": "colored", + "group": "logos" + } + }, + { + "name": "mail_icloud", + "style": "regular", + "svgName": "mail_icloud", + "componentName": "MailIcloud", + "meta": { + "palette": "colored", + "group": "logos" + } + }, + { + "name": "mail_mail", + "style": "regular", + "svgName": "mail_mail", + "componentName": "MailMail", + "meta": { + "palette": "colored", + "group": "logos" + } + }, + { + "name": "mail_outlook", + "style": "regular", + "svgName": "mail_outlook", + "componentName": "MailOutlook", + "meta": { + "palette": "colored", + "group": "logos" + } + }, + { + "name": "mail_gmail", + "style": "regular", + "svgName": "mail_gmail", + "componentName": "MailGmail", + "meta": { + "palette": "colored", + "group": "logos" + } + }, + { + "name": "yandex", + "style": "regular", + "svgName": "yandex", + "componentName": "Yandex", + "meta": { + "palette": "colored", + "group": "logos" + } + }, + { + "name": "google", + "style": "regular", + "svgName": "google", + "componentName": "Google", + "meta": { + "palette": "colored", + "group": "logos" + } + }, + { + "name": "vk", + "style": "regular", + "svgName": "vk", + "componentName": "Vk", + "meta": { + "palette": "colored", + "group": "logos" + } + }, + { + "name": "spinner", + "style": "regular", + "svgName": "spinner", + "componentName": "Spinner", + "meta": { + "palette": "monochrome", + "group": "misc" + } + }, + { + "name": "sort", + "style": "regular", + "svgName": "sort", + "componentName": "Sort", + "meta": { + "palette": "monochrome", + "group": "misc" + } + }, + { + "name": "star", + "style": "regular", + "svgName": "star", + "componentName": "Star", + "meta": { + "palette": "monochrome", + "group": "misc" + } + }, + { + "name": "preview", + "style": "regular", + "svgName": "preview", + "componentName": "Preview", + "meta": { + "palette": "monochrome", + "group": "misc" + } + }, + { + "name": "sort_by_alpha", + "style": "regular", + "svgName": "sort_by_alpha", + "componentName": "SortByAlpha", + "meta": { + "palette": "monochrome", + "group": "misc" + } + }, + { + "name": "tag", + "style": "regular", + "svgName": "tag", + "componentName": "Tag", + "meta": { + "palette": "monochrome", + "group": "misc" + } + }, + { + "name": "language", + "style": "regular", + "svgName": "language", + "componentName": "Language", + "meta": { + "palette": "monochrome", + "group": "misc" + } + }, + { + "name": "fullscreen", + "style": "regular", + "svgName": "fullscreen", + "componentName": "Fullscreen", + "meta": { + "palette": "monochrome", + "group": "misc" + } + }, + { + "name": "format_list_ol", + "style": "regular", + "svgName": "format_list_ol", + "componentName": "FormatListOl", + "meta": { + "palette": "monochrome", + "group": "editor" + } + }, + { + "name": "format_list_ul", + "style": "regular", + "svgName": "format_list_ul", + "componentName": "FormatListUl", + "meta": { + "palette": "monochrome", + "group": "editor" + } + }, + { + "name": "code_block", + "style": "regular", + "svgName": "code_block", + "componentName": "CodeBlock", + "meta": { + "palette": "monochrome", + "group": "editor" + } + }, + { + "name": "format_undeline", + "style": "regular", + "svgName": "format_undeline", + "componentName": "FormatUndeline", + "meta": { + "palette": "monochrome", + "group": "editor" + } + }, + { + "name": "format_italic", + "style": "regular", + "svgName": "format_italic", + "componentName": "FormatItalic", + "meta": { + "palette": "monochrome", + "group": "editor" + } + }, + { + "name": "format_bold", + "style": "regular", + "svgName": "format_bold", + "componentName": "FormatBold", + "meta": { + "palette": "monochrome", + "group": "editor" + } + }, + { + "name": "text_format", + "style": "regular", + "svgName": "text_format", + "componentName": "TextFormat", + "meta": { + "palette": "monochrome", + "group": "editor" + } + }, + { + "name": "favorite", + "style": "regular", + "svgName": "favorite", + "componentName": "Favorite", + "meta": { + "palette": "monochrome", + "group": "social" + } + }, + { + "name": "favorite", + "style": "fill", + "svgName": "favorite_fill", + "componentName": "FavoriteFill", + "meta": { + "palette": "monochrome", + "group": "social" + } + }, + { + "name": "globe_add", + "style": "regular", + "svgName": "globe_add", + "componentName": "GlobeAdd", + "meta": { + "palette": "monochrome", + "group": "social" + } + }, + { + "name": "globe", + "style": "regular", + "svgName": "globe", + "componentName": "Globe", + "meta": { + "palette": "monochrome", + "group": "social" + } + }, + { + "name": "person_pin", + "style": "regular", + "svgName": "person_pin", + "componentName": "PersonPin", + "meta": { + "palette": "monochrome", + "group": "social" + } + }, + { + "name": "person_group", + "style": "regular", + "svgName": "person_group", + "componentName": "PersonGroup", + "meta": { + "palette": "monochrome", + "group": "social" + } + }, + { + "name": "person_add", + "style": "regular", + "svgName": "person_add", + "componentName": "PersonAdd", + "meta": { + "palette": "monochrome", + "group": "social" + } + }, + { + "name": "person_check", + "style": "regular", + "svgName": "person_check", + "componentName": "PersonCheck", + "meta": { + "palette": "monochrome", + "group": "social" + } + }, + { + "name": "person_check", + "style": "fill", + "svgName": "person_check_fill", + "componentName": "PersonCheckFill", + "meta": { + "palette": "monochrome", + "group": "social" + } + }, + { + "name": "person_edit", + "style": "regular", + "svgName": "person_edit", + "componentName": "PersonEdit", + "meta": { + "palette": "monochrome", + "group": "social" + } + }, + { + "name": "person_edit", + "style": "fill", + "svgName": "person_edit_fill", + "componentName": "PersonEditFill", + "meta": { + "palette": "monochrome", + "group": "social" + } + }, + { + "name": "interests", + "style": "regular", + "svgName": "interests", + "componentName": "Interests", + "meta": { + "palette": "monochrome", + "group": "navigation" + } + }, + { + "name": "interests", + "style": "fill", + "svgName": "interests_fill", + "componentName": "InterestsFill", + "meta": { + "palette": "monochrome", + "group": "navigation" + } + }, + { + "name": "explore", + "style": "regular", + "svgName": "explore", + "componentName": "Explore", + "meta": { + "palette": "monochrome", + "group": "navigation" + } + }, + { + "name": "explore", + "style": "fill", + "svgName": "explore_fill", + "componentName": "ExploreFill", + "meta": { + "palette": "monochrome", + "group": "navigation" + } + }, + { + "name": "home", + "style": "regular", + "svgName": "home", + "componentName": "Home", + "meta": { + "palette": "monochrome", + "group": "navigation" + } + }, + { + "name": "home", + "style": "fill", + "svgName": "home_fill", + "componentName": "HomeFill", + "meta": { + "palette": "monochrome", + "group": "navigation" + } + }, + { + "name": "arrow_uturn_cw_right", + "style": "regular", + "svgName": "arrow_uturn_cw_right", + "componentName": "ArrowUturnCwRight", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "arrow_uturn_ccw_left", + "style": "regular", + "svgName": "arrow_uturn_ccw_left", + "componentName": "ArrowUturnCcwLeft", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "shuffle", + "style": "regular", + "svgName": "shuffle", + "componentName": "Shuffle", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "arrow_left_arrow_right", + "style": "regular", + "svgName": "arrow_left_arrow_right", + "componentName": "ArrowLeftArrowRight", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "arrows_rotate_right_add", + "style": "regular", + "svgName": "arrows_rotate_right_add", + "componentName": "ArrowsRotateRightAdd", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "arrows_rotate_right_check", + "style": "regular", + "svgName": "arrows_rotate_right_check", + "componentName": "ArrowsRotateRightCheck", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "arrow_up_arrow_down", + "style": "regular", + "svgName": "arrow_up_arrow_down", + "componentName": "ArrowUpArrowDown", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "arrow_down_to_square", + "style": "regular", + "svgName": "arrow_down_to_square", + "componentName": "ArrowDownToSquare", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "arrow_shape_turn_up_right_check", + "style": "regular", + "svgName": "arrow_shape_turn_up_right_check", + "componentName": "ArrowShapeTurnUpRightCheck", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "arrow_shape_turn_up_right", + "style": "regular", + "svgName": "arrow_shape_turn_up_right", + "componentName": "ArrowShapeTurnUpRight", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "arrow_right_from_square", + "style": "regular", + "svgName": "arrow_right_from_square", + "componentName": "ArrowRightFromSquare", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "arrow_right_to_square", + "style": "regular", + "svgName": "arrow_right_to_square", + "componentName": "ArrowRightToSquare", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "arrow_outward", + "style": "regular", + "svgName": "arrow_outward", + "componentName": "ArrowOutward", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "chevron_up_to_line", + "style": "regular", + "svgName": "chevron_up_to_line", + "componentName": "ChevronUpToLine", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "chevron_down_to_line", + "style": "regular", + "svgName": "chevron_down_to_line", + "componentName": "ChevronDownToLine", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "chevrons_expand_up_right", + "style": "regular", + "svgName": "chevrons_expand_up_right", + "componentName": "ChevronsExpandUpRight", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "chevrons_collapse_up_right", + "style": "regular", + "svgName": "chevrons_collapse_up_right", + "componentName": "ChevronsCollapseUpRight", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "arrow_360", + "style": "regular", + "svgName": "arrow_360", + "componentName": "Arrow360", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "chevron_right", + "style": "regular", + "svgName": "chevron_right", + "componentName": "ChevronRight", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "chevron_left", + "style": "regular", + "svgName": "chevron_left", + "componentName": "ChevronLeft", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "chevron_down", + "style": "regular", + "svgName": "chevron_down", + "componentName": "ChevronDown", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "chevron_up", + "style": "regular", + "svgName": "chevron_up", + "componentName": "ChevronUp", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "arrow_back", + "style": "regular", + "svgName": "arrow_back", + "componentName": "ArrowBack", + "meta": { + "palette": "monochrome", + "group": "arrows" + } + }, + { + "name": "folders", + "style": "regular", + "svgName": "folders", + "componentName": "Folders", + "meta": { + "palette": "monochrome", + "group": "folders" + } + }, + { + "name": "move_to_folder", + "style": "regular", + "svgName": "move_to_folder", + "componentName": "MoveToFolder", + "meta": { + "palette": "monochrome", + "group": "folders" + } + }, + { + "name": "folder_open", + "style": "regular", + "svgName": "folder_open", + "componentName": "FolderOpen", + "meta": { + "palette": "monochrome", + "group": "folders" + } + }, + { + "name": "folder_open", + "style": "fill", + "svgName": "folder_open_fill", + "componentName": "FolderOpenFill", + "meta": { + "palette": "monochrome", + "group": "folders" + } + }, + { + "name": "folder", + "style": "regular", + "svgName": "folder", + "componentName": "Folder", + "meta": { + "palette": "monochrome", + "group": "folders" + } + }, + { + "name": "folder", + "style": "fill", + "svgName": "folder_fill", + "componentName": "FolderFill", + "meta": { + "palette": "monochrome", + "group": "folders" + } + }, + { + "name": "folder_add", + "style": "regular", + "svgName": "folder_add", + "componentName": "FolderAdd", + "meta": { + "palette": "monochrome", + "group": "folders" + } + }, + { + "name": "attach_file", + "style": "regular", + "svgName": "attach_file", + "componentName": "AttachFile", + "meta": { + "palette": "monochrome", + "group": "tool" + } + }, + { + "name": "funnel", + "style": "regular", + "svgName": "funnel", + "componentName": "Funnel", + "meta": { + "palette": "monochrome", + "group": "tool" + } + }, + { + "name": "pencil", + "style": "regular", + "svgName": "pencil", + "componentName": "Pencil", + "meta": { + "palette": "monochrome", + "group": "tool" + } + }, + { + "name": "magnifier", + "style": "regular", + "svgName": "magnifier", + "componentName": "Magnifier", + "meta": { + "palette": "monochrome", + "group": "tool" + } + }, + { + "name": "learn", + "style": "regular", + "svgName": "learn", + "componentName": "Learn", + "meta": { + "palette": "monochrome", + "group": "sets" + } + }, + { + "name": "hint_slash", + "style": "regular", + "svgName": "hint_slash", + "componentName": "HintSlash", + "meta": { + "palette": "monochrome", + "group": "sets" + } + }, + { + "name": "hint", + "style": "regular", + "svgName": "hint", + "componentName": "Hint", + "meta": { + "palette": "monochrome", + "group": "sets" + } + }, + { + "name": "hint_add", + "style": "regular", + "svgName": "hint_add", + "componentName": "HintAdd", + "meta": { + "palette": "monochrome", + "group": "sets" + } + }, + { + "name": "add_row_above", + "style": "regular", + "svgName": "add_row_above", + "componentName": "AddRowAbove", + "meta": { + "palette": "monochrome", + "group": "sets" + } + }, + { + "name": "add_row_below", + "style": "regular", + "svgName": "add_row_below", + "componentName": "AddRowBelow", + "meta": { + "palette": "monochrome", + "group": "sets" + } + }, + { + "name": "table_convert", + "style": "regular", + "svgName": "table_convert", + "componentName": "TableConvert", + "meta": { + "palette": "monochrome", + "group": "sets" + } + }, + { + "name": "clipboard", + "style": "regular", + "svgName": "clipboard", + "componentName": "Clipboard", + "meta": { + "palette": "monochrome", + "group": "sets" + } + }, + { + "name": "list_add", + "style": "regular", + "svgName": "list_add", + "componentName": "ListAdd", + "meta": { + "palette": "monochrome", + "group": "sets" + } + }, + { + "name": "add_square", + "style": "regular", + "svgName": "add_square", + "componentName": "AddSquare", + "meta": { + "palette": "monochrome", + "group": "sets" + } + }, + { + "name": "set", + "style": "regular", + "svgName": "set", + "componentName": "Set", + "meta": { + "palette": "monochrome", + "group": "sets" + } + }, + { + "name": "set_add", + "style": "regular", + "svgName": "set_add", + "componentName": "SetAdd", + "meta": { + "palette": "monochrome", + "group": "sets" + } + }, + { + "name": "link_slash", + "style": "regular", + "svgName": "link_slash", + "componentName": "LinkSlash", + "meta": { + "palette": "monochrome", + "group": "doc" + } + }, + { + "name": "link_add", + "style": "regular", + "svgName": "link_add", + "componentName": "LinkAdd", + "meta": { + "palette": "monochrome", + "group": "doc" + } + }, + { + "name": "link", + "style": "regular", + "svgName": "link", + "componentName": "Link", + "meta": { + "palette": "monochrome", + "group": "doc" + } + }, + { + "name": "bookmarks", + "style": "regular", + "svgName": "bookmarks", + "componentName": "Bookmarks", + "meta": { + "palette": "monochrome", + "group": "doc" + } + }, + { + "name": "bookmark", + "style": "regular", + "svgName": "bookmark", + "componentName": "Bookmark", + "meta": { + "palette": "monochrome", + "group": "doc" + } + }, + { + "name": "bookmark", + "style": "fill", + "svgName": "bookmark_fill", + "componentName": "BookmarkFill", + "meta": { + "palette": "monochrome", + "group": "doc" + } + }, + { + "name": "clock_arrow_rotate_ccw_left", + "style": "regular", + "svgName": "clock_arrow_rotate_ccw_left", + "componentName": "ClockArrowRotateCcwLeft", + "meta": { + "palette": "monochrome", + "group": "time" + } + }, + { + "name": "clock_60", + "style": "regular", + "svgName": "clock_60", + "componentName": "Clock60", + "meta": { + "palette": "monochrome", + "group": "time" + } + }, + { + "name": "clock_40", + "style": "regular", + "svgName": "clock_40", + "componentName": "Clock40", + "meta": { + "palette": "monochrome", + "group": "time" + } + }, + { + "name": "file", + "style": "regular", + "svgName": "file", + "componentName": "File", + "meta": { + "palette": "monochrome", + "group": "file" + } + }, + { + "name": "file_add", + "style": "regular", + "svgName": "file_add", + "componentName": "FileAdd", + "meta": { + "palette": "monochrome", + "group": "file" + } + }, + { + "name": "copy", + "style": "regular", + "svgName": "copy", + "componentName": "Copy", + "meta": { + "palette": "monochrome", + "group": "file" + } + }, + { + "name": "file_check", + "style": "regular", + "svgName": "file_check", + "componentName": "FileCheck", + "meta": { + "palette": "monochrome", + "group": "file" + } + }, + { + "name": "file_check", + "style": "fill", + "svgName": "file_check_fill", + "componentName": "FileCheckFill", + "meta": { + "palette": "monochrome", + "group": "file" + } + }, + { + "name": "circle_xmark", + "style": "regular", + "svgName": "circle_xmark", + "componentName": "CircleXmark", + "meta": { + "palette": "monochrome", + "group": "symbol" + } + }, + { + "name": "circle_xmark", + "style": "fill", + "svgName": "circle_xmark_fill", + "componentName": "CircleXmarkFill", + "meta": { + "palette": "monochrome", + "group": "symbol" + } + }, + { + "name": "circle_check", + "style": "regular", + "svgName": "circle_check", + "componentName": "CircleCheck", + "meta": { + "palette": "monochrome", + "group": "symbol" + } + }, + { + "name": "circle_check", + "style": "fill", + "svgName": "circle_check_fill", + "componentName": "CircleCheckFill", + "meta": { + "palette": "monochrome", + "group": "symbol" + } + }, + { + "name": "circle_info", + "style": "regular", + "svgName": "circle_info", + "componentName": "CircleInfo", + "meta": { + "palette": "monochrome", + "group": "symbol" + } + }, + { + "name": "circle_info", + "style": "fill", + "svgName": "circle_info_fill", + "componentName": "CircleInfoFill", + "meta": { + "palette": "monochrome", + "group": "symbol" + } + }, + { + "name": "equal", + "style": "regular", + "svgName": "equal", + "componentName": "Equal", + "meta": { + "palette": "monochrome", + "group": "symbol" + } + }, + { + "name": "xmark", + "style": "regular", + "svgName": "xmark", + "componentName": "Xmark", + "meta": { + "palette": "monochrome", + "group": "symbol" + } + }, + { + "name": "check", + "style": "regular", + "svgName": "check", + "componentName": "Check", + "meta": { + "palette": "monochrome", + "group": "symbol" + } + }, + { + "name": "minus", + "style": "regular", + "svgName": "minus", + "componentName": "Minus", + "meta": { + "palette": "monochrome", + "group": "symbol" + } + }, + { + "name": "plus", + "style": "regular", + "svgName": "plus", + "componentName": "Plus", + "meta": { + "palette": "monochrome", + "group": "symbol" + } + }, + { + "name": "delete", + "style": "regular", + "svgName": "delete", + "componentName": "Delete", + "meta": { + "palette": "monochrome", + "group": "system" + } + }, + { + "name": "delete_xmark", + "style": "regular", + "svgName": "delete_xmark", + "componentName": "DeleteXmark", + "meta": { + "palette": "monochrome", + "group": "system" + } + }, + { + "name": "filter", + "style": "regular", + "svgName": "filter", + "componentName": "Filter", + "meta": { + "palette": "monochrome", + "group": "system" + } + }, + { + "name": "filter", + "style": "fill", + "svgName": "filter_fill", + "componentName": "FilterFill", + "meta": { + "palette": "monochrome", + "group": "system" + } + }, + { + "name": "grip", + "style": "regular", + "svgName": "grip", + "componentName": "Grip", + "meta": { + "palette": "monochrome", + "group": "system" + } + }, + { + "name": "dots_vertical", + "style": "regular", + "svgName": "dots_vertical", + "componentName": "DotsVertical", + "meta": { + "palette": "monochrome", + "group": "system" + } + }, + { + "name": "dots_horizontal", + "style": "regular", + "svgName": "dots_horizontal", + "componentName": "DotsHorizontal", + "meta": { + "palette": "monochrome", + "group": "system" + } + }, + { + "name": "notifications", + "style": "regular", + "svgName": "notifications", + "componentName": "Notifications", + "meta": { + "palette": "monochrome", + "group": "system" + } + }, + { + "name": "settings", + "style": "regular", + "svgName": "settings", + "componentName": "Settings", + "meta": { + "palette": "monochrome", + "group": "system" + } + } + ] +} diff --git a/packages/ui/icons/package.json b/packages/ui/icons/package.json new file mode 100644 index 00000000..c28d670d --- /dev/null +++ b/packages/ui/icons/package.json @@ -0,0 +1,59 @@ +{ + "name": "@flippo_ui/icons", + "type": "module", + "version": "1.0.2", + "description": "Pack of Flippo UI icons", + "keywords": [ + "icons", + "svg", + "react" + ], + "module": "dist/index.jsx", + "files": [ + "*.d.ts", + "*.jsx", + "README.md", + "metadata.json", + "package.json", + "svgs" + ], + "scripts": { + "build": "node 'scripts/clear.js' && tsc --project './tsconfig.build.json' && tsc --project tsconfig.build.json --declaration --emitDeclarationOnly && pnpm eslint './*.{jsx,d.ts}' --fix --no-ignore", + "lint": "eslint --fix", + "src:download": "node --env-file=.env.local scripts/download.js", + "src:generate": "node --env-file=.env.local scripts/generateIcons.js && eslint --fix lib", + "redown": "pnpm src:download && pnpm src:generate", + "prepublishOnly": "pnpm run build", + "clear": "node scripts/clear.js" + }, + "peerDependencies": { + "react": "*" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + } + }, + "devDependencies": { + "@figma-export/core": "catalog:", + "@flippo/eslint": "workspace:*", + "@flippo/tsconfig": "workspace:*", + "@svgr/core": "catalog:", + "@svgr/plugin-jsx": "catalog:", + "@types/node": "catalog:", + "@types/react": "catalog:", + "@types/react-dom": "catalog:", + "eslint": "catalog:", + "eslint-plugin-react-refresh": "catalog:", + "fast-glob": "catalog:", + "is-svg": "catalog:", + "react": "catalog:", + "react-dom": "catalog:", + "rimraf": "catalog:", + "svgo": "catalog:", + "typescript": "catalog:" + }, + "publishConfig": { + "access": "public" + } +} diff --git a/packages/ui/icons/scripts/clear.js b/packages/ui/icons/scripts/clear.js new file mode 100644 index 00000000..170d4a60 --- /dev/null +++ b/packages/ui/icons/scripts/clear.js @@ -0,0 +1,17 @@ +import process from 'node:process'; +import fg from 'fast-glob'; +import { rimraf } from 'rimraf'; + +async function run() { + const paths = await fg(['*.d.ts', '*.jsx'], { + onlyFiles: false + }); + for (const path of paths) { + rimraf.sync(path); + } +} + +run().catch((error) => { + console.error(error); + process.exit(1); +}); diff --git a/packages/ui/icons/scripts/constants.js b/packages/ui/icons/scripts/constants.js new file mode 100644 index 00000000..045f5980 --- /dev/null +++ b/packages/ui/icons/scripts/constants.js @@ -0,0 +1,34 @@ +import { fileURLToPath } from 'node:url'; +import { isHex } from './utils.js'; + +export const SVGS_DIR = fileURLToPath(import.meta.resolve('../svgs', import.meta.dirname)); +export const ICONS_DIR = fileURLToPath(import.meta.resolve('../lib', import.meta.dirname)); + +export const ICONS_NAME_REGEX = /^([a-z0-9](_?[a-z0-9])*)$/i; + +export const IGNORED_COLORS_FOR_SVGO = { + '$misc-red-darker': '#e52222', + '$misc-red-default': '#ff4141', + '$misc-red-lighter': '#ff5959', + + '$misc-warm-red-darker': '#ba2a06', + '$misc-warm-red-default': '#d3401b', + '$misc-warm-red-lighter': '#ed5b37', + + '$misc-green-darker': '#1ba62b', + '$misc-green-default': '#31be42', + '$misc-green-lighter': '#4ed95e', + + '$misc-yellow-darker': '#bd9600', + '$misc-yellow-default': '#d6ae12', + '$misc-yellow-lighter': '#f0c82b', + + '$misc-golden-darker': '#857938', + '$misc-golden-default': '#9e9352', + '$misc-golden-lighter': '#b8ab5f' +}; + +export const IGNORED_COLORS_FOR_SVGO_REGEX = new RegExp(`#(?!${Object.values(IGNORED_COLORS_FOR_SVGO) + .filter(isHex) + .map((value) => value.slice(1)) + .join('|')})`, 'i'); diff --git a/packages/ui/icons/scripts/download.js b/packages/ui/icons/scripts/download.js new file mode 100644 index 00000000..ba05c8ef --- /dev/null +++ b/packages/ui/icons/scripts/download.js @@ -0,0 +1,208 @@ +import fs from 'node:fs/promises'; +import path from 'node:path'; +import process from 'node:process'; + +import { components as loadComponents } from '@figma-export/core'; +import isSvg from 'is-svg'; +import { optimize } from 'svgo'; +import { ICONS_NAME_REGEX, IGNORED_COLORS_FOR_SVGO_REGEX, SVGS_DIR } from './constants.js'; +import { clearDir, kebabCaseToCamelCase } from './utils.js'; + +const FIGMA_TOKEN = process.env.FIGMA_TOKEN; +const FIGMA_FILE = process.env.FIGMA_FILE; +const FIGMA_IDS = process.env.FIGMA_IDS.split(','); +const FIGMA_PAGES = process.env.FIGMA_PAGES.split(','); + +function parseComponentPropsFromString(props) { + const params = props.split(/\s*,\s?/); + + return params.reduce((acc, param) => { + const [key, value] = param.split(/\s*=\s*/); + acc[key] = value; + + return acc; + }, {}); +} + +function parseComponentSetName(name) { + const params = name.split('/'); + + if (params.length < 3) + throw new Error(`Icon must have palette, group and name (Monochrome/Logo/yandex): ${name}`); + + return { + name: params.at(-1), + meta: { + palette: params.at(0).toLowerCase(), + group: params.at(1).toLowerCase() + } + }; +} + +function svgTransformer(svg, palette) { + const isMonochrome = palette === 'monochrome'; + + return optimize(svg, { + multipass: true, + plugins: [{ + name: 'preset-default', + params: { + overrides: { + convertColors: { + currentColor: isMonochrome ? IGNORED_COLORS_FOR_SVGO_REGEX : false + }, + removeViewBox: false + } + } + }] + }).data; +} + +function createSvgBuilder(metadata) { + return async function svgBuilder([{ children, components: icons }]) { + const targetNodes = targetNodesBFS(FIGMA_IDS, children); + const iconSets = componentSetsDfs(targetNodes); + const iconsById = icons.reduce((acc, icon) => { acc[icon.id] = icon; return acc; }, {}); + const uniqueIcons = new Set(); + + function targetNodesBFS(targetIds, startQueue) { + const queue = Array.from(startQueue); + const resultNodes = []; + + targetIds = new Set(targetIds.map((id) => id.replace('-', ':'))); + + while (queue.length > 0 && targetIds.size > 0) { + const node = queue.shift(); + + if (targetIds.has(node.id)) { + resultNodes.push(node); + targetIds.delete(node.id); + + continue; + } + + if (node.children) + queue.push(...node.children); + } + + return resultNodes; + } + + function componentSetsDfs(startStack) { + const stack = Array.from(startStack); + const resultSets = new Set(); + + while (stack.length > 0) { + const node = stack.pop(); + + if (node.type === 'COMPONENT_SET') { + resultSets.add(node); + + continue; + } + + if (node.children) { + stack.push(...node.children); + } + } + + return Array.from(resultSets); + } + + console.log(iconSets); + + for (const iconSet of iconSets) { + const { name, meta } = parseComponentSetName(iconSet.name); + + if (!ICONS_NAME_REGEX.test(name)) + throw new Error(`Invalid icon name: ${name}. Pattern: ${ICONS_NAME_REGEX.source}`); + + if (uniqueIcons.has(name)) { + throw new Error(`Icon has been already added: ${name}`); + } + else { + uniqueIcons.add(name); + } + + if (!meta.palette) + throw new Error(`Icon must have palette: ${name}`); + + if (!meta.group) + throw new Error(`Icon must have group: ${name}`); + + metadata.info.palettes.add(meta.palette); + metadata.info.groups.add(meta.group); + + for (const icon of iconSet.children) { + const props = parseComponentPropsFromString(icon.name); + if (!props.preview) + throw new Error(`Icon has no preview: ${name}`); + + if (props.preview === 'true') + continue; + + let svg = iconsById[icon.id].svg; + let svgName = name; + + if (!props.style) + throw new Error(`Icon has no style: ${name}`); + + if (props.style !== 'regular') + svgName += `_${props.style}`; + + if (props.animated === 'true') { + if (!isSvg(iconsById[icon.id].description)) + throw new Error(`If icon animated must have in description correct svg: ${name}`); + + svg = iconsById[icon.id].description; + } + + metadata.icons.push({ + name, + style: props.style, + svgName, + componentName: kebabCaseToCamelCase(svgName), + meta + }); + + const optimizedSvg = svgTransformer(svg, meta.palette); + console.log(path.join(SVGS_DIR, `${svgName}.svg`)); + await fs.writeFile(path.join(SVGS_DIR, `${svgName}.svg`), optimizedSvg); + } + } + }; +} + +async function download() { + await clearDir(SVGS_DIR); + + const metadata = { + info: { + palettes: new Set(), + groups: new Set() + }, + icons: [] + }; + + await loadComponents({ + token: FIGMA_TOKEN, + fileId: FIGMA_FILE, + ids: FIGMA_IDS, + onlyFromPages: FIGMA_PAGES, + outputters: [createSvgBuilder(metadata)], + filterComponent: (node) => { + if (node.name === 'Divider Horizontal') + console.log(node); + return node.type !== 'INSTANCE'; + } + }); + + metadata.info.palettes = Array.from(metadata.info.palettes); + metadata.info.groups = Array.from(metadata.info.groups); + await fs.writeFile(path.join(process.cwd(), 'metadata.json'), JSON.stringify(metadata, null, 2)); +} + +download().catch((error) => { + console.error(`Failed to download icons: ${error}`); + process.exit(1); +}); diff --git a/packages/ui/icons/scripts/generateIcons.js b/packages/ui/icons/scripts/generateIcons.js new file mode 100644 index 00000000..ca94f126 --- /dev/null +++ b/packages/ui/icons/scripts/generateIcons.js @@ -0,0 +1,41 @@ +import fs from 'node:fs/promises'; +import path from 'node:path'; +import process from 'node:process'; +import { transform } from '@svgr/core'; +import { ICONS_DIR, SVGS_DIR } from './constants.js'; +import { clearDir, kebabCaseToCamelCase } from './utils.js'; + +async function createIndexFile(files) { + const indexFilePath = path.join(ICONS_DIR, 'index.tsx'); + const content = files.map((file) => `export { default as ${file.name} } from './${file.path}';`).join('\n'); + + await fs.writeFile(indexFilePath, content); +} + +async function generateIcons() { + await clearDir(ICONS_DIR); + + const svgFiles = (await fs.readdir(SVGS_DIR, { recursive: true })).filter((file) => path.extname(file) === '.svg'); + + const iconFiles = await Promise.all(svgFiles.map(async (file) => { + const fileMeta = path.parse(file); + const componentName = kebabCaseToCamelCase(fileMeta.name); + const svg = await fs.readFile(path.join(SVGS_DIR, file), 'utf-8'); + + const iconFilePath = path.join(ICONS_DIR, `${componentName}.tsx`); + + const content = await transform(svg, { typescript: true, plugins: ['@svgr/plugin-jsx'] }, { componentName }); + + await fs.mkdir(path.parse(iconFilePath).dir, { recursive: true }); + await fs.writeFile(iconFilePath, content); + + return { name: componentName, path: componentName }; + })); + + await createIndexFile(iconFiles); +} + +generateIcons().catch((err) => { + console.error(`Failed to generate icons: ${err}`); + process.exit(1); +}); diff --git a/packages/ui/icons/scripts/utils.js b/packages/ui/icons/scripts/utils.js new file mode 100644 index 00000000..b13cb905 --- /dev/null +++ b/packages/ui/icons/scripts/utils.js @@ -0,0 +1,25 @@ +import fs from 'node:fs/promises'; +import { ESLint } from 'eslint'; + +export async function clearDir(dir) { + await fs.rm(dir, { recursive: true, force: true }); + await fs.mkdir(dir, { recursive: true }); +} + +export async function formatting(content, filePath) { + const eslint = new ESLint({ fix: true }); + const results = await eslint.lintText(content, { filePath }); + + await ESLint.outputFixes(results); + + const fixed = results[0]?.output; + return fixed || content; +} + +export function isHex(value) { + return /^#[0-9a-f]{3,6}$/i.test(value); +} + +export function kebabCaseToCamelCase(name) { + return name.replace(/^\w|_\w/g, (match) => match.replace('_', '').toUpperCase()); +} diff --git a/packages/ui/icons/svgs/add_row_above.svg b/packages/ui/icons/svgs/add_row_above.svg new file mode 100644 index 00000000..e9738fe9 --- /dev/null +++ b/packages/ui/icons/svgs/add_row_above.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/add_row_below.svg b/packages/ui/icons/svgs/add_row_below.svg new file mode 100644 index 00000000..c64cb397 --- /dev/null +++ b/packages/ui/icons/svgs/add_row_below.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/add_square.svg b/packages/ui/icons/svgs/add_square.svg new file mode 100644 index 00000000..ae6293b3 --- /dev/null +++ b/packages/ui/icons/svgs/add_square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/arrow_360.svg b/packages/ui/icons/svgs/arrow_360.svg new file mode 100644 index 00000000..844095e9 --- /dev/null +++ b/packages/ui/icons/svgs/arrow_360.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/arrow_back.svg b/packages/ui/icons/svgs/arrow_back.svg new file mode 100644 index 00000000..59c1ae00 --- /dev/null +++ b/packages/ui/icons/svgs/arrow_back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/arrow_down_to_square.svg b/packages/ui/icons/svgs/arrow_down_to_square.svg new file mode 100644 index 00000000..c055b8b1 --- /dev/null +++ b/packages/ui/icons/svgs/arrow_down_to_square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/arrow_left_arrow_right.svg b/packages/ui/icons/svgs/arrow_left_arrow_right.svg new file mode 100644 index 00000000..3f9fd5dd --- /dev/null +++ b/packages/ui/icons/svgs/arrow_left_arrow_right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/arrow_outward.svg b/packages/ui/icons/svgs/arrow_outward.svg new file mode 100644 index 00000000..ab183deb --- /dev/null +++ b/packages/ui/icons/svgs/arrow_outward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/arrow_right_from_square.svg b/packages/ui/icons/svgs/arrow_right_from_square.svg new file mode 100644 index 00000000..e21e8808 --- /dev/null +++ b/packages/ui/icons/svgs/arrow_right_from_square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/arrow_right_to_square.svg b/packages/ui/icons/svgs/arrow_right_to_square.svg new file mode 100644 index 00000000..795f39bd --- /dev/null +++ b/packages/ui/icons/svgs/arrow_right_to_square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/arrow_shape_turn_up_right.svg b/packages/ui/icons/svgs/arrow_shape_turn_up_right.svg new file mode 100644 index 00000000..31d72b2f --- /dev/null +++ b/packages/ui/icons/svgs/arrow_shape_turn_up_right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/arrow_shape_turn_up_right_check.svg b/packages/ui/icons/svgs/arrow_shape_turn_up_right_check.svg new file mode 100644 index 00000000..339a1c75 --- /dev/null +++ b/packages/ui/icons/svgs/arrow_shape_turn_up_right_check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/arrow_up_arrow_down.svg b/packages/ui/icons/svgs/arrow_up_arrow_down.svg new file mode 100644 index 00000000..98f49900 --- /dev/null +++ b/packages/ui/icons/svgs/arrow_up_arrow_down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/arrow_uturn_ccw_left.svg b/packages/ui/icons/svgs/arrow_uturn_ccw_left.svg new file mode 100644 index 00000000..39e2cd26 --- /dev/null +++ b/packages/ui/icons/svgs/arrow_uturn_ccw_left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/arrow_uturn_cw_right.svg b/packages/ui/icons/svgs/arrow_uturn_cw_right.svg new file mode 100644 index 00000000..541a9fc1 --- /dev/null +++ b/packages/ui/icons/svgs/arrow_uturn_cw_right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/arrows_rotate_right_add.svg b/packages/ui/icons/svgs/arrows_rotate_right_add.svg new file mode 100644 index 00000000..bb0c88ac --- /dev/null +++ b/packages/ui/icons/svgs/arrows_rotate_right_add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/arrows_rotate_right_check.svg b/packages/ui/icons/svgs/arrows_rotate_right_check.svg new file mode 100644 index 00000000..a32f32d2 --- /dev/null +++ b/packages/ui/icons/svgs/arrows_rotate_right_check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/attach_file.svg b/packages/ui/icons/svgs/attach_file.svg new file mode 100644 index 00000000..174c44ff --- /dev/null +++ b/packages/ui/icons/svgs/attach_file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/bookmark.svg b/packages/ui/icons/svgs/bookmark.svg new file mode 100644 index 00000000..949caaa4 --- /dev/null +++ b/packages/ui/icons/svgs/bookmark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/bookmark_fill.svg b/packages/ui/icons/svgs/bookmark_fill.svg new file mode 100644 index 00000000..7b881864 --- /dev/null +++ b/packages/ui/icons/svgs/bookmark_fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/bookmarks.svg b/packages/ui/icons/svgs/bookmarks.svg new file mode 100644 index 00000000..592fe55c --- /dev/null +++ b/packages/ui/icons/svgs/bookmarks.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/check.svg b/packages/ui/icons/svgs/check.svg new file mode 100644 index 00000000..126a0118 --- /dev/null +++ b/packages/ui/icons/svgs/check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/chevron_down.svg b/packages/ui/icons/svgs/chevron_down.svg new file mode 100644 index 00000000..ffe06c8e --- /dev/null +++ b/packages/ui/icons/svgs/chevron_down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/chevron_down_to_line.svg b/packages/ui/icons/svgs/chevron_down_to_line.svg new file mode 100644 index 00000000..83c04716 --- /dev/null +++ b/packages/ui/icons/svgs/chevron_down_to_line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/chevron_left.svg b/packages/ui/icons/svgs/chevron_left.svg new file mode 100644 index 00000000..aa33f8d5 --- /dev/null +++ b/packages/ui/icons/svgs/chevron_left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/chevron_right.svg b/packages/ui/icons/svgs/chevron_right.svg new file mode 100644 index 00000000..7d7a99f9 --- /dev/null +++ b/packages/ui/icons/svgs/chevron_right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/chevron_up.svg b/packages/ui/icons/svgs/chevron_up.svg new file mode 100644 index 00000000..56de1a2a --- /dev/null +++ b/packages/ui/icons/svgs/chevron_up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/chevron_up_to_line.svg b/packages/ui/icons/svgs/chevron_up_to_line.svg new file mode 100644 index 00000000..061d328d --- /dev/null +++ b/packages/ui/icons/svgs/chevron_up_to_line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/chevrons_collapse_up_right.svg b/packages/ui/icons/svgs/chevrons_collapse_up_right.svg new file mode 100644 index 00000000..219bf447 --- /dev/null +++ b/packages/ui/icons/svgs/chevrons_collapse_up_right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/chevrons_expand_up_right.svg b/packages/ui/icons/svgs/chevrons_expand_up_right.svg new file mode 100644 index 00000000..362cd600 --- /dev/null +++ b/packages/ui/icons/svgs/chevrons_expand_up_right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/circle_check.svg b/packages/ui/icons/svgs/circle_check.svg new file mode 100644 index 00000000..d6dc346b --- /dev/null +++ b/packages/ui/icons/svgs/circle_check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/circle_check_fill.svg b/packages/ui/icons/svgs/circle_check_fill.svg new file mode 100644 index 00000000..3179a73e --- /dev/null +++ b/packages/ui/icons/svgs/circle_check_fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/circle_info.svg b/packages/ui/icons/svgs/circle_info.svg new file mode 100644 index 00000000..7bd2d126 --- /dev/null +++ b/packages/ui/icons/svgs/circle_info.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/circle_info_fill.svg b/packages/ui/icons/svgs/circle_info_fill.svg new file mode 100644 index 00000000..a9285f61 --- /dev/null +++ b/packages/ui/icons/svgs/circle_info_fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/circle_xmark.svg b/packages/ui/icons/svgs/circle_xmark.svg new file mode 100644 index 00000000..4f7bee5b --- /dev/null +++ b/packages/ui/icons/svgs/circle_xmark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/circle_xmark_fill.svg b/packages/ui/icons/svgs/circle_xmark_fill.svg new file mode 100644 index 00000000..df6800f7 --- /dev/null +++ b/packages/ui/icons/svgs/circle_xmark_fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/clipboard.svg b/packages/ui/icons/svgs/clipboard.svg new file mode 100644 index 00000000..52658cf8 --- /dev/null +++ b/packages/ui/icons/svgs/clipboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/clock_40.svg b/packages/ui/icons/svgs/clock_40.svg new file mode 100644 index 00000000..a9f62e1f --- /dev/null +++ b/packages/ui/icons/svgs/clock_40.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/clock_60.svg b/packages/ui/icons/svgs/clock_60.svg new file mode 100644 index 00000000..77e11f4a --- /dev/null +++ b/packages/ui/icons/svgs/clock_60.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/clock_arrow_rotate_ccw_left.svg b/packages/ui/icons/svgs/clock_arrow_rotate_ccw_left.svg new file mode 100644 index 00000000..2c5e71fd --- /dev/null +++ b/packages/ui/icons/svgs/clock_arrow_rotate_ccw_left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/code_block.svg b/packages/ui/icons/svgs/code_block.svg new file mode 100644 index 00000000..f4025785 --- /dev/null +++ b/packages/ui/icons/svgs/code_block.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/copy.svg b/packages/ui/icons/svgs/copy.svg new file mode 100644 index 00000000..747961dd --- /dev/null +++ b/packages/ui/icons/svgs/copy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/delete.svg b/packages/ui/icons/svgs/delete.svg new file mode 100644 index 00000000..a4d65cb0 --- /dev/null +++ b/packages/ui/icons/svgs/delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/delete_xmark.svg b/packages/ui/icons/svgs/delete_xmark.svg new file mode 100644 index 00000000..85cac36f --- /dev/null +++ b/packages/ui/icons/svgs/delete_xmark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/dots_horizontal.svg b/packages/ui/icons/svgs/dots_horizontal.svg new file mode 100644 index 00000000..78ad69f4 --- /dev/null +++ b/packages/ui/icons/svgs/dots_horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/dots_vertical.svg b/packages/ui/icons/svgs/dots_vertical.svg new file mode 100644 index 00000000..40eb37f3 --- /dev/null +++ b/packages/ui/icons/svgs/dots_vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/equal.svg b/packages/ui/icons/svgs/equal.svg new file mode 100644 index 00000000..b424f45c --- /dev/null +++ b/packages/ui/icons/svgs/equal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/explore.svg b/packages/ui/icons/svgs/explore.svg new file mode 100644 index 00000000..99ee136c --- /dev/null +++ b/packages/ui/icons/svgs/explore.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/explore_fill.svg b/packages/ui/icons/svgs/explore_fill.svg new file mode 100644 index 00000000..1b11e039 --- /dev/null +++ b/packages/ui/icons/svgs/explore_fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/favorite.svg b/packages/ui/icons/svgs/favorite.svg new file mode 100644 index 00000000..e70c1c0f --- /dev/null +++ b/packages/ui/icons/svgs/favorite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/favorite_fill.svg b/packages/ui/icons/svgs/favorite_fill.svg new file mode 100644 index 00000000..6674b04b --- /dev/null +++ b/packages/ui/icons/svgs/favorite_fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/file.svg b/packages/ui/icons/svgs/file.svg new file mode 100644 index 00000000..193ddd66 --- /dev/null +++ b/packages/ui/icons/svgs/file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/file_add.svg b/packages/ui/icons/svgs/file_add.svg new file mode 100644 index 00000000..7b6663b4 --- /dev/null +++ b/packages/ui/icons/svgs/file_add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/file_check.svg b/packages/ui/icons/svgs/file_check.svg new file mode 100644 index 00000000..2d958e59 --- /dev/null +++ b/packages/ui/icons/svgs/file_check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/file_check_fill.svg b/packages/ui/icons/svgs/file_check_fill.svg new file mode 100644 index 00000000..9df94618 --- /dev/null +++ b/packages/ui/icons/svgs/file_check_fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/filter.svg b/packages/ui/icons/svgs/filter.svg new file mode 100644 index 00000000..ab701bd1 --- /dev/null +++ b/packages/ui/icons/svgs/filter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/filter_fill.svg b/packages/ui/icons/svgs/filter_fill.svg new file mode 100644 index 00000000..952aa254 --- /dev/null +++ b/packages/ui/icons/svgs/filter_fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/flag_ru.svg b/packages/ui/icons/svgs/flag_ru.svg new file mode 100644 index 00000000..9aea3726 --- /dev/null +++ b/packages/ui/icons/svgs/flag_ru.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/flag_uk.svg b/packages/ui/icons/svgs/flag_uk.svg new file mode 100644 index 00000000..8d4bc581 --- /dev/null +++ b/packages/ui/icons/svgs/flag_uk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/folder.svg b/packages/ui/icons/svgs/folder.svg new file mode 100644 index 00000000..86cd5c44 --- /dev/null +++ b/packages/ui/icons/svgs/folder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/folder_add.svg b/packages/ui/icons/svgs/folder_add.svg new file mode 100644 index 00000000..abe94c5d --- /dev/null +++ b/packages/ui/icons/svgs/folder_add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/folder_fill.svg b/packages/ui/icons/svgs/folder_fill.svg new file mode 100644 index 00000000..655c1ffc --- /dev/null +++ b/packages/ui/icons/svgs/folder_fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/folder_open.svg b/packages/ui/icons/svgs/folder_open.svg new file mode 100644 index 00000000..d80c1090 --- /dev/null +++ b/packages/ui/icons/svgs/folder_open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/folder_open_fill.svg b/packages/ui/icons/svgs/folder_open_fill.svg new file mode 100644 index 00000000..7fba0c03 --- /dev/null +++ b/packages/ui/icons/svgs/folder_open_fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/folders.svg b/packages/ui/icons/svgs/folders.svg new file mode 100644 index 00000000..763262c1 --- /dev/null +++ b/packages/ui/icons/svgs/folders.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/format_bold.svg b/packages/ui/icons/svgs/format_bold.svg new file mode 100644 index 00000000..100b4253 --- /dev/null +++ b/packages/ui/icons/svgs/format_bold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/format_italic.svg b/packages/ui/icons/svgs/format_italic.svg new file mode 100644 index 00000000..6d208eff --- /dev/null +++ b/packages/ui/icons/svgs/format_italic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/format_list_ol.svg b/packages/ui/icons/svgs/format_list_ol.svg new file mode 100644 index 00000000..92208631 --- /dev/null +++ b/packages/ui/icons/svgs/format_list_ol.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/format_list_ul.svg b/packages/ui/icons/svgs/format_list_ul.svg new file mode 100644 index 00000000..eb26153a --- /dev/null +++ b/packages/ui/icons/svgs/format_list_ul.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/format_undeline.svg b/packages/ui/icons/svgs/format_undeline.svg new file mode 100644 index 00000000..5f7debc8 --- /dev/null +++ b/packages/ui/icons/svgs/format_undeline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/fullscreen.svg b/packages/ui/icons/svgs/fullscreen.svg new file mode 100644 index 00000000..25721f1b --- /dev/null +++ b/packages/ui/icons/svgs/fullscreen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/funnel.svg b/packages/ui/icons/svgs/funnel.svg new file mode 100644 index 00000000..4983a659 --- /dev/null +++ b/packages/ui/icons/svgs/funnel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/globe.svg b/packages/ui/icons/svgs/globe.svg new file mode 100644 index 00000000..aff4f238 --- /dev/null +++ b/packages/ui/icons/svgs/globe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/globe_add.svg b/packages/ui/icons/svgs/globe_add.svg new file mode 100644 index 00000000..05f2e3ac --- /dev/null +++ b/packages/ui/icons/svgs/globe_add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/google.svg b/packages/ui/icons/svgs/google.svg new file mode 100644 index 00000000..ea6c5652 --- /dev/null +++ b/packages/ui/icons/svgs/google.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/grip.svg b/packages/ui/icons/svgs/grip.svg new file mode 100644 index 00000000..c6079a80 --- /dev/null +++ b/packages/ui/icons/svgs/grip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/hint.svg b/packages/ui/icons/svgs/hint.svg new file mode 100644 index 00000000..507bd1c9 --- /dev/null +++ b/packages/ui/icons/svgs/hint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/hint_add.svg b/packages/ui/icons/svgs/hint_add.svg new file mode 100644 index 00000000..46937411 --- /dev/null +++ b/packages/ui/icons/svgs/hint_add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/hint_slash.svg b/packages/ui/icons/svgs/hint_slash.svg new file mode 100644 index 00000000..5ccb5fa8 --- /dev/null +++ b/packages/ui/icons/svgs/hint_slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/home.svg b/packages/ui/icons/svgs/home.svg new file mode 100644 index 00000000..f5d8d18a --- /dev/null +++ b/packages/ui/icons/svgs/home.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/home_fill.svg b/packages/ui/icons/svgs/home_fill.svg new file mode 100644 index 00000000..0502a6c3 --- /dev/null +++ b/packages/ui/icons/svgs/home_fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/interests.svg b/packages/ui/icons/svgs/interests.svg new file mode 100644 index 00000000..a115bcdc --- /dev/null +++ b/packages/ui/icons/svgs/interests.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/interests_fill.svg b/packages/ui/icons/svgs/interests_fill.svg new file mode 100644 index 00000000..4238bbea --- /dev/null +++ b/packages/ui/icons/svgs/interests_fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/language.svg b/packages/ui/icons/svgs/language.svg new file mode 100644 index 00000000..0463e9a8 --- /dev/null +++ b/packages/ui/icons/svgs/language.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/learn.svg b/packages/ui/icons/svgs/learn.svg new file mode 100644 index 00000000..7df93a5b --- /dev/null +++ b/packages/ui/icons/svgs/learn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/link.svg b/packages/ui/icons/svgs/link.svg new file mode 100644 index 00000000..7b67e7e4 --- /dev/null +++ b/packages/ui/icons/svgs/link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/link_add.svg b/packages/ui/icons/svgs/link_add.svg new file mode 100644 index 00000000..3234711b --- /dev/null +++ b/packages/ui/icons/svgs/link_add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/link_slash.svg b/packages/ui/icons/svgs/link_slash.svg new file mode 100644 index 00000000..8cf80c8a --- /dev/null +++ b/packages/ui/icons/svgs/link_slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/list_add.svg b/packages/ui/icons/svgs/list_add.svg new file mode 100644 index 00000000..3e6f8ce8 --- /dev/null +++ b/packages/ui/icons/svgs/list_add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/magnifier.svg b/packages/ui/icons/svgs/magnifier.svg new file mode 100644 index 00000000..148228b8 --- /dev/null +++ b/packages/ui/icons/svgs/magnifier.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/mail_aol.svg b/packages/ui/icons/svgs/mail_aol.svg new file mode 100644 index 00000000..fa0e56e6 --- /dev/null +++ b/packages/ui/icons/svgs/mail_aol.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/mail_gmail.svg b/packages/ui/icons/svgs/mail_gmail.svg new file mode 100644 index 00000000..0437d803 --- /dev/null +++ b/packages/ui/icons/svgs/mail_gmail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/mail_icloud.svg b/packages/ui/icons/svgs/mail_icloud.svg new file mode 100644 index 00000000..3c006944 --- /dev/null +++ b/packages/ui/icons/svgs/mail_icloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/mail_mail.svg b/packages/ui/icons/svgs/mail_mail.svg new file mode 100644 index 00000000..f89ff370 --- /dev/null +++ b/packages/ui/icons/svgs/mail_mail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/mail_outlook.svg b/packages/ui/icons/svgs/mail_outlook.svg new file mode 100644 index 00000000..95abd08c --- /dev/null +++ b/packages/ui/icons/svgs/mail_outlook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/mail_proton.svg b/packages/ui/icons/svgs/mail_proton.svg new file mode 100644 index 00000000..bc505adf --- /dev/null +++ b/packages/ui/icons/svgs/mail_proton.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/mail_yahoo.svg b/packages/ui/icons/svgs/mail_yahoo.svg new file mode 100644 index 00000000..cb1f38fe --- /dev/null +++ b/packages/ui/icons/svgs/mail_yahoo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/mail_yandex.svg b/packages/ui/icons/svgs/mail_yandex.svg new file mode 100644 index 00000000..90f9de66 --- /dev/null +++ b/packages/ui/icons/svgs/mail_yandex.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/minus.svg b/packages/ui/icons/svgs/minus.svg new file mode 100644 index 00000000..1e29d0f6 --- /dev/null +++ b/packages/ui/icons/svgs/minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/move_to_folder.svg b/packages/ui/icons/svgs/move_to_folder.svg new file mode 100644 index 00000000..e40b6ed7 --- /dev/null +++ b/packages/ui/icons/svgs/move_to_folder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/notifications.svg b/packages/ui/icons/svgs/notifications.svg new file mode 100644 index 00000000..fe0d668a --- /dev/null +++ b/packages/ui/icons/svgs/notifications.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/pencil.svg b/packages/ui/icons/svgs/pencil.svg new file mode 100644 index 00000000..09789c7c --- /dev/null +++ b/packages/ui/icons/svgs/pencil.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/person_add.svg b/packages/ui/icons/svgs/person_add.svg new file mode 100644 index 00000000..1d175536 --- /dev/null +++ b/packages/ui/icons/svgs/person_add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/person_check.svg b/packages/ui/icons/svgs/person_check.svg new file mode 100644 index 00000000..2b12daab --- /dev/null +++ b/packages/ui/icons/svgs/person_check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/person_check_fill.svg b/packages/ui/icons/svgs/person_check_fill.svg new file mode 100644 index 00000000..fc0bca02 --- /dev/null +++ b/packages/ui/icons/svgs/person_check_fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/person_edit.svg b/packages/ui/icons/svgs/person_edit.svg new file mode 100644 index 00000000..a03275d5 --- /dev/null +++ b/packages/ui/icons/svgs/person_edit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/person_edit_fill.svg b/packages/ui/icons/svgs/person_edit_fill.svg new file mode 100644 index 00000000..4450c834 --- /dev/null +++ b/packages/ui/icons/svgs/person_edit_fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/person_group.svg b/packages/ui/icons/svgs/person_group.svg new file mode 100644 index 00000000..0b3efcfa --- /dev/null +++ b/packages/ui/icons/svgs/person_group.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/person_pin.svg b/packages/ui/icons/svgs/person_pin.svg new file mode 100644 index 00000000..0c2005e2 --- /dev/null +++ b/packages/ui/icons/svgs/person_pin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/plus.svg b/packages/ui/icons/svgs/plus.svg new file mode 100644 index 00000000..eeb8665d --- /dev/null +++ b/packages/ui/icons/svgs/plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/preview.svg b/packages/ui/icons/svgs/preview.svg new file mode 100644 index 00000000..720a1558 --- /dev/null +++ b/packages/ui/icons/svgs/preview.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/set.svg b/packages/ui/icons/svgs/set.svg new file mode 100644 index 00000000..fe5f959c --- /dev/null +++ b/packages/ui/icons/svgs/set.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/set_add.svg b/packages/ui/icons/svgs/set_add.svg new file mode 100644 index 00000000..28afcb31 --- /dev/null +++ b/packages/ui/icons/svgs/set_add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/settings.svg b/packages/ui/icons/svgs/settings.svg new file mode 100644 index 00000000..c4633090 --- /dev/null +++ b/packages/ui/icons/svgs/settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/shuffle.svg b/packages/ui/icons/svgs/shuffle.svg new file mode 100644 index 00000000..d5ded4a0 --- /dev/null +++ b/packages/ui/icons/svgs/shuffle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/sort.svg b/packages/ui/icons/svgs/sort.svg new file mode 100644 index 00000000..09d65a0f --- /dev/null +++ b/packages/ui/icons/svgs/sort.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/sort_by_alpha.svg b/packages/ui/icons/svgs/sort_by_alpha.svg new file mode 100644 index 00000000..00a89317 --- /dev/null +++ b/packages/ui/icons/svgs/sort_by_alpha.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/spinner.svg b/packages/ui/icons/svgs/spinner.svg new file mode 100644 index 00000000..451befe7 --- /dev/null +++ b/packages/ui/icons/svgs/spinner.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/star.svg b/packages/ui/icons/svgs/star.svg new file mode 100644 index 00000000..1bd86d55 --- /dev/null +++ b/packages/ui/icons/svgs/star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/table_convert.svg b/packages/ui/icons/svgs/table_convert.svg new file mode 100644 index 00000000..e4ca66b2 --- /dev/null +++ b/packages/ui/icons/svgs/table_convert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/tag.svg b/packages/ui/icons/svgs/tag.svg new file mode 100644 index 00000000..4b980e13 --- /dev/null +++ b/packages/ui/icons/svgs/tag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/text_format.svg b/packages/ui/icons/svgs/text_format.svg new file mode 100644 index 00000000..5286d4c3 --- /dev/null +++ b/packages/ui/icons/svgs/text_format.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/vk.svg b/packages/ui/icons/svgs/vk.svg new file mode 100644 index 00000000..348323e1 --- /dev/null +++ b/packages/ui/icons/svgs/vk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/xmark.svg b/packages/ui/icons/svgs/xmark.svg new file mode 100644 index 00000000..190da998 --- /dev/null +++ b/packages/ui/icons/svgs/xmark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/svgs/yandex.svg b/packages/ui/icons/svgs/yandex.svg new file mode 100644 index 00000000..b126b309 --- /dev/null +++ b/packages/ui/icons/svgs/yandex.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/icons/tsconfig.build.json b/packages/ui/icons/tsconfig.build.json new file mode 100644 index 00000000..640efe3a --- /dev/null +++ b/packages/ui/icons/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "jsx": "preserve", + "allowImportingTsExtensions": false, + "declaration": false, + "declarationMap": false, + "emitDeclarationOnly": false, + "outDir": "." + }, + "include": ["lib/"] +} diff --git a/packages/ui/icons/tsconfig.json b/packages/ui/icons/tsconfig.json new file mode 100644 index 00000000..9ce1dca8 --- /dev/null +++ b/packages/ui/icons/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "@flippo/tsconfig", + "compilerOptions": { + "composite": false, + "jsx": "react", + "lib": ["DOM", "DOM.Iterable", "ESNext"], + + "baseUrl": ".", + "types": ["node", "react", "react-dom"], + "allowJs": true + }, + "include": ["lib/**/*.ts", "scripts/**/*.js", "lib/**/*.tsx", "lib/**/*.jsx", "./*.d.ts"], + "exclude": ["node_modules", "dist"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 497b2c5e..9947ba3a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,6 +21,9 @@ catalogs: '@farfetched/core': specifier: ^0.13.1 version: 0.13.1 + '@figma-export/core': + specifier: ^6.2.0 + version: 6.2.0 '@storybook/addon-essentials': specifier: 8.6.11 version: 8.6.11 @@ -48,6 +51,12 @@ catalogs: '@storybook/theming': specifier: ^8.6.11 version: 8.6.12 + '@svgr/core': + specifier: ^8.1.0 + version: 8.1.0 + '@svgr/plugin-jsx': + specifier: ^8.1.0 + version: 8.1.0 '@testing-library/webdriverio': specifier: ^3.2.1 version: 3.2.1 @@ -153,6 +162,9 @@ catalogs: i18next-http-backend: specifier: ^3.0.2 version: 3.0.2 + is-svg: + specifier: ^5.1.0 + version: 5.1.0 jiti: specifier: ^2.4.2 version: 2.4.2 @@ -198,6 +210,9 @@ catalogs: surrealdb: specifier: ^1.2.1 version: 1.3.1 + svgo: + specifier: ^3.3.2 + version: 3.3.2 testplane: specifier: ^8.26.0 version: 8.27.2 @@ -576,6 +591,60 @@ importers: specifier: 'catalog:' version: 5.8.3 + packages/ui/icons: + devDependencies: + '@figma-export/core': + specifier: 'catalog:' + version: 6.2.0 + '@flippo/eslint': + specifier: workspace:* + version: link:../../eslint + '@flippo/tsconfig': + specifier: workspace:* + version: link:../../tsconfig + '@svgr/core': + specifier: 'catalog:' + version: 8.1.0(typescript@5.7.3) + '@svgr/plugin-jsx': + specifier: 'catalog:' + version: 8.1.0(@svgr/core@8.1.0(typescript@5.7.3)) + '@types/node': + specifier: 'catalog:' + version: 22.14.0 + '@types/react': + specifier: 'catalog:' + version: 19.0.12 + '@types/react-dom': + specifier: 'catalog:' + version: 19.0.4(@types/react@19.0.12) + eslint: + specifier: 'catalog:' + version: 9.24.0(jiti@2.4.2) + eslint-plugin-react-refresh: + specifier: 'catalog:' + version: 0.4.19(eslint@9.24.0(jiti@2.4.2)) + fast-glob: + specifier: ^3.3.3 + version: 3.3.3 + is-svg: + specifier: 'catalog:' + version: 5.1.0 + react: + specifier: 'catalog:' + version: 19.1.0 + react-dom: + specifier: 'catalog:' + version: 19.1.0(react@19.1.0) + rimraf: + specifier: ^6.0.1 + version: 6.0.1 + svgo: + specifier: 'catalog:' + version: 3.3.2 + typescript: + specifier: 'catalog:' + version: 5.7.3 + packages/ui/uikit: dependencies: react: @@ -594,6 +663,9 @@ importers: '@flippo/tsconfig': specifier: workspace:* version: link:../../tsconfig + '@flippo_ui/icons': + specifier: workspace:* + version: link:../icons '@turbo/gen': specifier: 'catalog:' version: 2.5.0(@types/node@22.14.0)(typescript@5.8.3) @@ -1584,6 +1656,17 @@ packages: peerDependencies: effector: ^23.0.0 + '@figma-export/core@6.2.0': + resolution: {integrity: sha512-YnnYseytvkHRjwihqFO2FIf8WWKg9Qm7hPiiCu46LfFW3n4zQDchYsk4iqNvDcNP17M/h/XSnrO1bmLCJBpAfA==} + engines: {node: '>= 18.18'} + + '@figma-export/types@6.2.0': + resolution: {integrity: sha512-pTnQbkSR/fdLUGGfuAj8syQQkN/CI4V32gHXHrGRGIHte9S9ubKS8foIJ05L9jCJA2LRw55MWisDJrprZ7D9Bg==} + engines: {node: '>= 18.18'} + + '@figma/rest-api-spec@0.24.0': + resolution: {integrity: sha512-c/LHQNzfn8HSuo608TnfHJS8K3Ps61MvDbqTTL+qVx2FCIui7dI3RC2bG2/kSHmQXXKTbgbcAADyU6Rf8YkZbQ==} + '@gemini-testing/commander@2.15.4': resolution: {integrity: sha512-GIvIknEbJccKMv2KCgYOOZPy4QgR3/8csvds/WCUGEJPkghHz6VrziG7cBaB4n91PsFEpOwU+uJqXun5sEBpwg==} @@ -2033,6 +2116,74 @@ packages: peerDependencies: eslint: '>=9.0.0' + '@svgr/babel-plugin-add-jsx-attribute@8.0.0': + resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0': + resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0': + resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0': + resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-dynamic-title@8.0.0': + resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-em-dimensions@8.0.0': + resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-react-native-svg@8.1.0': + resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-svg-component@8.0.0': + resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-preset@8.1.0': + resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/core@8.1.0': + resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} + engines: {node: '>=14'} + + '@svgr/hast-util-to-babel-ast@8.0.0': + resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} + engines: {node: '>=14'} + + '@svgr/plugin-jsx@8.1.0': + resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} + engines: {node: '>=14'} + peerDependencies: + '@svgr/core': '*' + '@testing-library/dom@10.4.0': resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} engines: {node: '>=18'} @@ -2125,6 +2276,10 @@ packages: '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -2301,6 +2456,9 @@ packages: '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} + '@types/retry@0.12.2': + resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} + '@types/send@0.17.4': resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -3109,6 +3267,10 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + commander@9.5.0: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} @@ -3179,6 +3341,15 @@ packages: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} + cosmiconfig@8.3.6: + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + cosmiconfig@9.0.0: resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} @@ -3235,6 +3406,14 @@ packages: css-shorthand-properties@1.1.2: resolution: {integrity: sha512-C2AugXIpRGQTxaCW0N7n5jD/p5irUmCrwl03TrnMFBHDbdq44CFWR2zO7rK9xPN4Eo3pUxC4vQzQgbIpzrD1PQ==} + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-tree@3.1.0: resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} @@ -3257,6 +3436,10 @@ packages: engines: {node: '>=4'} hasBin: true + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -3446,6 +3629,9 @@ packages: dot-case@2.1.1: resolution: {integrity: sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==} + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dotenv@16.0.3: resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} engines: {node: '>=12'} @@ -4252,6 +4438,11 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true + glob@11.0.1: + resolution: {integrity: sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==} + engines: {node: 20 || >=22} + hasBin: true + glob@7.2.0: resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -4605,6 +4796,10 @@ packages: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} + is-network-error@1.1.0: + resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} + engines: {node: '>=16'} + is-number-object@1.1.1: resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} @@ -4657,6 +4852,10 @@ packages: resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} engines: {node: '>=4'} + is-svg@5.1.0: + resolution: {integrity: sha512-uVg5yifaTxHoefNf5Jcx+i9RZe2OBYd/UStp1umx+EERa4xGRa3LLGXjoEph43qUORC0qkafUgrXZ6zzK89yGA==} + engines: {node: '>=14.16'} + is-symbol@1.1.1: resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} engines: {node: '>= 0.4'} @@ -4713,6 +4912,10 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jackspeak@4.1.0: + resolution: {integrity: sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==} + engines: {node: 20 || >=22} + jest-diff@28.1.3: resolution: {integrity: sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -4940,9 +5143,16 @@ packages: lower-case@1.1.4: resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==} + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.1.0: + resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -5013,6 +5223,12 @@ packages: mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + mdn-data@2.12.2: resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} @@ -5268,6 +5484,9 @@ packages: no-case@2.3.2: resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + node-abi@3.74.0: resolution: {integrity: sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==} engines: {node: '>=10'} @@ -5418,6 +5637,10 @@ packages: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} + p-limit@6.2.0: + resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==} + engines: {node: '>=18'} + p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -5438,6 +5661,10 @@ packages: resolution: {integrity: sha512-6QfeouDf236N+MAxHch0CVIy8o/KBnmhttKjxZoOkUlzqU+u9rZgEyXH3OdckhTgawbqf5rpzmyR+07+Lv0+zg==} engines: {node: '>=8'} + p-retry@6.2.1: + resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==} + engines: {node: '>=16.17'} + p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -5523,6 +5750,10 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + path-to-regexp@0.1.12: resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} @@ -6084,6 +6315,10 @@ packages: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + reusify@1.1.0: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -6106,6 +6341,11 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true + rimraf@6.0.1: + resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} + engines: {node: 20 || >=22} + hasBin: true + rollup@4.39.0: resolution: {integrity: sha512-thI8kNc02yNvnmJp8dr3fNWJ9tCONDhp6TV35X6HkKGGs9E6q7YWCHbe5vKiTa7TAiNcFEmXKj3X/pG2b3ci0g==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -6415,6 +6655,9 @@ packages: snake-case@2.1.0: resolution: {integrity: sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==} + snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + socket.io-adapter@2.5.5: resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} @@ -6626,9 +6869,17 @@ packages: tslib: ^2.6.3 typescript: ^5.0.0 + svg-parser@2.0.4: + resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} + svg-tags@1.0.0: resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + svgo@3.3.2: + resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} + engines: {node: '>=14.0.0'} + hasBin: true + swap-case@1.1.2: resolution: {integrity: sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==} @@ -6865,6 +7116,11 @@ packages: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} + typescript@5.7.3: + resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} + engines: {node: '>=14.17'} + hasBin: true + typescript@5.8.3: resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} engines: {node: '>=14.17'} @@ -7305,6 +7561,10 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + yocto-queue@1.2.1: + resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} + engines: {node: '>=12.20'} + zip-stream@6.0.1: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} @@ -8347,6 +8607,20 @@ snapshots: dependencies: effector: 23.3.0 + '@figma-export/core@6.2.0': + dependencies: + '@figma-export/types': 6.2.0 + '@figma/rest-api-spec': 0.24.0 + p-limit: 6.2.0 + p-retry: 6.2.1 + undici: 6.21.2 + + '@figma-export/types@6.2.0': + dependencies: + '@figma/rest-api-spec': 0.24.0 + + '@figma/rest-api-spec@0.24.0': {} + '@gemini-testing/commander@2.15.4': {} '@gemini-testing/sql.js@2.0.0': {} @@ -8841,6 +9115,76 @@ snapshots: - supports-color - typescript + '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + + '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + + '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + + '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + + '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + + '@svgr/babel-preset@8.1.0(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.26.10) + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.26.10) + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.26.10) + '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.26.10) + '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.26.10) + '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.26.10) + '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.26.10) + '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.26.10) + + '@svgr/core@8.1.0(typescript@5.7.3)': + dependencies: + '@babel/core': 7.26.10 + '@svgr/babel-preset': 8.1.0(@babel/core@7.26.10) + camelcase: 6.3.0 + cosmiconfig: 8.3.6(typescript@5.7.3) + snake-case: 3.0.4 + transitivePeerDependencies: + - supports-color + - typescript + + '@svgr/hast-util-to-babel-ast@8.0.0': + dependencies: + '@babel/types': 7.27.0 + entities: 4.5.0 + + '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.7.3))': + dependencies: + '@babel/core': 7.26.10 + '@svgr/babel-preset': 8.1.0(@babel/core@7.26.10) + '@svgr/core': 8.1.0(typescript@5.7.3) + '@svgr/hast-util-to-babel-ast': 8.0.0 + svg-parser: 2.0.4 + transitivePeerDependencies: + - supports-color + '@testing-library/dom@10.4.0': dependencies: '@babel/code-frame': 7.26.2 @@ -9064,6 +9408,8 @@ snapshots: '@tootallnate/quickjs-emscripten@0.23.0': {} + '@trysound/sax@0.2.0': {} + '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} @@ -9287,6 +9633,8 @@ snapshots: '@types/resolve@1.20.6': {} + '@types/retry@0.12.2': {} + '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 @@ -10176,6 +10524,8 @@ snapshots: commander@2.20.3: {} + commander@7.2.0: {} + commander@9.5.0: {} comment-parser@1.4.1: {} @@ -10235,6 +10585,15 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 + cosmiconfig@8.3.6(typescript@5.7.3): + dependencies: + import-fresh: 3.3.1 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + optionalDependencies: + typescript: 5.7.3 + cosmiconfig@9.0.0(typescript@5.8.3): dependencies: env-paths: 2.2.1 @@ -10293,6 +10652,16 @@ snapshots: css-shorthand-properties@1.1.2: {} + css-tree@2.2.1: + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.2.1 + + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.1 + css-tree@3.1.0: dependencies: mdn-data: 2.12.2 @@ -10308,6 +10677,10 @@ snapshots: cssesc@3.0.0: {} + csso@5.0.5: + dependencies: + css-tree: 2.2.1 + csstype@3.1.3: {} data-uri-to-buffer@4.0.1: {} @@ -10476,6 +10849,11 @@ snapshots: dependencies: no-case: 2.3.2 + dot-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + dotenv@16.0.3: {} dotenv@16.4.7: {} @@ -11578,6 +11956,15 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 + glob@11.0.1: + dependencies: + foreground-child: 3.3.1 + jackspeak: 4.1.0 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 + glob@7.2.0: dependencies: fs.realpath: 1.0.0 @@ -11974,6 +12361,8 @@ snapshots: is-map@2.0.3: {} + is-network-error@1.1.0: {} + is-number-object@1.1.1: dependencies: call-bound: 1.0.4 @@ -12015,6 +12404,10 @@ snapshots: dependencies: better-path-resolve: 1.0.0 + is-svg@5.1.0: + dependencies: + fast-xml-parser: 4.5.3 + is-symbol@1.1.1: dependencies: call-bound: 1.0.4 @@ -12064,6 +12457,10 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jackspeak@4.1.0: + dependencies: + '@isaacs/cliui': 8.0.2 + jest-diff@28.1.3: dependencies: chalk: 4.1.2 @@ -12295,8 +12692,14 @@ snapshots: lower-case@1.1.4: {} + lower-case@2.0.2: + dependencies: + tslib: 2.8.1 + lru-cache@10.4.3: {} + lru-cache@11.1.0: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -12427,6 +12830,10 @@ snapshots: dependencies: '@types/mdast': 4.0.4 + mdn-data@2.0.28: {} + + mdn-data@2.0.30: {} + mdn-data@2.12.2: {} media-typer@0.3.0: {} @@ -12767,6 +13174,11 @@ snapshots: dependencies: lower-case: 1.1.4 + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.8.1 + node-abi@3.74.0: dependencies: semver: 7.7.1 @@ -12939,6 +13351,10 @@ snapshots: dependencies: yocto-queue: 0.1.0 + p-limit@6.2.0: + dependencies: + yocto-queue: 1.2.1 + p-locate@4.1.0: dependencies: p-limit: 2.3.0 @@ -12957,6 +13373,12 @@ snapshots: dependencies: eventemitter3: 3.1.2 + p-retry@6.2.1: + dependencies: + '@types/retry': 0.12.2 + is-network-error: 1.1.0 + retry: 0.13.1 + p-try@2.2.0: {} pac-proxy-agent@7.2.0: @@ -13054,6 +13476,11 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + path-scurry@2.0.0: + dependencies: + lru-cache: 11.1.0 + minipass: 7.1.2 + path-to-regexp@0.1.12: {} path-to-regexp@6.3.0: {} @@ -13727,6 +14154,8 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 + retry@0.13.1: {} + reusify@1.1.0: {} rgb2hex@0.2.5: {} @@ -13741,6 +14170,11 @@ snapshots: dependencies: glob: 7.2.3 + rimraf@6.0.1: + dependencies: + glob: 11.0.1 + package-json-from-dist: 1.0.1 + rollup@4.39.0: dependencies: '@types/estree': 1.0.7 @@ -14090,6 +14524,11 @@ snapshots: dependencies: no-case: 2.3.2 + snake-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + socket.io-adapter@2.5.5(bufferutil@4.0.9)(utf-8-validate@6.0.5): dependencies: debug: 4.3.7 @@ -14368,8 +14807,20 @@ snapshots: transitivePeerDependencies: - ws + svg-parser@2.0.4: {} + svg-tags@1.0.0: {} + svgo@3.3.2: + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.1.1 + swap-case@1.1.2: dependencies: lower-case: 1.1.4 @@ -14662,6 +15113,8 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 + typescript@5.7.3: {} + typescript@5.8.3: {} ua-parser-js@1.0.40: {} @@ -15085,6 +15538,8 @@ snapshots: yocto-queue@0.1.0: {} + yocto-queue@1.2.1: {} + zip-stream@6.0.1: dependencies: archiver-utils: 5.0.2 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 6f1e4434..e16ec53e 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -10,6 +10,7 @@ catalog: "@chromatic-com/storybook": 3.2.6 "@eslint-react/eslint-plugin": ^1.40.3 "@farfetched/core": ^0.13.1 + "@figma-export/core": ^6.2.0 "@storybook/addon-essentials": 8.6.11 "@storybook/addon-interactions": 8.6.11 "@storybook/addon-onboarding": 8.6.11 @@ -19,6 +20,8 @@ catalog: "@storybook/react-vite": 8.6.11 "@storybook/test": 8.6.11 "@storybook/theming": ^8.6.11 + "@svgr/core": ^8.1.0 + "@svgr/plugin-jsx": ^8.1.0 "@testing-library/webdriverio": ^3.2.1 "@testplane/global-hook": ^1.0.0 "@testplane/storybook": ^1.6.1 @@ -48,6 +51,7 @@ catalog: eslint-plugin-react-refresh: ^0.4.19 eslint-plugin-storybook: ^0.12.0 eslint-plugin-turbo: ^2.5.0 + fast-glob: ^0.0.0 framer-motion: ^12.6.2 globals: ^16.0.0 history: ^5.3.0 @@ -56,6 +60,7 @@ catalog: i18next-browser-languagedetector: ^8.0.4 i18next-hmr: ^3.1.3 i18next-http-backend: ^3.0.2 + is-svg: ^5.1.0 jiti: ^2.4.2 js-cookie: ^3.0.5 patronum: ^2.3.0 @@ -64,12 +69,15 @@ catalog: postcss-preset-env: ^10.1.5 react-i18next: ^15.4.1 react-use-measure: ^2.1.7 + rimraf: ^0.0.0 sass-embedded: ^1.86.1 storybook: 8.6.11 storybook-react-i18next: ^3.2.1 stylelint: ^16.17.0 surrealdb: ^1.2.1 + svgo: ^3.3.2 testplane: ^8.26.0 + tsup: ^8.4.0 typescript: ^5.8.2 react: "^19.1.0" "react-dom": "^19.1.0"