mirror of
https://github.com/iconoir-icons/iconoir
synced 2026-03-14 22:15:43 +01:00
Compare commits
18 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2911b580e9 |
||
|
|
6e6d2e27ea |
||
|
|
ec9e470fda |
||
|
|
320c603674 |
||
|
|
91f5ff77b3 |
||
|
|
3a0e86816e |
||
|
|
ea8474ed13 | ||
|
|
b12a69bf9e | ||
|
|
569fa8246e | ||
|
|
4d9e934c61 |
||
|
|
76b89cca9d |
||
|
|
fc38183e2b | ||
|
|
e048feaae0 |
||
|
|
48c6486a1d | ||
|
|
80608c712a | ||
|
|
99165c8e8e | ||
|
|
a0357830a5 |
||
|
|
36cf751ed3 |
33 changed files with 4308 additions and 5435 deletions
2
.github/workflows/build.yaml
vendored
2
.github/workflows/build.yaml
vendored
|
|
@ -22,6 +22,6 @@ jobs:
|
|||
run: pnpm run build css
|
||||
|
||||
- name: Commit changes
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
uses: stefanzweifel/git-auto-commit-action@v6
|
||||
with:
|
||||
commit_message: Update build artifacts
|
||||
|
|
|
|||
2
.github/workflows/ci.yaml
vendored
2
.github/workflows/ci.yaml
vendored
|
|
@ -16,7 +16,7 @@ jobs:
|
|||
steps:
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@v45
|
||||
uses: tj-actions/changed-files@v46
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
|
|
|||
2
.github/workflows/release.yaml
vendored
2
.github/workflows/release.yaml
vendored
|
|
@ -41,7 +41,7 @@ jobs:
|
|||
TAG_NAME: ${{ github.ref_name }}
|
||||
|
||||
- name: Commit release
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
uses: stefanzweifel/git-auto-commit-action@v6
|
||||
with:
|
||||
commit_message: Release Version ${{ github.ref_name }}
|
||||
branch: main
|
||||
|
|
|
|||
1
.node-version
Normal file
1
.node-version
Normal file
|
|
@ -0,0 +1 @@
|
|||
22
|
||||
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
|
|
@ -41,6 +41,7 @@
|
|||
"gql",
|
||||
"graphql",
|
||||
"astro",
|
||||
"svelte",
|
||||
"css",
|
||||
"less",
|
||||
"scss",
|
||||
|
|
|
|||
|
|
@ -2,13 +2,12 @@
|
|||
|
||||
[](https://github.com/iconoir-icons/iconoir/releases)
|
||||
[](https://github.com/iconoir-icons/iconoir)
|
||||
[](https://www.npmjs.com/package/iconoir-react)
|
||||
[](https://github.com/iconoir-icons/iconoir/blob/main/LICENSE)
|
||||
[](https://discord.gg/txXcKCAmKW)
|
||||
[](https://discord.gg/txXcKCAmKW)
|
||||
|
||||
## What is Iconoir?
|
||||
|
||||
Iconoir is an open-source library with 1500+ unique SVG icons, designed on a 24x24 pixels grid.
|
||||
Iconoir is an open-source library with 1600+ unique SVG icons, designed on a 24x24 pixels grid.
|
||||
|
||||
<a href="https://iconoir.com"><strong>Browse at iconoir.com →</strong></a>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { normalize } from 'node:path';
|
||||
import ts from 'typescript';
|
||||
|
||||
/**
|
||||
|
|
@ -16,7 +17,7 @@ export function getDts(path, content, options) {
|
|||
const _readFile = host.readFile;
|
||||
|
||||
host.readFile = (filename) => {
|
||||
if (filename === path)
|
||||
if (normalize(filename) === path)
|
||||
return content;
|
||||
|
||||
return _readFile(filename);
|
||||
|
|
@ -25,7 +26,7 @@ export function getDts(path, content, options) {
|
|||
const dtsFilename = path.replace(/\.(m|c)?(ts|js)x?$/, '.d.$1ts');
|
||||
|
||||
host.writeFile = (filename, contents) => {
|
||||
if (filename === dtsFilename)
|
||||
if (normalize(filename) === dtsFilename)
|
||||
output = contents;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import fs from 'node:fs/promises';
|
||||
import { EOL } from 'node:os';
|
||||
import path from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
|
|
@ -29,7 +30,7 @@ export default async (ctx, target) => {
|
|||
const fileContent = await fs.readFile(icon.path, 'utf8');
|
||||
|
||||
const transformedContent = fileContent
|
||||
.replace(/\n/g, '')
|
||||
.replaceAll(EOL, '')
|
||||
.replace(/(width|height)="\d+px"/g, '')
|
||||
.replace(/ +/g, ' ');
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ export default async (ctx, target) => {
|
|||
|
||||
const outDir = path.join(target.path, 'lib');
|
||||
|
||||
const entryContent = ['library iconoir_flutter;'];
|
||||
const entryContent = ['library;'];
|
||||
|
||||
for (const [variant, icons] of Object.entries(ctx.icons)) {
|
||||
const variantOutDir = path.join(outDir, variant);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
function template(name, svg) {
|
||||
return `
|
||||
import 'package:flutter/widgets.dart' as widgets;
|
||||
return `import 'package:flutter/widgets.dart' as widgets;
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
|
||||
class ${name} extends widgets.StatelessWidget {
|
||||
|
|
@ -8,18 +7,18 @@ class ${name} extends widgets.StatelessWidget {
|
|||
final double? width;
|
||||
final double? height;
|
||||
|
||||
const ${name}({widgets.Key? key, this.color, this.width, this.height})
|
||||
: super(key: key);
|
||||
const ${name}({super.key, this.color, this.width, this.height});
|
||||
|
||||
@override
|
||||
widgets.Widget build(widgets.BuildContext context) => SvgPicture.string(
|
||||
'''
|
||||
'''
|
||||
${svg}''',
|
||||
colorFilter:
|
||||
color != null ? widgets.ColorFilter.mode(color!, widgets.BlendMode.srcIn) : null,
|
||||
width: width,
|
||||
height: height,
|
||||
);
|
||||
colorFilter: color != null
|
||||
? widgets.ColorFilter.mode(color!, widgets.BlendMode.srcIn)
|
||||
: null,
|
||||
width: width,
|
||||
height: height,
|
||||
);
|
||||
}
|
||||
`;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -174,8 +174,10 @@ export default async (ctx, target) => {
|
|||
async function getReactComponent(iconPath, native, template) {
|
||||
const iconContent = await fs.readFile(iconPath, 'utf8');
|
||||
|
||||
const options = native ? nativeSvgrOptions : svgrOptions;
|
||||
options.template = template;
|
||||
const options = {
|
||||
...(native ? nativeSvgrOptions : svgrOptions),
|
||||
template,
|
||||
};
|
||||
|
||||
return svgr.transform(iconContent, options);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ export function getTemplate(native, iconoirContextPath) {
|
|||
if (native)
|
||||
variables.props[1].typeAnnotation.typeAnnotation.typeParameters.params[0].typeName.name = 'Svg';
|
||||
|
||||
const useClientDirective = native ? '' : '"use client";';
|
||||
const useClientDirective = native ? [] : '"use client"';
|
||||
|
||||
const iconoirContextImport = generateImport(
|
||||
['IconoirContext'],
|
||||
|
|
@ -16,19 +16,19 @@ export function getTemplate(native, iconoirContextPath) {
|
|||
);
|
||||
|
||||
return tpl`
|
||||
${useClientDirective}
|
||||
${variables.imports};
|
||||
${iconoirContextImport}
|
||||
|
||||
${variables.interfaces};
|
||||
${useClientDirective};
|
||||
${variables.imports};
|
||||
${iconoirContextImport}
|
||||
|
||||
${variables.interfaces};
|
||||
|
||||
const ${variables.componentName} = (${variables.props}) => {
|
||||
const context = React.useContext(IconoirContext);
|
||||
const props = { ...context, ...passedProps };
|
||||
return ${variables.jsx};
|
||||
};
|
||||
|
||||
const ${variables.componentName} = (${variables.props}) => {
|
||||
const context = React.useContext(IconoirContext);
|
||||
const props = { ...context, ...passedProps };
|
||||
return ${variables.jsx};
|
||||
};
|
||||
|
||||
${variables.exports};
|
||||
${variables.exports};
|
||||
`;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,8 @@ export default defineComponent<SVGAttributes>({
|
|||
|
||||
<template>
|
||||
${svg}
|
||||
</template>`;
|
||||
</template>
|
||||
`;
|
||||
}
|
||||
|
||||
export default template;
|
||||
|
|
|
|||
|
|
@ -95,7 +95,6 @@ export default antfu({
|
|||
...hooksPlugin.configs.recommended.rules,
|
||||
|
||||
// rules from "eslint-config-next"
|
||||
'import/no-anonymous-default-export': 'warn',
|
||||
'react/no-unknown-property': 'off',
|
||||
'react/react-in-jsx-scope': 'off',
|
||||
'react/prop-types': 'off',
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
"lint": "next lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "15.1.2",
|
||||
"next": "15.4.4",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -10,21 +10,21 @@
|
|||
"web": "expo start --web"
|
||||
},
|
||||
"dependencies": {
|
||||
"expo": "^52.0.19",
|
||||
"expo": "^53.0.20",
|
||||
"expo-status-bar": "^2.0.0",
|
||||
"iconoir-react-native": "workspace:*",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
"react-native": "^0.76.5",
|
||||
"react-native-svg": "^15.10.1",
|
||||
"react-native-web": "^0.19.13"
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
"react-native": "^0.79.5",
|
||||
"react-native-svg": "^15.11.2",
|
||||
"react-native-web": "^0.20.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.25.2",
|
||||
"@react-native/metro-config": "^0.76.5",
|
||||
"@react-native/metro-config": "^0.79.5",
|
||||
"@rnx-kit/metro-config": "^2.0.1",
|
||||
"@rnx-kit/metro-resolver-symlinks": "^0.2.1",
|
||||
"@types/react": "^18.3.12",
|
||||
"typescript": "~5.7.2"
|
||||
"@types/react": "^19.0.14",
|
||||
"typescript": "~5.8.3"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,18 +10,18 @@
|
|||
"type-check": "vue-tsc --build"
|
||||
},
|
||||
"dependencies": {
|
||||
"vue": "^3.5.13"
|
||||
"vue": "^3.5.18"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@iconoir/vue": "workspace:*",
|
||||
"@tsconfig/node22": "^22.0.0",
|
||||
"@types/node": "^22.10.2",
|
||||
"@vitejs/plugin-vue": "^5.2.1",
|
||||
"@tsconfig/node22": "^22.0.2",
|
||||
"@types/node": "^22.16.5",
|
||||
"@vitejs/plugin-vue": "^6.0.0",
|
||||
"@vue/tsconfig": "^0.7.0",
|
||||
"npm-run-all2": "^7.0.2",
|
||||
"typescript": "~5.7.2",
|
||||
"vite": "^6.0.4",
|
||||
"vite-plugin-vue-devtools": "^7.6.8",
|
||||
"vue-tsc": "^2.1.10"
|
||||
"npm-run-all2": "^8.0.4",
|
||||
"typescript": "~5.8.3",
|
||||
"vite": "^7.0.6",
|
||||
"vite-plugin-vue-devtools": "^7.7.7",
|
||||
"vue-tsc": "^3.0.4"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,7 +52,6 @@ const NavigationItem = styled.div<{ $active?: boolean }>`
|
|||
transition:
|
||||
background 0.1s linear,
|
||||
color 0.1s linear;
|
||||
font-weight: 500;
|
||||
font-size: 16px;
|
||||
line-height: 14.5px;
|
||||
letter-spacing: -0.02em;
|
||||
|
|
@ -61,7 +60,7 @@ const NavigationItem = styled.div<{ $active?: boolean }>`
|
|||
align-items: center;
|
||||
text-decoration: none;
|
||||
span {
|
||||
font-weight: 500;
|
||||
font-weight: 400;
|
||||
}
|
||||
> :not(:last-child) {
|
||||
margin-right: 14px;
|
||||
|
|
@ -72,7 +71,7 @@ const NavigationItem = styled.div<{ $active?: boolean }>`
|
|||
text-decoration: underline;
|
||||
}
|
||||
${(props) => (props.$active ? 'span' : '&.noop')} {
|
||||
font-weight: 700;
|
||||
font-weight: 500;
|
||||
}
|
||||
${media.lg} {
|
||||
padding: 12px 12px 12px 65px;
|
||||
|
|
|
|||
|
|
@ -506,7 +506,7 @@ filename,category,tags
|
|||
"fish","Animals",
|
||||
"fishing","Activities",
|
||||
"flare","Shapes",
|
||||
"flash","Photos and Videos",
|
||||
"flash","Photos and Videos","trigger,ray,bolt,lightning",
|
||||
"flash-off","Photos and Videos",
|
||||
"flask","Science",
|
||||
"flip","Design Tools",
|
||||
|
|
|
|||
|
Can't render this file because it has a wrong number of fields in line 2.
|
|
|
@ -9,36 +9,36 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@nodesecure/npm-registry-sdk": "^3.0.0",
|
||||
"@octokit/rest": "^21.0.2",
|
||||
"@react-aria/focus": "^3.19.0",
|
||||
"@react-aria/i18n": "^3.12.4",
|
||||
"@react-aria/slider": "^3.7.14",
|
||||
"@react-aria/utils": "^3.26.0",
|
||||
"@react-aria/visually-hidden": "^3.8.18",
|
||||
"@react-stately/slider": "^3.6.0",
|
||||
"@react-types/slider": "^3.7.7",
|
||||
"@types/animejs": "^3.1.12",
|
||||
"@types/lodash": "^4.17.13",
|
||||
"@types/node": "^22.10.2",
|
||||
"@types/react": "^19.0.1",
|
||||
"@types/react-dom": "^19.0.2",
|
||||
"@octokit/rest": "^22.0.0",
|
||||
"@react-aria/focus": "^3.21.0",
|
||||
"@react-aria/i18n": "^3.12.11",
|
||||
"@react-aria/slider": "^3.8.0",
|
||||
"@react-aria/utils": "^3.30.0",
|
||||
"@react-aria/visually-hidden": "^3.8.26",
|
||||
"@react-stately/slider": "^3.7.0",
|
||||
"@react-types/slider": "^3.8.0",
|
||||
"@types/animejs": "^3.1.13",
|
||||
"@types/lodash": "^4.17.20",
|
||||
"@types/node": "^22.16.5",
|
||||
"@types/react": "^19.1.8",
|
||||
"@types/react-dom": "^19.1.6",
|
||||
"@types/react-window": "^1.8.8",
|
||||
"animejs": "^3.2.2",
|
||||
"csvtojson": "^2.0.10",
|
||||
"eslint-config-next": "^15.1.1",
|
||||
"eslint-config-next": "^15.4.4",
|
||||
"iconoir-react": "workspace:*",
|
||||
"lodash": "^4.17.21",
|
||||
"moment": "^2.30.1",
|
||||
"next": "^15.1.1",
|
||||
"next": "^15.4.4",
|
||||
"next-mdx-remote": "^5.0.0",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
"react": "^19.1.0",
|
||||
"react-dom": "^19.1.0",
|
||||
"react-window": "^1.8.11",
|
||||
"remark-gfm": "^4.0.0",
|
||||
"remark-gfm": "^4.0.1",
|
||||
"remark-prism": "^1.3.6",
|
||||
"scule": "^1.3.0",
|
||||
"styled-components": "^6.1.13",
|
||||
"typescript": "~5.7.2",
|
||||
"styled-components": "^6.1.19",
|
||||
"typescript": "~5.8.3",
|
||||
"use-resize-observer": "^9.1.0"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,19 +1,20 @@
|
|||
import type { GetStaticPathsResult, GetStaticPropsContext } from 'next';
|
||||
import type { MDXRemoteSerializeResult } from 'next-mdx-remote';
|
||||
import type { ParsedUrlQuery } from 'node:querystring';
|
||||
import type { DocumentationNavigationProps } from '../../components/DocumentationNavigation';
|
||||
import type { HeaderProps } from '../../components/Header';
|
||||
import fs from 'node:fs';
|
||||
import path from 'node:path';
|
||||
import process from 'node:process';
|
||||
import { SuggestLibrary } from '@/components/SuggestLibrary';
|
||||
import { serialize } from 'next-mdx-remote/serialize';
|
||||
import remarkGfm from 'remark-gfm';
|
||||
// @ts-expect-error untyped
|
||||
import remarkPrism from 'remark-prism';
|
||||
import styled from 'styled-components';
|
||||
import { SuggestLibrary } from '@/components/SuggestLibrary';
|
||||
import {
|
||||
DocumentationNavigation,
|
||||
type DocumentationNavigationProps,
|
||||
|
||||
} from '../../components/DocumentationNavigation';
|
||||
import { Footer } from '../../components/Footer';
|
||||
import { Header } from '../../components/Header';
|
||||
|
|
|
|||
|
|
@ -1,17 +1,20 @@
|
|||
import type { ChangelogEntryProps } from '../../components/ChangelogEntry';
|
||||
import type { DocumentationNavigationProps } from '../../components/DocumentationNavigation';
|
||||
import type { HeaderProps } from '../../components/Header';
|
||||
import { serialize } from 'next-mdx-remote/serialize';
|
||||
import remarkGfm from 'remark-gfm';
|
||||
// @ts-expect-error untyped
|
||||
import remarkPrism from 'remark-prism';
|
||||
import {
|
||||
ChangelogEntry,
|
||||
type ChangelogEntryProps,
|
||||
|
||||
} from '../../components/ChangelogEntry';
|
||||
import {
|
||||
DocumentationNavigation,
|
||||
type DocumentationNavigationProps,
|
||||
|
||||
} from '../../components/DocumentationNavigation';
|
||||
import { Footer } from '../../components/Footer';
|
||||
import { Header, type HeaderProps } from '../../components/Header';
|
||||
import { Header } from '../../components/Header';
|
||||
import { Layout } from '../../components/Layout';
|
||||
import { ReadOnGitHub } from '../../components/ReadOnGitHub';
|
||||
import { SEO } from '../../components/SEO';
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import { HeaderBackground } from '../components/HeaderBackground';
|
|||
import { Layout } from '../components/Layout';
|
||||
import { SEO } from '../components/SEO';
|
||||
import { Stat, StatsContainer } from '../components/Stats';
|
||||
import { Text15, Text18 } from '../components/Typography';
|
||||
import { Text18 } from '../components/Typography';
|
||||
import { REPO, SUPPORT_LINK } from '../lib/constants';
|
||||
import { getHeaderProps } from '../lib/getHeaderProps';
|
||||
import { getAllIcons } from '../lib/getIcons';
|
||||
|
|
@ -50,7 +50,7 @@ export const HeroTextSecondary = styled(HeroText)`
|
|||
max-width: 1140px;
|
||||
`;
|
||||
|
||||
const HeroDescription = styled(Text18)<{ topMargin?: number }>`
|
||||
const HeroDescription = styled(Text18) <{ topMargin?: number }>`
|
||||
display: block;
|
||||
max-width: 750px;
|
||||
margin: 0 auto;
|
||||
|
|
@ -60,46 +60,6 @@ const HeroDescription = styled(Text18)<{ topMargin?: number }>`
|
|||
}
|
||||
`;
|
||||
|
||||
const Supporters = styled.div`
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-bottom: 8px !important;
|
||||
`;
|
||||
|
||||
const Supporter = styled.div<{ src?: string }>`
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 50%;
|
||||
background-color: #000;
|
||||
margin: 0 10px;
|
||||
background-image: url(${(props) => props.src});
|
||||
background-size: contain;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
border: 2px solid white;
|
||||
margin: 0 -4px;
|
||||
transition: 0.2s;
|
||||
&:hover {
|
||||
scale: 1.1;
|
||||
transition: 0.2s;
|
||||
&:before {
|
||||
content: attr(data-tooltip);
|
||||
position: absolute;
|
||||
bottom: 100%;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
background-color: black;
|
||||
color: white;
|
||||
padding: 5px;
|
||||
border-radius: 3px;
|
||||
white-space: nowrap;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
const SupportContainer = styled.div`
|
||||
text-align: center;
|
||||
> * {
|
||||
|
|
@ -180,46 +140,6 @@ const Home: NextPage<HomeProps> = ({
|
|||
>
|
||||
<span>Donate</span>
|
||||
</LargeButton>
|
||||
<Supporters>
|
||||
<Supporter
|
||||
data-tooltip="Pierre Olivier Marec"
|
||||
as="a"
|
||||
href="https://github.com/pomarec"
|
||||
rel="noopener sponsored"
|
||||
src="https://avatars.githubusercontent.com/u/802933?v=4"
|
||||
/>
|
||||
<Supporter
|
||||
data-tooltip="Tuan Hiep"
|
||||
as="a"
|
||||
href="https://opencollective.com/iconoir/contribute"
|
||||
rel="noopener sponsored"
|
||||
src="https://images.opencollective.com/tuan-hiep/17b1ef2/avatar.png?height=80"
|
||||
/>
|
||||
<Supporter
|
||||
data-tooltip="Justin Kendrick"
|
||||
as="a"
|
||||
href="https://opencollective.com/iconoir/contribute"
|
||||
rel="noopener sponsored"
|
||||
src="https://images.opencollective.com/guest-39c79745/avatar.png?height=80"
|
||||
/>
|
||||
<Supporter
|
||||
data-tooltip="Anon"
|
||||
as="a"
|
||||
href="https://opencollective.com/iconoir/contribute"
|
||||
rel="noopener sponsored"
|
||||
src="https://opencollective.com/static/images/default-guest-logo.svg"
|
||||
/>
|
||||
<Supporter
|
||||
data-tooltip="Luca Burgio"
|
||||
as="a"
|
||||
href="https://twitter.com/burgioluca"
|
||||
rel="noopener sponsored"
|
||||
src="https://lucaburgio.com/images/profile2.png"
|
||||
/>
|
||||
</Supporters>
|
||||
<Text15>
|
||||
Join our supporters and help us continue developing Iconoir.
|
||||
</Text15>
|
||||
</SupportContainer>
|
||||
<Explore allIcons={allIcons} />
|
||||
</Layout>
|
||||
|
|
|
|||
44
package.json
44
package.json
|
|
@ -2,7 +2,7 @@
|
|||
"name": "iconoir",
|
||||
"type": "module",
|
||||
"version": "7.11.0",
|
||||
"packageManager": "pnpm@9.15.1",
|
||||
"packageManager": "pnpm@10.13.1",
|
||||
"description": "Iconoir - The biggest open source icon library with tons of free icons.",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
|
|
@ -39,38 +39,24 @@
|
|||
"prepublish-all": "node ./bin/prepublish.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@antfu/eslint-config": "^3.12.0",
|
||||
"@antfu/eslint-config": "^5.0.0",
|
||||
"@atomist/yaml-updater": "^1.0.2",
|
||||
"@svgr/babel-plugin-remove-jsx-attribute": "^8.0.0",
|
||||
"@svgr/core": "^8.1.0",
|
||||
"@svgr/plugin-jsx": "^8.1.0",
|
||||
"@vitejs/plugin-vue": "^5.2.1",
|
||||
"esbuild": "^0.24.0",
|
||||
"eslint": "^9.17.0",
|
||||
"eslint-plugin-format": "^0.1.3",
|
||||
"@vitejs/plugin-vue": "^6.0.0",
|
||||
"esbuild": "^0.25.8",
|
||||
"eslint": "^9.32.0",
|
||||
"eslint-plugin-format": "^1.0.1",
|
||||
"hast-util-from-html": "^2.0.3",
|
||||
"hast-util-to-html": "^9.0.4",
|
||||
"listr2": "^8.2.5",
|
||||
"prettier": "^3.4.2",
|
||||
"hast-util-to-html": "^9.0.5",
|
||||
"listr2": "^9.0.1",
|
||||
"prettier": "^3.6.2",
|
||||
"scule": "^1.3.0",
|
||||
"semver": "^7.6.3",
|
||||
"tinypool": "1.0.2",
|
||||
"typescript": "~5.7.2",
|
||||
"vite": "^6.0.4",
|
||||
"vite-plugin-dts": "^4.4.0"
|
||||
},
|
||||
"pnpm": {
|
||||
"packageExtensions": {
|
||||
"react-native-svg": {
|
||||
"peerDependencies": {
|
||||
"@types/react": "18"
|
||||
}
|
||||
},
|
||||
"@types/react-window": {
|
||||
"dependencies": {
|
||||
"@types/react": "19"
|
||||
}
|
||||
}
|
||||
}
|
||||
"semver": "^7.7.2",
|
||||
"tinypool": "1.1.1",
|
||||
"typescript": "~5.8.3",
|
||||
"vite": "^7.0.6",
|
||||
"vite-plugin-dts": "^4.5.4"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# Iconoir - Flutter
|
||||
|
||||
[](https://pub.dev/packages/iconoir_flutter)
|
||||
[](https://pub.dev/packages/iconoir_flutter/score)
|
||||
[](https://pub.dev/packages/iconoir_flutter)
|
||||
[](https://github.com/iconoir-icons/iconoir/blob/main/packages/iconoir-flutter/LICENSE)
|
||||
|
||||
[Iconoir](https://iconoir.com/) is an open-source library with 1300+ unique SVG icons, designed on a 24x24 pixels grid. No premium icons, no email sign-up, no newsletters.
|
||||
|
|
|
|||
|
|
@ -5,58 +5,58 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: args
|
||||
sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596
|
||||
sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.2"
|
||||
version: "2.7.0"
|
||||
async:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: async
|
||||
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
|
||||
sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.11.0"
|
||||
version: "2.13.0"
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: boolean_selector
|
||||
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
|
||||
sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.1"
|
||||
version: "2.1.2"
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: characters
|
||||
sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
|
||||
sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.0"
|
||||
version: "1.4.0"
|
||||
clock:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: clock
|
||||
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
|
||||
sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
version: "1.1.2"
|
||||
collection:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: collection
|
||||
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
|
||||
sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.17.2"
|
||||
version: "1.19.1"
|
||||
fake_async:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fake_async
|
||||
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
|
||||
sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.1"
|
||||
version: "1.3.3"
|
||||
flutter:
|
||||
dependency: "direct main"
|
||||
description: flutter
|
||||
|
|
@ -66,163 +66,211 @@ packages:
|
|||
dependency: "direct dev"
|
||||
description:
|
||||
name: flutter_lints
|
||||
sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c
|
||||
sha256: a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
version: "2.0.3"
|
||||
flutter_svg:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_svg
|
||||
sha256: "8c5d68a82add3ca76d792f058b186a0599414f279f00ece4830b9b231b570338"
|
||||
sha256: cd57f7969b4679317c17af6fd16ee233c1e60a82ed209d8a475c54fd6fd6f845
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.7"
|
||||
version: "2.2.0"
|
||||
flutter_test:
|
||||
dependency: "direct dev"
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
http:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: http
|
||||
sha256: "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.4.0"
|
||||
http_parser:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: http_parser
|
||||
sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.1.2"
|
||||
iconoir_flutter:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: ".."
|
||||
relative: true
|
||||
source: path
|
||||
version: "7.0.0"
|
||||
version: "7.11.0"
|
||||
leak_tracker:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker
|
||||
sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "10.0.9"
|
||||
leak_tracker_flutter_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_flutter_testing
|
||||
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.9"
|
||||
leak_tracker_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_testing
|
||||
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.1"
|
||||
lints:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: lints
|
||||
sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593"
|
||||
sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
version: "2.1.1"
|
||||
matcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: matcher
|
||||
sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
|
||||
sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.12.16"
|
||||
version: "0.12.17"
|
||||
material_color_utilities:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: material_color_utilities
|
||||
sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
|
||||
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.5.0"
|
||||
version: "0.11.1"
|
||||
meta:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
|
||||
sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.9.1"
|
||||
version: "1.16.0"
|
||||
path:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path
|
||||
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
|
||||
sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.8.3"
|
||||
version: "1.9.1"
|
||||
path_parsing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_parsing
|
||||
sha256: e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf
|
||||
sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.1"
|
||||
version: "1.1.0"
|
||||
petitparser:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: petitparser
|
||||
sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750
|
||||
sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.4.0"
|
||||
version: "6.1.0"
|
||||
sky_engine:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.99"
|
||||
version: "0.0.0"
|
||||
source_span:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: source_span
|
||||
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
|
||||
sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.10.0"
|
||||
version: "1.10.1"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stack_trace
|
||||
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
|
||||
sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.11.0"
|
||||
version: "1.12.1"
|
||||
stream_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
|
||||
sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.1"
|
||||
version: "2.1.4"
|
||||
string_scanner:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: string_scanner
|
||||
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
|
||||
sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.0"
|
||||
version: "1.4.1"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: term_glyph
|
||||
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
|
||||
sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.1"
|
||||
version: "1.2.2"
|
||||
test_api:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
|
||||
sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.0"
|
||||
version: "0.7.4"
|
||||
typed_data:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: typed_data
|
||||
sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.4.0"
|
||||
vector_graphics:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_graphics
|
||||
sha256: b16dadf7eb610e20da044c141b4a0199a5e8082ca21daba68322756f953ce714
|
||||
sha256: a4f059dc26fc8295b5921376600a194c4ec7d55e72f2fe4c7d2831e103d461e6
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.9"
|
||||
version: "1.1.19"
|
||||
vector_graphics_codec:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_graphics_codec
|
||||
sha256: a4b01403d5c613db115e30e71eca33f7e9e09f2d3c52c3fb84e16333ecddc539
|
||||
sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.9"
|
||||
version: "1.1.13"
|
||||
vector_graphics_compiler:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_graphics_compiler
|
||||
sha256: d26c0e2f237476426523eb25512e4c09fa27c6d33ed659a0e69d79e20b5dc47f
|
||||
sha256: "557a315b7d2a6dbb0aaaff84d857967ce6bdc96a63dc6ee2a57ce5a6ee5d3331"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.9"
|
||||
version: "1.1.17"
|
||||
vector_math:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -231,22 +279,30 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.4"
|
||||
vm_service:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vm_service
|
||||
sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "15.0.0"
|
||||
web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: web
|
||||
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
|
||||
sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.1.4-beta"
|
||||
version: "1.1.1"
|
||||
xml:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: xml
|
||||
sha256: "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84"
|
||||
sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.3.0"
|
||||
version: "6.5.0"
|
||||
sdks:
|
||||
dart: ">=3.1.0-185.0.dev <4.0.0"
|
||||
flutter: ">=3.7.0-0"
|
||||
dart: ">=3.7.0-0 <4.0.0"
|
||||
flutter: ">=3.27.0"
|
||||
|
|
|
|||
|
|
@ -7,15 +7,14 @@ funding:
|
|||
- https://opencollective.com/iconoir
|
||||
|
||||
environment:
|
||||
sdk: '>=2.17.1 <3.0.0'
|
||||
flutter: '>=1.17.0'
|
||||
sdk: ^3.8.0
|
||||
|
||||
dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
flutter_svg: ^2.0.4
|
||||
flutter_svg: ^2.2.0
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
flutter_lints: ^2.0.1
|
||||
flutter_lints: ^6.0.0
|
||||
|
|
|
|||
|
|
@ -35,17 +35,17 @@
|
|||
}
|
||||
},
|
||||
"main": "dist/index.js",
|
||||
"module": "dist/esm/index.js",
|
||||
"module": "dist/esm/index.mjs",
|
||||
"types": "dist/index.d.ts",
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"peerDependencies": {
|
||||
"react": "18",
|
||||
"react-native": ">=0.73.0",
|
||||
"react-native-svg": "^15.8.0"
|
||||
"react": "19",
|
||||
"react-native": ">=0.78.0",
|
||||
"react-native-svg": "^15.12.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/react": "^18.3.17"
|
||||
"@types/react": "^19.1.8"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,4 +46,4 @@
|
|||
"devDependencies": {
|
||||
"@types/react": "^19.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
[Iconoir](https://iconoir.com/) is an open-source library with 1300+ unique SVG icons, designed on a 24x24 pixels grid. No premium icons, no email sign-up, no newsletters.
|
||||
|
||||
`@iconoir/vue` is an open source package that exports these icons as Vue.js components that can be used in all of your Vue projects. Thanks to `vue-demi`, both Vue 2 and Vue 3 are supported.
|
||||
`@iconoir/vue` is an open source package that exports these icons as Vue.js components that can be used in your Vue project.
|
||||
|
||||
## Installation
|
||||
|
||||
|
|
|
|||
|
|
@ -44,4 +44,4 @@
|
|||
"devDependencies": {
|
||||
"@vue/tsconfig": "^0.7.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
9467
pnpm-lock.yaml
generated
9467
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load diff
|
|
@ -2,3 +2,21 @@ packages:
|
|||
- packages/*
|
||||
- examples/*
|
||||
- iconoir.com
|
||||
|
||||
injectWorkspacePackages: false
|
||||
|
||||
onlyBuiltDependencies:
|
||||
- esbuild
|
||||
- sharp
|
||||
- unrs-resolver
|
||||
|
||||
packageExtensions:
|
||||
'@types/react-window':
|
||||
dependencies:
|
||||
'@types/react': '19'
|
||||
|
||||
publicHoistPattern:
|
||||
- '@next/eslint-plugin-next'
|
||||
- eslint-plugin-jsx-a11y
|
||||
- eslint-plugin-react
|
||||
- eslint-plugin-react-hooks
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue