Compare commits

...

91 Commits

Author SHA1 Message Date
codecalm aaef5f4c3d Update LICENSE year to 2026 2026-01-03 01:42:26 +01:00
codecalm 0094572ac2 Release 3.36.1 2026-01-01 21:03:15 +01:00
codecalm d98c78b6c1 Update build scripts to use environment variables and improve icon build logging. The `after:bump` hook in package.json now utilizes `pnpm exec turbo build` for better performance, while console output for icon building has been commented out for cleaner logs during the build process. 2025-12-31 18:16:31 +01:00
codecalm 07d1e4a796 Refactor build scripts in package.json and update changelog generation to use environment variables for versioning. This improves consistency and clarity in version handling across scripts. 2025-12-30 19:24:53 +01:00
codecalm 7358779979 Remove eleventy-sass dependency and update @tabler/icons references to use workspace protocol in package.json and pnpm-lock.yaml for improved dependency management. 2025-12-30 18:57:49 +01:00
Marlon Daniel 22e23512d8
Add folder-open SVG icon (#1449)
* Add folder-open SVG icon

* Add `.svg` extension to folder-open icon

* Enhance icon validation by ensuring only .svg files exist in filled and outline directories; update crown and folder-open SVG files for consistency and clarity.

---------

Co-authored-by: codecalm <codecalm@gmail.com>
2025-12-30 18:39:05 +01:00
Paweł Kuna 2702274bfa
Update package dependencies and configurations (#1447)
* Update package dependencies and configurations

* Update GitHub Actions workflow to use Node.js 22 and adjust build command to utilize pnpm for improved consistency and performance.

* Remove specific pnpm version from GitHub Actions workflow to allow for more flexible dependency management.

* Remove specific pnpm version from GitHub Actions workflow for improved flexibility in dependency management.

* Add rsvg-convert availability check in convertIconsToImages function to prevent errors when the command is not found

* Update GitHub Actions workflow to use Node.js 22 for improved compatibility and performance.

* Remove push trigger from GitHub Actions workflow to streamline build process and focus on pull requests.

* Add system dependencies for canvas in GitHub Actions workflow and update package.json to include canvas dependency

* Update GitHub Actions workflow to install additional system dependencies for canvas and rsvg-convert

* Update pnpm-lock.yaml to add canvas dependency and remove optional flags from several packages

* Update package.json to upgrade pnpm from version 10.12.1 to 10.26.1 for improved performance and compatibility.

* Refactor Eleventy configuration to use Sass directly and update package dependencies for improved compatibility and performance. Added support for SCSS file compilation and updated various package versions in package.json and pnpm-lock.yaml.

* Reorganize GitHub Actions workflow to reposition the in-progress comment step for better clarity and execution flow during icon validation.

* Update GitHub Actions workflows to install pnpm version 10.26.2 for consistency across build and validation processes.

* Install additional system dependencies for canvas and rsvg-convert in GitHub Actions workflow to ensure proper build environment.

* Ensure canvas is loaded before jsdom by using require in utilities.mjs

* Update canvas and @napi-rs/canvas dependencies to version 3.2.0 and 0.1.88 respectively in package.json and pnpm-lock.yaml for improved compatibility. Add "onlyBuiltDependencies" field in package.json to specify required dependencies.
2025-12-30 18:33:11 +01:00
codecalm f999bcc00d Update GitHub Actions workflow to use Node.js 22 and pnpm version 10.26.2, while repositioning the in-progress comment step for better visibility during validation. 2025-12-30 18:04:58 +01:00
codecalm c6a429a3be Update package.json to remove specific pnpm version and adjust GitHub Actions workflow to use pnpm version 10.26.1 for consistency across environments. 2025-12-26 16:36:18 +01:00
codecalm 3a1c1fde8b Update .gitignore to include .astro files and modify labeler configuration for improved icon detection rules. 2025-12-25 13:10:15 +01:00
codecalm 7a71dc0019 Update GitHub Actions workflows to use the latest versions of actions, enhancing performance and compatibility. 2025-12-24 02:05:52 +01:00
codecalm 40853f9a33 Update labeler action to version 6 for improved functionality and performance. 2025-12-24 02:00:04 +01:00
codecalm 1616de976d Update labeler configuration to include new rules for React Native, PNG, PDF packages, tests, and website documentation, enhancing automation for file management and organization. 2025-12-24 01:58:38 +01:00
codecalm a6497147f7 Enhance labeler configuration to include new rules for identifying new and modified icons in the 'icons' directory, improving automation for icon management. 2025-12-24 01:54:03 +01:00
sam a2b135fff0
Add icon `filled/crown` (#1441)
* Add new: `filled/crown`

* Update icon validation to require '.svg' extension in names and remove tag checks for filled icons, enhancing validation accuracy.

---------

Co-authored-by: codecalm <codecalm@gmail.com>
2025-12-23 02:45:52 +01:00
codecalm a2d526f493 Refactor icon validation logic to enforce stricter naming and category rules for outline and filled icons, improving error reporting for invalid configurations. 2025-12-23 02:38:33 +01:00
codecalm 3c47dab3ed Enhance icon generation script and PR workflow to utilize PR-specific repository and SHA, improving accuracy for forked repositories. 2025-12-23 02:33:39 +01:00
codecalm 69e0b696fb Update icon validation scripts to use dynamic base branch reference for improved accuracy in PR icon checks 2025-12-23 02:30:59 +01:00
codecalm 39b30d7109 Refactor icon comment generation to conditionally include category and tags in markdown table based on icon type, enhancing clarity and organization. 2025-12-23 02:26:40 +01:00
codecalm bccc80e934 Change PR validation workflow trigger from 'pull_request' to 'pull_request_target' for improved security and context access. 2025-12-23 02:18:58 +01:00
codecalm c23e6a8eea Merge branch 'main' of https://github.com/tabler/tabler-icons 2025-12-23 02:13:02 +01:00
codecalm 992a34a233 Update GitHub Actions workflow to include permissions for pull requests and contents 2025-12-23 02:13:01 +01:00
Paweł Kuna 6d5f43d993
Add icon comment generation with categories and tags to PR validation workflow (#1444)
* Add 'generate-icons-comment' script to package.json and update PR validation workflow to include icon generation and commenting steps.

* Refactor icon comment generation to include inline SVGs in markdown tables and update workflow to handle output correctly.

* Refactor icon comment generation to use base64 data URIs for SVGs in markdown tables, improving compatibility and visual representation.

* Refactor icon comment generation to use GitHub raw file URLs instead of base64 data URIs, enhancing compatibility with GitHub comments.

* Update icon size in markdown table for improved visibility in GitHub comments.

* Enhance icon comment generation by adding category and tags to markdown table, improving organization and metadata visibility.

* Implement category validation for new icons and consolidate helper imports in icon generation scripts.

* Add workflow step to remove comment with added icons if no icons are present

* Remove unused SVG icon file 'a-b-2 copy 2.svg' to clean up the icon directory.

* Update PR validation workflow to change icon comment mode from 'recreate' to 'upsert', allowing for more efficient comment updates.

* Update icon name in markdown table to include file extension for clarity in generated comments.

* Remove unused SVG icon file 'a-b-2 copy.svg' to streamline the icon directory.
2025-12-23 01:59:33 +01:00
Paweł Kuna e7f40a1500
Add 'validate-pr' script to package.json (#1443) 2025-12-23 00:59:53 +01:00
Paweł Kuna 67ede20ca5
Add validation rules and icon optimizations (#1440) 2025-12-22 23:43:52 +01:00
Paweł Kuna 78e46e478d
Added type checks in `icons-react` tests and ensured consistent dependency management in test packages. (#1439) 2025-12-22 19:50:20 +01:00
codecalm f76e44c631 Release 3.36.0 2025-12-14 22:05:08 +01:00
codecalm 53d28d8555 Correct category formatting in text-grammar.svg for consistency. 2025-12-14 21:52:46 +01:00
codecalm f273caa5b8 Update SVG icons by correcting category formatting and ensuring consistent newline usage. 2025-12-14 21:46:46 +01:00
codecalm 1ebfa4c9bc Update multiple SVG icons with categories. 2025-12-14 21:41:35 +01:00
codecalm d5788375e0 Update multiple SVG icons with categories. 2025-12-14 21:40:54 +01:00
codecalm dae0de56f2 Update multiple SVG icons with categories. 2025-12-14 21:40:41 +01:00
codecalm c3c5ad37d4 Corrected the category spelling from "Sytem" to "System" in multiple SVG icon files for consistency and accuracy. 2025-12-14 21:36:50 +01:00
codecalm 95c86aa160 Fixed icons: `outline/alphabet-polish`, `outline/alphabet-runes`, `outline/brand-tabnine`, `outline/circle-asterisk`, `outline/hexagon-asterisk`, `outline/ripple-down`, `outline/ripple-up`, `outline/rosette-asterisk`, `outline/settings-ai`, `outline/sparkles-2`, `outline/square-rotated-asterisk`, `outline/subtitles-ai`, `outline/subtitles-edit`, `outline/subtitles-off`, `outline/whisk` 2025-12-14 21:34:20 +01:00
codecalm 53b2fc5b12 Remove versioning from accessibility-related icons 2025-12-14 21:33:11 +01:00
codecalm 573e4e90fd 1 new icon: `outline/rosette-asterisk`
Fixed icon: `outline/hexagon-asterisk`
2025-12-14 21:30:28 +01:00
codecalm 8b2c5bf4e6 3 new icons: `outline/ripple-down`, `outline/ripple-up`, `outline/whisk` 2025-12-14 21:28:00 +01:00
codecalm b1927de1fb 3 new icons: `outline/circle-asterisk`, `outline/hexagon-asterisk`, `outline/square-rotated-asterisk` 2025-12-14 21:22:46 +01:00
codecalm d18637b930 Update SVG icons to enhance accessibility by adding relevant tags, categories, and versioning for improved inclusivity and usability across various disabilities. 2025-12-14 21:13:18 +01:00
codecalm 49e78dc89e 4 new icons: `outline/subtitles-ai`, `outline/subtitles-edit`, `outline/subtitles-off`, `outline/subtitles` 2025-12-14 21:06:51 +01:00
codecalm b26e778f5c Refactor import.mjs to replace fs.readFileSync with readFileSync for improved consistency in SVG icon file reading. 2025-12-14 20:55:54 +01:00
codecalm af5ac46e7a Enhance build-outline.mjs with progress tracking and parallel file copying for improved performance during SVG icon processing. Update tsconfig.json to include source files for better type checking. 2025-12-14 20:10:28 +01:00
codecalm 2f0285ffbb Refactor build-outline.mjs to improve cache handling and error management by replacing existsSync with try/catch for file checks, ensuring smoother processing of SVG icons. 2025-12-14 19:54:27 +01:00
codecalm d0a295babf Enhance build-outline.mjs by increasing concurrency limit from 32 to 64 for icon processing and optimizing filename collection using a Set for O(1) lookup. 2025-12-14 19:52:09 +01:00
codecalm bdf6b4ea52 Refactor build-outline.mjs to improve stroke processing by implementing parallel execution and enhancing logging for processed and cached icons. 2025-12-14 19:40:59 +01:00
codecalm 40b0b16605 Enhance SVG processing in build-outline.mjs by implementing parallel processing with concurrency limits. 2025-12-14 19:36:01 +01:00
codecalm 670958d52c Refactor build-outline.mjs to optimize SVG processing and remove fix-outline.py. 2025-12-14 19:25:06 +01:00
codecalm 4990aeb956 Remove console log statement from build-outline.mjs and eliminate unnecessary glyph.clear() call in fix-outline.py for cleaner code. 2025-12-14 19:06:49 +01:00
codecalm da51435434 Update SVG icons: added unicode values for option, square-minus, and volume-4 icons; adjusted path syntax for option and volume-4 icons. 2025-12-14 13:44:50 +01:00
Paweł Kuna 143d389186
feat: Categorize and tag all outline icons (#1425) 2025-12-14 13:07:44 +01:00
Shane Friedman a6f86a05d1
Fix ref types in icons-react (#1394)
`createReactComponent` incorrectly types its `forwardRef` call as reffing an `Icon` instance. That ref is then passed directly to an `svg` element, so instead, it should be typed as `SVGSVGElement`, as this is what will actually be reffed!
2025-12-14 13:04:30 +01:00
Abdul-Kadir Coskun 0678fad12c
Add Svelte 5 (Runes) icon package (#1434)
Introduced the @tabler/icons-svelte-runes package for Svelte 5+ with runes reactivity, including source, build, tests, and documentation. Updated issue templates, labeler, and README to reference the new package and distinguish between Svelte 4 and Svelte 5 usage. Adjusted build scripts and lockfile to support the new package.
2025-12-14 13:03:48 +01:00
Abdul-Kadir Coskun 48280d7eb6
Add GitHub Actions workflow to sync icons to CDN (#1435)
Introduces a workflow that syncs the 'icons' directory to a dedicated 'icons' branch and creates a versioned tag on each update. The workflow triggers on changes to the 'icons' folder in the main branch or via manual dispatch, and outputs CDN URLs for accessing the synced icons.
2025-12-14 13:00:37 +01:00
sam a6b1937fa3
Add new: `outline/option` (#1430) 2025-12-14 12:59:59 +01:00
Sarthak Kumar Shailendra c5119c949f
add: volume-4 icon (#1411) 2025-12-14 12:59:34 +01:00
Batleram 0cbddbdd47
Update outline/square-minus and outline/square-minus-2 to match outline/square-plus and outline/square-plus-2 (#1390)
* Rename square-minus to square-minus-2

The svg matches outline/square-plus-2 and does not match
filled/square-minus. This is the correct name for the svg

* Update tags for outline/square-minus-2.svg to match outline/square-plus-2.svg

* Add missing outline/square-minus.svg icon based on the outline/square-plus.svg icon
2025-12-14 12:59:06 +01:00
codecalm 147130cd0e Release 3.35.0 2025-09-15 20:59:58 +02:00
codecalm ebbc80be77 Refactor color mixing to use the new Sass color module 2025-09-15 19:54:49 +02:00
codecalm 629f06d0e7 Update dependencies 2025-09-15 19:47:55 +02:00
codecalm 6755034170 Update dependencies 2025-09-15 19:38:31 +02:00
codecalm 08a3057384 Remove file-edit icon and add file-pencil icon 2025-09-15 19:36:27 +02:00
codecalm de5396b387 18 new icons: `filled/device-gamepad`, `filled/file-dollar`, `filled/file-edit`, `filled/file-euro`, `filled/file-music`, `filled/file-scissors`, `filled/file-settings`, `filled/file-signal`, `filled/file-time`, `filled/file-unknown`, `filled/file-upload`, `filled/file-vector`, `filled/files`, `filled/registered`, `filled/video-minus`, `filled/video-plus`, `filled/writing-sign`, `filled/writing` 2025-09-15 19:33:57 +02:00
codecalm 50b5d0496e Update copyright year in LICENSE file to 2025 2025-07-23 18:35:23 +02:00
codecalm e8fcec6603 Release 3.34.1 2025-07-21 01:53:24 +02:00
Paweł Kuna ad662f360b
Improve build speed (#1382) 2025-07-21 01:43:11 +02:00
codecalm ba84b10286 Add amdName field to package.json for all icon packages 2025-07-20 21:02:44 +02:00
codecalm 7ca541ce7a Refactor file system operations to use destructured imports from 'fs' in helpers and build-webfont modules 2025-07-20 20:32:43 +02:00
codecalm 855eb28c33 Fix export name for Preact component in icons-preact module 2025-07-20 20:29:37 +02:00
codecalm acaac7455d Remove unused dynamic imports export from icons-react module 2025-07-20 20:01:22 +02:00
codecalm d60219fd26 Refactor SVG paths for `brand-dropbox`, `language`, and `language-off` icons for improved readability 2025-07-20 19:14:46 +02:00
Long Tran 10c38a6c3c
Add subpath imports to `@tabler/icons-react-native` (#1373) 2025-07-20 19:10:57 +02:00
Greatness7 6dda2c57ce
Fix build script python errors (#1069) 2025-07-20 19:10:14 +02:00
Chanpory Rith c8296610eb
Add Dropbox brand icon (#1367)
Co-authored-by: Chanpory Rith <chanpory@users.noreply.github.com>
2025-07-20 19:09:38 +02:00
Zeyu Huang b7837dd9a6
Fixed icon: `outline/language`, `outline/language-off` (#1379) 2025-07-20 19:08:35 +02:00
Alexander Schranz 458a35033f
Allow React 19 for react native package by set >16.0 as its already done for react (#1378) 2025-07-20 19:07:53 +02:00
codecalm a33f5aec97 Release 3.34.0 2025-06-02 19:41:27 +02:00
codecalm 51afa8d578 6 new icons: `filled/confetti`, `filled/container`, `filled/library-plus`, `filled/library`, `filled/octagon-minus`, `filled/octagon-plus` 2025-06-02 19:28:28 +02:00
codecalm ceac50d60f 13 new icons: `filled/building-bridge-2`, `filled/columns-1`, `filled/columns-2`, `filled/columns-3`, `filled/layout-board-split`, `filled/layout-board`, `filled/receipt-dollar`, `filled/receipt-euro`, `filled/receipt-pound`, `filled/receipt-rupee`, `filled/receipt-yen`, `filled/receipt-yuan`, `filled/template` 2025-06-02 18:57:36 +02:00
codecalm ba4462edcc Release 3.33.0 2025-05-16 21:55:43 +02:00
codecalm 445c5e2851 Fixed icon: `filled/heart-broken` 2025-05-16 21:39:15 +02:00
codecalm 6799f349b9 18 new icons: `filled/clipboard-plus`, `filled/clipboard-smile`, `filled/ease-in-control-point`, `filled/ease-in-out-control-points`, `filled/ease-out-control-point`, `filled/file-analytics`, `filled/file-code`, `filled/file-diff`, `filled/file-dots`, `filled/file-function`, `filled/file-info`, `filled/file-typography`, `filled/heart-broken`, `filled/laurel-wreath-1`, `filled/laurel-wreath-2`, `filled/laurel-wreath-3`, `filled/microscope`, `filled/ufo`
Fixed icon: `filled/book`
2025-05-16 21:29:49 +02:00
codecalm 356cb4a581 Release 3.32.0 2025-05-16 21:23:05 +02:00
codecalm 94126fb2fc Update dependencies in package.json and pnpm-lock.yaml for sharp and svgicons2svgfont 2025-05-16 20:53:33 +02:00
codecalm 55d2ff2c0c Refactor SVG paths in filter and arrow icons to remove stroke attributes for cleaner code 2025-05-16 16:47:33 +02:00
codecalm ecbd58b7b2 Refactor filter-spark.svg paths for consistency and clarity 2025-05-16 16:01:16 +02:00
codecalm 2fd4373056 Refactor chalkboard-teacher.svg paths for improved clarity and consistency 2025-05-16 15:59:57 +02:00
m.e. dffc9d87f9
Reduce the size of ts bundle (#1359) 2025-05-16 15:54:24 +02:00
codecalm 2fa80df7d3 Refactor SVG icons in outline directory to use consistent styling and add category comments 2025-05-16 15:53:14 +02:00
Marlon Daniel c3300f3594
Add new filter and arrow icons (#1345) 2025-05-16 15:50:31 +02:00
Kyle Alwyn a4adb475cd
Fix filled icons on react native (#1354) 2025-05-16 15:49:57 +02:00
Kyle Baker 60ddcaa068
fix: package export file path (#1351) 2025-05-16 15:49:03 +02:00
4359 changed files with 25379 additions and 18237 deletions

View File

@ -31,9 +31,9 @@ export const buildJsIcons = ({
let index = [];
Object.entries(allIcons).forEach(([type, icons]) => {
icons.forEach((icon, i) => {
process.stdout.write(
`Building \`${name}\` ${type} ${i}/${icons.length}: ${icon.name.padEnd(42)}\r`,
);
// process.stdout.write(
// `Building \`${name}\` ${type} ${i}/${icons.length}: ${icon.name.padEnd(42)}\r`,
// );
const children = icon.obj.children
.map(({ name, attributes }, i) => {
@ -68,7 +68,7 @@ export const buildJsIcons = ({
let filePath = path.resolve(
DIST_DIR,
'src/icons',
`${pascalName ? iconNamePascal : iconName}.${extension}`,
`${pascalName ? `Icon${iconNamePascal}` : iconName}.${extension}`,
);
fs.writeFileSync(filePath, component, 'utf-8');
@ -107,9 +107,9 @@ export const buildIconsList = (name) => {
let index = [];
Object.entries(allIcons).forEach(([type, icons]) => {
icons.forEach((icon, i) => {
process.stdout.write(
`Building \`${name}\` ${type} ${i}/${icons.length}: ${icon.name.padEnd(42)}\r`,
);
// process.stdout.write(
// `Building \`${name}\` ${type} ${i}/${icons.length}: ${icon.name.padEnd(42)}\r`,
// );
const iconName = `${icon.name}${type !== 'outline' ? `-${type}` : ''}`;
@ -131,14 +131,14 @@ export const buildIconsDynamicImport = (name) => {
let dynamicImportString = 'export default {';
Object.entries(allIcons).forEach(([type, icons]) => {
icons.forEach((icon, i) => {
process.stdout.write(
`Building \`${name}\` ${type} ${i}/${icons.length}: ${icon.name.padEnd(42)}\r`,
);
// process.stdout.write(
// `Building \`${name}\` ${type} ${i}/${icons.length}: ${icon.name.padEnd(42)}\r`,
// );
const iconName = `${icon.name}${type !== 'outline' ? `-${type}` : ''}`,
iconNamePascal = `${icon.namePascal}${type !== 'outline' ? toPascalCase(type) : ''}`;
dynamicImportString += ` '${iconName}': () => import('./icons/${iconNamePascal}'),\n`;
dynamicImportString += ` '${iconName}': () => import('./icons/Icon${iconNamePascal}'),\n`;
});
});

View File

@ -1,10 +1,9 @@
import { generateIconsPreview, getAllIcons, getArgvs, getPackageJson, GITHUB_DIR } from './helpers.mjs'
import { generateIconsPreview, getAllIcons, getPackageJson, GITHUB_DIR } from './helpers.mjs'
import path from 'path'
const argv = getArgvs(),
p = getPackageJson()
const p = getPackageJson()
const version = argv['new-version'] || `${p.version}`
const version = process.env.NEW_VERSION || `${p.version}`
if (version) {
const icons = getAllIcons()

View File

@ -1,9 +1,8 @@
import cp from 'child_process'
import { getArgvs, getPackageJson, printChangelog } from './helpers.mjs'
import { getPackageJson, printChangelog } from './helpers.mjs'
const p = getPackageJson(),
argv = getArgvs(),
version = argv['latest-version'] || `${p.version}`
version = process.env.LATEST_VERSION || `${p.version}`
if (version) {
cp.exec(`git diff ${version} HEAD --name-status ./icons`, function(err, ret) {

View File

@ -0,0 +1,107 @@
import { execSync } from 'child_process'
import { basename, join } from 'path'
import { ICONS_SRC_DIR, parseMatter } from './helpers.mjs'
// Check icon files added relative to base branch (for PR)
function getAddedIconsFromMain() {
try {
// Use BASE_SHA or BASE_REF from environment, fallback to origin/main
const baseRef = process.env.BASE_SHA || process.env.BASE_REF || 'origin/main'
const output = execSync(`git diff ${baseRef}...HEAD --name-status`, { encoding: 'utf-8' })
const addedIcons = []
output.split('\n').forEach(line => {
if (line.startsWith('A\t')) {
const filePath = line.substring(2)
// Filter only SVG files from icons/outline/ or icons/filled/ directories
if (filePath.match(/^icons\/(outline|filled)\/.+\.svg$/)) {
const iconPath = filePath.replace(/^icons\//, '')
addedIcons.push(iconPath)
}
}
})
return addedIcons
} catch (error) {
// Fallback: check relative to HEAD if base ref doesn't exist
try {
const output = execSync('git diff --diff-filter=A --name-only', { encoding: 'utf-8' })
const addedIcons = []
output.split('\n').forEach(filePath => {
if (filePath && filePath.match(/^icons\/(outline|filled)\/.+\.svg$/)) {
const iconPath = filePath.replace(/^icons\//, '')
addedIcons.push(iconPath)
}
})
return addedIcons
} catch {
return []
}
}
}
// Get GitHub raw file URL for icon
function getIconRawUrl(iconPath) {
// Use PR repo and SHA if available (for forks), otherwise fallback to current repo
const repo = process.env.PR_REPO || process.env.GITHUB_REPOSITORY || 'tabler/tabler-icons'
const ref = process.env.PR_SHA || process.env.GITHUB_SHA || 'main'
return `https://raw.githubusercontent.com/${repo}/${ref}/icons/${iconPath}`
}
// Generate markdown table for icons
function generateIconsTable(icons, type) {
if (icons.length === 0) {
return ''
}
const typeName = type === 'outline' ? 'Outline' : 'Filled'
let markdown = `### ${typeName} Icons (${icons.length})\n\n`
markdown += `| Icon | Name ${type === 'outline' ? '| Category | Tags ' : ''}|\n`
markdown += `|------|------${type === 'outline' ? '|------|------' : ''}|\n`
icons.forEach(iconPath => {
const iconName = basename(iconPath, '.svg')
const rawUrl = getIconRawUrl(iconPath)
const { data } = parseMatter(join(ICONS_SRC_DIR, iconPath))
const category = data.category || ''
const tags = data.tags || []
// Use GitHub raw file URL - GitHub Comments support external image URLs
markdown += `| <img src="${rawUrl}" width="240" height="240" alt="${iconName}" /> | \`${iconName}.svg\`${type === 'outline' ? ` | ${category || '❌ No category'} | ${tags.join(', ') || '❌ No tags' }` : ''}|\n`
})
markdown += `\n`
return markdown
}
// Generate markdown comment with table of added icons
function generateIconsComment(icons) {
if (icons.length === 0) {
return ''
}
// Group icons by type (outline/filled) with full paths
const outlineIcons = icons.filter(icon => icon.startsWith('outline/'))
const filledIcons = icons.filter(icon => icon.startsWith('filled/'))
let markdown = `## 📦 Added Icons\n\n`
markdown += `This PR adds **${icons.length}** new icon${icons.length > 1 ? 's' : ''}.\n\n`
markdown += generateIconsTable(outlineIcons, 'outline')
markdown += generateIconsTable(filledIcons, 'filled')
return markdown
}
const addedIcons = getAddedIconsFromMain()
if (addedIcons.length > 0) {
const comment = generateIconsComment(addedIcons)
console.log(comment)
} else {
process.exit(0)
}

View File

@ -1,9 +1,9 @@
import fs from 'fs';
import { readdirSync, readFileSync, existsSync, writeFileSync, mkdirSync } from 'fs';
import path, { resolve, basename } from 'path';
import { fileURLToPath } from 'url';
import svgParse from 'parse-svg-path';
import svgpath from 'svgpath';
import * as cheerio from 'cheerio';
import { load as cheerioLoad } from 'cheerio';
import { minify } from 'html-minifier';
import { parseSync } from 'svgson';
import { optimize } from 'svgo';
@ -14,6 +14,56 @@ import { globSync } from 'glob';
import { exec } from 'child_process';
import slash from 'slash';
export const strokes = {
200: 1,
300: 1.5,
400: 2,
}
export const categories = [
'Animals',
'Arrows',
'Badges',
'Brand',
'Buildings',
'Charts',
'Communication',
'Computers',
'Currencies',
'Database',
'Design',
'Development',
'Devices',
'Document',
'E-commerce',
'Electrical',
'Extensions',
'Food',
'Games',
'Gender',
'Gestures',
'Health',
'Laundry',
'Letters',
'Logic',
'Map',
'Math',
'Media',
'Mood',
'Nature',
'Numbers',
'Photography',
'Shapes',
'Sport',
'Symbols',
'System',
'Text',
'Vehicles',
'Version control',
'Weather',
'Zodiac'
]
export const iconTemplate = (type) =>
type === 'outline'
? `<svg
@ -65,19 +115,19 @@ const getSvgContent = (svg, type, name) => {
export const getAllIcons = (withContent = false, withObject = false) => {
let icons = {};
const limit = process.env['ICONS_LIMIT'] || Infinity;
const limit = process.env['ICONS_LIMIT'] ? parseInt(process.env['ICONS_LIMIT'], 10) : Infinity;
types.forEach((type) => {
icons[type] = globSync(slash(path.join(ICONS_SRC_DIR, `${type}/*.svg`)))
.sort((a, b) => a.localeCompare(b))
.slice(0, limit)
.sort()
.map((i) => {
const { data, content } = parseMatter(i),
name = basename(i, '.svg');
return {
name,
namePascal: toPascalCase(`icon ${name}`),
namePascal: toPascalCase(`${name}`),
path: i,
category: data.category || '',
tags: data.tags || [],
@ -140,7 +190,7 @@ export const getPackageDir = (packageName) => {
* @returns {any}
*/
export const getPackageJson = () => {
return JSON.parse(fs.readFileSync(resolve(HOME_DIR, 'package.json'), 'utf-8'));
return JSON.parse(readFileSync(resolve(HOME_DIR, 'package.json'), 'utf-8'));
};
/**
@ -150,11 +200,11 @@ export const getPackageJson = () => {
* @returns {string[]}
*/
export const readSvgDirectory = (directory) => {
return fs.readdirSync(directory).filter((file) => path.extname(file) === '.svg');
return readdirSync(directory).filter((file) => path.extname(file) === '.svg');
};
export const getAliases = (groupped = false) => {
const allAliases = JSON.parse(fs.readFileSync(resolve(HOME_DIR, 'aliases.json'), 'utf-8'));
const allAliases = JSON.parse(readFileSync(resolve(HOME_DIR, 'aliases.json'), 'utf-8'));
const allIcons = getAllIcons();
if (groupped) {
@ -197,7 +247,7 @@ export const getAliases = (groupped = false) => {
* @returns {string}
*/
export const readSvg = (fileName, directory) => {
return fs.readFileSync(path.join(directory, fileName), 'utf-8');
return readFileSync(path.join(directory, fileName), 'utf-8');
};
/**
@ -205,8 +255,8 @@ export const readSvg = (fileName, directory) => {
* @param dir
*/
export const createDirectory = (dir) => {
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir);
if (!existsSync(dir)) {
mkdirSync(dir);
}
};
@ -284,7 +334,7 @@ export function buildIconsObject(svgFiles, getSvg) {
}
function getSvgContents(svg) {
const $ = cheerio.load(svg);
const $ = cheerioLoad(svg);
return minify($('svg').html(), { collapseWhitespace: true });
}
@ -342,7 +392,7 @@ export const generateIconsPreview = async function (
files.forEach(function (file, i) {
const name = file.replace(/^(.*)\/([^\/]+)\/([^.]+).svg$/g, '$2-$3');
let svgFile = fs.readFileSync(file),
let svgFile = readFileSync(file),
svgFileContent = svgFile.toString();
svgFileContent = createSvgSymbol(svgFileContent, name, stroke);
@ -362,7 +412,7 @@ export const generateIconsPreview = async function (
console.log(destFile);
fs.writeFileSync(destFile, svgContent);
writeFileSync(destFile, svgContent);
if (png) {
await createScreenshot(destFile, retina);
@ -429,9 +479,9 @@ export const getCompileOptions = () => {
fontForge: 'fontforge',
};
if (fs.existsSync('../compile-options.json')) {
if (existsSync('../compile-options.json')) {
try {
const tempOptions = JSON.parse(fs.readFileSync('../compile-options.json').toString());
const tempOptions = JSON.parse(readFileSync('../compile-options.json').toString());
if (typeof tempOptions !== 'object') {
throw 'Compile options file does not contain an json object';
@ -503,17 +553,28 @@ export const getCompileOptions = () => {
};
export const convertIconsToImages = async (dir, extension, size = 240) => {
const rsvgConvertAvailable = await new Promise((resolve) => {
exec('command -v rsvg-convert', (error) => {
resolve(!error);
});
});
if (!rsvgConvertAvailable) {
console.log(`\nWarning: rsvg-convert not found. Skipping ${extension} conversion.`);
return;
}
const icons = getAllIcons();
await asyncForEach(Object.entries(icons), async function ([type, svgFiles]) {
fs.mkdirSync(path.join(dir, `./${type}`), { recursive: true });
mkdirSync(path.join(dir, `./${type}`), { recursive: true });
await asyncForEach(svgFiles, async function (file, i) {
const distPath = path.join(dir, `./${type}/${file.name}.${extension}`);
process.stdout.write(
`Building \`icons/${extension}\` ${type} ${i}/${svgFiles.length}: ${file.name.padEnd(42)}\r`,
);
// process.stdout.write(
// `Building \`icons/${extension}\` ${type} ${i}/${svgFiles.length}: ${file.name.padEnd(42)}\r`,
// );
await new Promise((resolve, reject) => {
exec(`rsvg-convert -f ${extension} -h ${size} ${file.path} > ${distPath}`, (error) => {
@ -529,7 +590,7 @@ export const getMaxUnicode = () => {
let maxUnicode = 0;
files.forEach(function (file) {
const svgFile = fs.readFileSync(file).toString();
const svgFile = readFileSync(file).toString();
svgFile.replace(/unicode: "([a-f0-9.]+)"/i, function (m, unicode) {
const newUnicode = parseInt(unicode, 16);

View File

@ -19,7 +19,7 @@ extensions.forEach(function (extension) {
if (categoryOriginal || tagsOriginal) {
let data = fs.readFileSync(file).toString()
let data = readFileSync(file).toString()
data = data.replace(/(\<\!--[\s\S]+?-->)/, function (m, headerContent) {
console.log('categoryOriginal', fileOriginal, categoryOriginal && categoryOriginal[1], tagsOriginal && tagsOriginal[1])

View File

@ -1,4 +1,4 @@
import fs from 'fs'
import { readFileSync, existsSync, writeFileSync } from 'fs'
import { glob } from 'glob'
import { resolve, basename } from 'path'
import { HOME_DIR, optimizeSVG, iconTemplate, types } from './helpers.mjs'
@ -7,7 +7,7 @@ types.forEach(type => {
const files = glob.sync(resolve(HOME_DIR, `./new/${type}/*.svg`))
files.forEach(function (file, i) {
let fileData = fs.readFileSync(file).toString(),
let fileData = readFileSync(file).toString(),
filename = basename(file, '.svg')
console.log(`${type}/${filename}`)
@ -63,8 +63,8 @@ types.forEach(type => {
.replace(/^\s*[\r\n]/gm, '')
}
if (fs.existsSync(`./icons/${type}/${filename}.svg`)) {
const newFileData = fs.readFileSync(`./icons/${type}/${filename}.svg`).toString()
if (existsSync(`./icons/${type}/${filename}.svg`)) {
const newFileData = readFileSync(`./icons/${type}/${filename}.svg`).toString()
const m = newFileData.match(/(<!--.*-->)/gms)
if (m) {
@ -79,6 +79,6 @@ types.forEach(type => {
}
fs.writeFileSync(`./icons/${type}/${filename}.svg`, fileData)
writeFileSync(`./icons/${type}/${filename}.svg`, fileData)
})
})

View File

@ -24,8 +24,8 @@ types.forEach(type => {
.replace(/<line x1="([^"]+)" y1="([^"]+)" x2="([^"]+)" y2="([^"]+)"\s*\/>/g, function (f, x1, y1, x2, y2) {
return `<path d="M${x1} ${y1}L${x2} ${y2}" />`
})
.replace(/<circle cx="([^"]+)" cy="([^"]+)" r="([^"]+)"\s+\/>/g, function (f, cx, cy, r) {
return `<path d="M ${cx} ${cy}m -${r} 0a ${r} ${r} 0 1 0 ${r * 2} 0a ${r} ${r} 0 1 0 ${r * -2} 0" />`
.replace(/<circle cx="([^"]+)" cy="([^"]+)" r="([^"]+)"([^>]*)?\/>/g, function (f, cx, cy, r, attrs) {
return `<path d="M ${cx - r} ${cy}a ${r} ${r} 0 1 0 ${r * 2} 0a ${r} ${r} 0 1 0 ${r * -2} 0"${attrs}/>`
})
.replace(/<ellipse cx="([^"]+)" cy="([^"]+)" rx="([^"]+)"\s+\/>/g, function (f, cx, cy, rx) {
return `<ellipse cx="${cx}" cy="${cy}" rx="${rx}" ry="${rx}" />`
@ -33,8 +33,8 @@ types.forEach(type => {
.replace(/<ellipse cx="([^"]+)" cy="([^"]+)" rx="([^"]+)" ry="([^"]+)"\s+\/>/g, function (f, cx, cy, rx, ry) {
return `<path d="M${cx} ${cy}m -${rx} 0a${rx} ${ry} 0 1 0 ${rx * 2} 0a ${rx} ${ry} 0 1 0 -${rx * 2} 0" />`
})
.replace(/<rect width="([^"]+)" height="([^"]+)" x="([^"]+)" y="([^"]+)" rx="([^"]+)"\s+\/>/g, function (f, width, height, x, y, rx) {
return `<rect x="${x}" y="${y}" width="${width}" height="${height}" rx="${rx}" />`
.replace(/<rect width="([^"]+)" height="([^"]+)" x="([^"]+)" y="([^"]+)"(.*)?\/>/g, function (f, width, height, x, y, attrs) {
return `<rect x="${x}" y="${y}" width="${width}" height="${height}"${attrs} />`
})
.replace(/<rect x="([^"]+)" y="([^"]+)" rx="([^"]+)" width="([^"]+)" height="([^"]+)"\s+\/>/g, function (f, x, y, rx, width, height) {
return `<rect x="${x}" y="${y}" width="${height}" height="${height}" rx="${rx}" />`
@ -58,7 +58,6 @@ types.forEach(type => {
return `<path d="${r1}"`
})
.replace(/<path\s+d="([^"]+)"/g, function (f, d) {
const d2 = d
.replace(/m0 0/g, (f, m) => ``)
.replace(/ 0\./g, ' .')
@ -69,7 +68,20 @@ types.forEach(type => {
})
.replace(/d="m/g, 'd="M')
.replace(/([Aa])\s?([0-9.]+)[\s,]([0-9.]+)[\s,]([0-9.]+)[\s,]?([0-1])[\s,]?([0-1])[\s,]?(-?[0-9.]+)[\s,]?(-?[0-9.]+)/gi, '$1$2 $3 $4 $5 $6 $7 $8')
.replace(/<path[^>]*d=["']([^"']*?)a([\d.]+)\s+([\d.]+)\s([01])\s([01])\s([01]+)\s([0-9.-]+)\s([0-9.-]+)a\2\s+\3\s+([01])\s+([01])\s([01]+)\s([0-9.-]+)\s([0-9.-]+)z([^"']*?)["']\s+\/>/g, function (match, d, rx, ry, flag1, flag2, extra1, x1, y1, flag3, flag4, extra2, x2, y2, afterZ) {
return `<path d="${d}a${rx} ${ry} ${flag1} ${flag2} ${extra1} ${x1} ${y1}a${rx} ${ry} ${flag3} ${flag4} ${extra2} ${x2} ${y2}${afterZ}" />`
})
.replace(/<path[^>]*d=["']([^"']*?)M([0-9.-]+)\s([0-9.-]+)m([0-9.-]+)\s([0-9.-]+)([^"']*?)["'](.*)?\/>/g, function (match, d, x1, y1, x2, y2, afterM, attrs) {
return `<path d="${d}M${Number(x1) + Number(x2)} ${Number(y1) + Number(y2)}${afterM}"${attrs} />`
})
.replace(/\n\s+\n+/g, '\n')
.replace(/<path d="([^"]+)"/g, function (f, d) {
const d2 = d
.replace(/v0/g, (f, v) => ``)
.replace(/h0/g, (f, h) => ``)
return `<path d="${d2}"`
})
// Add icon template
svgFileContent = svgFileContent.replace(/<svg[^>]+>/, iconTemplate(type))

View File

@ -1,12 +1,17 @@
import { visualizer } from 'rollup-plugin-visualizer'
import license from 'rollup-plugin-license'
import esbuild from 'rollup-plugin-esbuild'
import { nodeResolve } from '@rollup/plugin-node-resolve';
const getRollupPlugins = (pkg, minify) => {
return [
esbuild({
minify
}),
nodeResolve({
extensions: ['.js', '.ts', '.jsx', '.tsx'],
// resolveOnly: [/^@tabler\/.*$/],
}),
license({
banner: `@license ${pkg.name} v${pkg.version} - ${pkg.license}
@ -22,11 +27,22 @@ See the LICENSE file in the root directory of this source tree.`
export const getRollupConfig = (pkg, outputFileName, bundles, globals) => {
return bundles
.map(({ inputs, format, minify, preserveModules, outputDir = 'dist', extension = 'js', exports = 'named' }) => {
.map(({
inputs,
format,
minify,
preserveModules,
outputDir = 'dist',
extension = 'js',
exports = 'named',
outputFile,
external = [],
paths
}) => {
return inputs.map(input => ({
input,
plugins: getRollupPlugins(pkg, minify),
external: Object.keys(globals),
external: [...Object.keys(globals), ...external],
output: {
name: pkg.name,
...(preserveModules
@ -35,14 +51,15 @@ export const getRollupConfig = (pkg, outputFileName, bundles, globals) => {
entryFileNames: `[name].${extension}`,
}
: {
file: `${outputDir}/${format}/${outputFileName}${minify ? '.min' : ''}.${extension}`,
file: outputFile ?? `${outputDir}/${format}/${outputFileName}${minify ? '.min' : ''}.${extension}`,
}),
format,
sourcemap: true,
preserveModules,
preserveModulesRoot: 'src',
exports,
globals,
exports,
paths
},
}))
})

View File

@ -1,18 +1,17 @@
import { globSync } from 'glob'
import fs from 'fs'
import { readFileSync, writeFileSync } from 'fs'
import path from 'path'
import { ICONS_SRC_DIR, getMaxUnicode, getArgvs, getPackageJson } from './helpers.mjs'
import { ICONS_SRC_DIR, getMaxUnicode, getPackageJson } from './helpers.mjs'
const argv = getArgvs(),
pkg = getPackageJson(),
newVersion = argv['new-version'] || pkg.version
const pkg = getPackageJson(),
newVersion = process.env.NEW_VERSION || pkg.version
const files = globSync(path.join(ICONS_SRC_DIR, '**/*.svg'))
let maxUnicode = getMaxUnicode()
files.forEach(function (file) {
let svgFile = fs.readFileSync(file).toString()
let svgFile = readFileSync(file).toString()
// Add unicode to svg files
if (!svgFile.match(/\nunicode: "?([a-f0-9.]+)"?/i)) {
@ -25,7 +24,7 @@ files.forEach(function (file) {
})
console.log(`Add unicode "${unicode}" to "${file}"`)
fs.writeFileSync(file, svgFile, 'utf8')
writeFileSync(file, svgFile, 'utf8')
}
}
@ -43,7 +42,7 @@ files.forEach(function (file) {
console.log(svgFile);
console.log(`Add version "${minorVersion}" to "${file}"`)
fs.writeFileSync(file, svgFile, 'utf8')
writeFileSync(file, svgFile, 'utf8')
}
}
})

View File

@ -1,8 +1,9 @@
import { globSync } from 'glob'
import fs from 'fs'
import { basename } from 'path'
import { HOME_DIR, ICONS_SRC_DIR, iconTemplate, parseMatter, types, getArgvs } from './helpers.mjs'
import { HOME_DIR, ICONS_SRC_DIR, iconTemplate, parseMatter, types, getArgvs, categories } from './helpers.mjs'
import { join } from 'path'
import { execSync } from 'child_process'
let error = false
@ -13,6 +14,24 @@ const outlineIconsNames = globSync(join(ICONS_SRC_DIR, 'outline/*.svg')).map(i =
let unicodes = []
// Validate that only .svg files exist in icons/filled and icons/outline directories
types.forEach(type => {
const dirPath = join(ICONS_SRC_DIR, type)
const files = fs.readdirSync(dirPath)
files.forEach(file => {
// Ignore .DS_Store (macOS system file)
if (file === '.DS_Store') {
return
}
if (!file.endsWith('.svg')) {
console.log(`⛔️ Directory \`icons/${type}\` contains non-SVG file: \`${file}\``)
error = true
}
})
})
const duplicateExists = (arr) => {
return new Set(arr).size !== arr.length
}
@ -22,6 +41,30 @@ const getIconName = (icon) => {
return icon.split('/').slice(-2).join('/')
}
function getAddedIconsFromMain() {
try {
// Use BASE_SHA or BASE_REF from environment, fallback to origin/main
const baseRef = process.env.BASE_SHA || process.env.BASE_REF || 'origin/main'
const output = execSync(`git diff ${baseRef}...HEAD --name-status`, { encoding: 'utf-8' })
const addedIcons = []
output.split('\n').forEach(line => {
if (line.startsWith('A\t')) {
const filePath = line.substring(2)
// Filter only SVG files from icons/outline/ or icons/filled/ directories
if (filePath.match(/^icons\/((outline|filled)\/.+\.svg)$/)) {
// add icon without icons/ prefix
addedIcons.push(filePath.replace(/^icons\//, ''))
}
}
})
return addedIcons
} catch (error) {
return []
}
}
types.forEach(type => {
const icons = globSync(join(ICONS_SRC_DIR, type, '*.svg')).sort()
@ -39,6 +82,71 @@ types.forEach(type => {
error = true
}
if (iconContent.includes('M0 0h24v24H0z')) {
console.log(`⛔️ Icon \`${iconName}\` contains empty rectangle path \`M0 0h24v24H0z\``)
error = true
}
// Check for SVG elements that should be converted to path
const invalidElements = ['<circle', '<rect', '<ellipse', '<line', '<polygon', '<polyline']
const foundInvalidElements = invalidElements.filter(el => iconContent.includes(el))
if (foundInvalidElements.length > 0) {
console.log(`⛔️ Icon \`${iconName}\` contains elements that should be converted to path: ${foundInvalidElements.join(', ')}`)
error = true
}
// Check for rectangle paths that end with 'z' (should not have closing 'z')
// Rectangle paths should have two arc commands next to each other with the same size (rx and ry)
const rectanglePathRegex = /<path[^>]*d=["']([^"']*?)a([\d.]+)\s+([\d.]+)\s+[01]\s+[01]\s([0-9.-]+)\s([0-9.-]+)\s[0-9.-]+a\2\s+\3\s+[01]\s+[01]\s[0-9.-]+\s([0-9.-]+)\s([0-9.-]+)z([^"']*?)["']\s+\/>/g
if (rectanglePathRegex.test(iconContent)) {
console.log(`⛔️ Icon \`${iconName}\` contains rectangle path that ends with 'z' (should not have closing 'z')`)
error = true
}
// Check for path with 'z' followed by h/v/H/V command (invalid pattern)
const invalidZCommandRegex = /<path[^>]*d=["']([^"']*?)z[hvHV]([^"']*?)["']\s+\/>/g
if (invalidZCommandRegex.test(iconContent)) {
console.log(`⛔️ Icon \`${iconName}\` contains path with 'z' followed by h/v/H/V command (invalid pattern)`)
error = true
}
// Check for path with 'm' (relative move) after 'M' (absolute move)
const invalidMAfterMRegex = /<path[^>]*d=["']([^"']*?)M[0-9.-]\s[0-9.-]*?m([^"']*?)["']/g
if (invalidMAfterMRegex.test(iconContent)) {
console.log(`⛔️ Icon \`${iconName}\` contains path with 'm' (relative move) after 'M' (absolute move)`)
error = true
}
// Check for path with 'Z' (uppercase) - disallow Z from path
if (type === 'outline') {
const invalidZRegex = /<path[^>]*d=["'][^"']*Z[^"']*["']\s+\/>/gi
if (invalidZRegex.test(iconContent)) {
console.log(`⛔️ Icon \`${iconName}\` contains path with 'Z'`)
error = true
}
}
// Check for empty path d=""
const emptyPathRegex = /<path[^>]*d=["']\s*["']/g
if (emptyPathRegex.test(iconContent)) {
console.log(`⛔️ Icon \`${iconName}\` contains empty path d=""`)
error = true
}
// Check for v0 or h0 (forbidden, but v0.1, h0.5 etc. are allowed)
const forbiddenV0H0Regex = /<path[^>]*d="[^"']*[hv]0(?!\.\d)[^"']*"/g
if (forbiddenV0H0Regex.test(iconContent)) {
console.log(`⛔️ Icon \`${iconName}\` contains forbidden v0 or h0`)
error = true
}
// Check for path with only M command (empty path)
const onlyMRegex = /<path[^>]*d=["']\s*[Mm][\s0-9.-]+\s*["']/g
if (onlyMRegex.test(iconContent)) {
console.log(`⛔️ Icon \`${iconName}\` contains path with only M command (empty path)`)
error = true
}
try {
const { data } = parseMatter(icon)
@ -105,6 +213,50 @@ Object.entries(aliases).forEach(([type, replacers]) => {
})
})
const addedIcons = getAddedIconsFromMain()
for (const icon of addedIcons) {
const iconPath = join(ICONS_SRC_DIR, icon)
try {
const { data, content } = parseMatter(iconPath)
if (data.unicode) {
console.log(`⛔️ Icon \`${icon}\` has unicode, but should not have it`)
error = true
}
if (data.version) {
console.log(`⛔️ New icon \`${icon}\` has version, but should not have it`)
error = true
}
if (!icon.match(/^(outline|filled)\/[a-z0-9-]+\.svg$/)) {
console.log(`⛔️ New icon \`${icon}\` has invalid name`)
error = true
}
// check if outline icon has category
if (icon.match(/^outline\//) ) {
if(!data.category) {
console.log(`⛔️ New outline icon \`${icon}\` has no category`)
error = true
} else if (!categories.includes(data.category)) {
console.log(`⛔️ New outline icon \`${icon}\` has invalid category \`${data.category}\`. Valid categories are: ${categories.join(', ')}`)
error = true
}
} else {
if (icon.match(/^filled\//) && data.category) {
console.log(`⛔️ New filled icon \`${icon}\` has category, but should not have it`)
error = true
}
}
} catch (error) {
console.log(`⛔️ New icon \`${icon}\` has invalid metadata`)
error = true
}
}
if (error) {
process.exit(1)
} else {

View File

@ -1,7 +1,27 @@
const eleventySass = require("eleventy-sass");
const sass = require("sass");
const path = require("path");
module.exports = function (eleventyConfig) {
eleventyConfig.addPlugin(eleventySass);
eleventyConfig.addTemplateFormats("scss");
eleventyConfig.addExtension("scss", {
outputFileExtension: "css",
compile: async function(inputContent, inputPath) {
const parsed = path.parse(inputPath);
if (parsed.name.startsWith("_")) {
return;
}
const result = sass.compileString(inputContent, {
loadPaths: [parsed.dir || ".", path.join(process.cwd(), "src", "_includes")],
style: "expanded"
});
return async (data) => {
return result.css;
};
}
});
eleventyConfig.addWatchTarget("./src");
eleventyConfig.addWatchTarget("./icons");

View File

@ -31,6 +31,7 @@ body:
- label: "@tabler/icons-react-native"
- label: "@tabler/icons-solid"
- label: "@tabler/icons-svelte"
- label: "@tabler/icons-svelte-runes"
- label: "@tabler/icons-vue"
- label: Figma plugin
- label: source/main

53
.github/labeler.yml vendored
View File

@ -11,6 +11,18 @@
- 'icons/**/*.svg'
- aliases.json
# For new icons
✨ new icons:
- changed-files:
- any-glob-to-any-file:
- 'icons/**/*.svg'
# For modified icons
🔧 modified icons:
- changed-files:
- any-glob-to-any-file:
- 'icons/**/*.svg'
# For Github Actions
🤖 github-actions:
- changed-files:
@ -38,12 +50,18 @@
- any-glob-to-any-file:
- 'packages/icons-preact/*'
# For Svelte package
# For Svelte 4 and below package
🔗 svelte package:
- changed-files:
- any-glob-to-any-file:
- 'packages/icons-svelte/*'
# For Svelte 5 package
🔗 svelte-runes package:
- changed-files:
- any-glob-to-any-file:
- 'packages/icons-svelte-runes/*'
# For SolidJS package
🔗 solid package:
- changed-files:
@ -62,3 +80,36 @@
- any-glob-to-any-file:
- 'packages/icons-sprite/*'
# For React Native package
🔗 react-native package:
- changed-files:
- any-glob-to-any-file:
- 'packages/icons-react-native/*'
# For PNG package
🔗 png package:
- changed-files:
- any-glob-to-any-file:
- 'packages/icons-png/*'
# For PDF package
🔗 pdf package:
- changed-files:
- any-glob-to-any-file:
- 'packages/icons-pdf/*'
# For tests
🧪 tests:
- changed-files:
- any-glob-to-any-file:
- 'test/**/*'
- 'packages/*/test.spec.*'
- 'packages/*/vitest.config.*'
# For website/documentation site
🌐 website:
- changed-files:
- any-glob-to-any-file:
- 'src/**/*'
- '*.liquid'

BIN
.github/tabler-icons-3.32.0.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

112
.github/tabler-icons-3.32.0.svg vendored Normal file
View File

@ -0,0 +1,112 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 292 248" width="292" height="248" style="color: #354052"><rect x="0" y="0" width="292" height="248" fill="#fff"></rect>
<symbol id="outline-arrow-bar-to-down-dashed" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M12 14v-10" /> <path d="M12 14l4 -4" /> <path d="M12 14l-4 -4" /> <path d="M4 20h3m13 0h-3m-3.5 0h-3" />
</symbol>
<symbol id="outline-arrow-bar-to-left-dashed" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M10 12l10 0" /> <path d="M10 12l4 -4" /> <path d="M10 12l4 4" /> <path d="M4 20l0 -3m0 -13l0 3m0 3.5l0 3" />
</symbol>
<symbol id="outline-arrow-bar-to-right-dashed" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M14 12l-10 0" /> <path d="M14 12l-4 4" /> <path d="M14 12l-4 -4" /> <path d="M20 4l0 3m0 13l0 -3m0 -3.5l0 -3" />
</symbol>
<symbol id="outline-arrow-bar-to-up-dashed" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M12 10v10" /> <path d="M12 10l4 4" /> <path d="M12 10l-4 4" /> <path d="M4 4h3m13 0h-3m-3.5 0h-3" />
</symbol>
<symbol id="outline-chalkboard-teacher" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M8 19h-3a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v11a1 1 0 0 1 -1 1" /> <path d="M12 14a2 2 0 1 0 4.001 -.001a2 2 0 0 0 -4.001 .001" /> <path d="M17 19a2 2 0 0 0 -2 -2h-2a2 2 0 0 0 -2 2" />
</symbol>
<symbol id="outline-filter-2-bolt" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h12" /> <path d="M9 18h4" /> <path d="M19 16l-2 3h4l-2 3" />
</symbol>
<symbol id="outline-filter-2-cancel" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h12" /> <path d="M9 18h3" /> <path d="M17 21l4 -4m-5 2c0 .796 .316 1.559 .879 2.121c.563 .563 1.326 .879 2.121 .879c.796 0 1.559 -.316 2.121 -.879c.563 -.563 .879 -1.326 .879 -2.121c0 -.796 -.316 -1.559 -.879 -2.121c-.563 -.563 -1.326 -.879 -2.121 -.879c-.796 0 -1.559 .316 -2.121 .879c-.563 .563 -.879 1.326 -.879 2.121z" />
</symbol>
<symbol id="outline-filter-2-check" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h12" /> <path d="M9 18h2" /> <path d="M15 18l2 2l4 -4" />
</symbol>
<symbol id="outline-filter-2-code" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h12" /> <path d="M9 18h2" /> <path d="M17 17l-2 2l2 2" /> <path d="M20 21l2 -2l-2 -2" />
</symbol>
<symbol id="outline-filter-2-cog" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h12" /> <path d="M9 18h3" /> <path d="M19.001 21c-.53 0 -1.039 -.211 -1.414 -.586c-.375 -.375 -.586 -.884 -.586 -1.414c0 -.53 .211 -1.039 .586 -1.414c.375 -.375 .884 -.586 1.414 -.586m0 4c.53 0 1.039 -.211 1.414 -.586c.375 -.375 .586 -.884 .586 -1.414c0 -.53 -.211 -1.039 -.586 -1.414c-.375 -.375 -.884 -.586 -1.414 -.586m0 4v1.5m0 -5.5v-1.5m3.031 1.75l-1.299 .75m-3.463 2l-1.3 .75m0 -3.5l1.3 .75m3.463 2l1.3 .75" />
</symbol>
<symbol id="outline-filter-2-discount" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h12" /> <path d="M9 18h3" /> <path d="M16 16v.01" /> <path d="M16 21l5 -5" /> <path d="M21 21v.01" />
</symbol>
<symbol id="outline-filter-2-dollar" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h10" /> <path d="M9 18h4" /> <path d="M21 15h-2m-2 6h2m0 0v1m0 -1h.5c.398 0 .779 -.158 1.061 -.439c.281 -.281 .439 -.663 .439 -1.061c0 -.398 -.158 -.779 -.439 -1.061c-.281 -.281 -.663 -.439 -1.061 -.439h-1c-.398 0 -.779 -.158 -1.061 -.439c-.281 -.281 -.439 -.663 -.439 -1.061c0 -.398 .158 -.779 .439 -1.061c.281 -.281 .663 -.439 1.061 -.439h.5m0 -1v1" />
</symbol>
<symbol id="outline-filter-2-down" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h12" /> <path d="M9 18h3" /> <path d="M19 16v6" /> <path d="M19 22l3 -3" /> <path d="M19 22l-3 -3" />
</symbol>
<symbol id="outline-filter-2-edit" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h11" /> <path d="M9 18h2" /> <path d="M18.42 15.61c.195 -.195 .426 -.35 .681 -.455c.255 -.106 .528 -.16 .804 -.16c.276 0 .549 .054 .804 .16c.255 .106 .486 .26 .681 .455c.195 .195 .35 .427 .455 .681c.106 .255 .16 .528 .16 .804c0 .276 -.054 .549 -.16 .804c-.105 .255 -.26 .486 -.455 .681l-3.39 3.42h-3v-3l3.42 -3.39z" />
</symbol>
<symbol id="outline-filter-2-exclamation" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h12" /> <path d="M9 18h6" /> <path d="M19 16v3m0 3v.01" />
</symbol>
<symbol id="outline-filter-2-minus" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h12" /> <path d="M9 18h3" /> <path d="M16 19h6" />
</symbol>
<symbol id="outline-filter-2-pause" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h12" /> <path d="M9 18h4" /> <path d="M17 17v5" /> <path d="M21 17v5" />
</symbol>
<symbol id="outline-filter-2-pin" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h10" /> <path d="M9 18h3" /> <path d="M19 18v.01m2.121 2.111c.42 -.419 .706 -.954 .821 -1.536c.116 -.582 .056 -1.185 -.17 -1.733c-.227 -.548 -.611 -1.017 -1.105 -1.347c-.493 -.33 -1.073 -.506 -1.667 -.506c-.593 0 -1.173 .176 -1.667 .506c-.493 .33 -.878 .798 -1.105 1.347c-.227 .548 -.286 1.151 -.17 1.733c.116 .582 .402 1.116 .821 1.536c.418 .419 1.125 1.045 2.121 1.879c1.051 -.89 1.759 -1.516 2.121 -1.879z" />
</symbol>
<symbol id="outline-filter-2-plus" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h10" /> <path d="M9 18h3" /> <path d="M19 15v6" /> <path d="M16 18h6" />
</symbol>
<symbol id="outline-filter-2-question" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h10.5" /> <path d="M9 18h5" /> <path d="M19 22v.01" /> <path d="M19 19c.448 -.001 .883 -.153 1.235 -.431c.352 -.278 .6 -.666 .706 -1.101c.105 -.436 .061 -.894 -.125 -1.302c-.186 -.408 -.504 -.742 -.902 -.948c-.398 -.204 -.853 -.267 -1.291 -.179c-.438 .088 -.834 .321 -1.123 .662" />
</symbol>
<symbol id="outline-filter-2-search" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h8.5" /> <path d="M9 18h2" /> <path d="M15 18c0 .796 .316 1.559 .879 2.121c.563 .563 1.326 .879 2.121 .879c.796 0 1.559 -.316 2.121 -.879c.563 -.563 .879 -1.326 .879 -2.121c0 -.796 -.316 -1.559 -.879 -2.121c-.563 -.563 -1.326 -.879 -2.121 -.879c-.796 0 -1.559 .316 -2.121 .879c-.563 .563 -.879 1.326 -.879 2.121z" /> <path d="M20.2 20.2l1.8 1.8" />
</symbol>
<symbol id="outline-filter-2-share" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h12" /> <path d="M9 18h3.5" /> <path d="M16 22l5 -5" /> <path d="M21 17v4.5" /> <path d="M21 17h-4.5" />
</symbol>
<symbol id="outline-filter-2-spark" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h9.5" /> <path d="M9 18h2.5" /> <path d="M19 21.5c.205 -.849 .641 -1.625 1.258 -2.242c.617 -.617 1.393 -1.053 2.242 -1.258c-.849 -.205 -1.625 -.641 -2.242 -1.258c-.617 -.617 -1.053 -1.393 -1.258 -2.242c-.205 .849 -.641 1.625 -1.258 2.242c-.617 .617 -1.393 1.053 -2.242 1.258c.849 .205 1.625 .641 2.242 1.258c.617 .617 1.053 1.393 1.258 2.242z" />
</symbol>
<symbol id="outline-filter-2-up" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h12" /> <path d="M9 18h3" /> <path d="M19 22v-6m0 0l3 3m-3 -3l-3 3" />
</symbol>
<symbol id="outline-filter-2-x" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h12" /> <path d="M9 18h4" /> <path d="M22 22l-5 -5m0 5l5 -5" />
</symbol>
<symbol id="outline-filter-2" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M4 6h16" /> <path d="M6 12h12" /> <path d="M9 18h6" />
</symbol>
<symbol id="outline-filter-spark" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M15 12.5v-.5l4.414 -4.414a2 2 0 0 0 .586 -1.414v-2.172h-16v2.227c0 .497 .185 .977 .52 1.345l4.48 4.928v8.5l2 -.667" /> <path d="M18.5 22a4.75 4.75 0 0 1 3.5 -3.5a4.75 4.75 0 0 1 -3.5 -3.5a4.75 4.75 0 0 1 -3.5 3.5a4.75 4.75 0 0 1 3.5 3.5" />
</symbol>
<use xlink:href="#outline-arrow-bar-to-down-dashed" x="24" y="24" width="24" height="24" />
<use xlink:href="#outline-arrow-bar-to-left-dashed" x="68" y="24" width="24" height="24" />
<use xlink:href="#outline-arrow-bar-to-right-dashed" x="112" y="24" width="24" height="24" />
<use xlink:href="#outline-arrow-bar-to-up-dashed" x="156" y="24" width="24" height="24" />
<use xlink:href="#outline-chalkboard-teacher" x="200" y="24" width="24" height="24" />
<use xlink:href="#outline-filter-2-bolt" x="244" y="24" width="24" height="24" />
<use xlink:href="#outline-filter-2-cancel" x="24" y="68" width="24" height="24" />
<use xlink:href="#outline-filter-2-check" x="68" y="68" width="24" height="24" />
<use xlink:href="#outline-filter-2-code" x="112" y="68" width="24" height="24" />
<use xlink:href="#outline-filter-2-cog" x="156" y="68" width="24" height="24" />
<use xlink:href="#outline-filter-2-discount" x="200" y="68" width="24" height="24" />
<use xlink:href="#outline-filter-2-dollar" x="244" y="68" width="24" height="24" />
<use xlink:href="#outline-filter-2-down" x="24" y="112" width="24" height="24" />
<use xlink:href="#outline-filter-2-edit" x="68" y="112" width="24" height="24" />
<use xlink:href="#outline-filter-2-exclamation" x="112" y="112" width="24" height="24" />
<use xlink:href="#outline-filter-2-minus" x="156" y="112" width="24" height="24" />
<use xlink:href="#outline-filter-2-pause" x="200" y="112" width="24" height="24" />
<use xlink:href="#outline-filter-2-pin" x="244" y="112" width="24" height="24" />
<use xlink:href="#outline-filter-2-plus" x="24" y="156" width="24" height="24" />
<use xlink:href="#outline-filter-2-question" x="68" y="156" width="24" height="24" />
<use xlink:href="#outline-filter-2-search" x="112" y="156" width="24" height="24" />
<use xlink:href="#outline-filter-2-share" x="156" y="156" width="24" height="24" />
<use xlink:href="#outline-filter-2-spark" x="200" y="156" width="24" height="24" />
<use xlink:href="#outline-filter-2-up" x="244" y="156" width="24" height="24" />
<use xlink:href="#outline-filter-2-x" x="24" y="200" width="24" height="24" />
<use xlink:href="#outline-filter-2" x="68" y="200" width="24" height="24" />
<use xlink:href="#outline-filter-spark" x="112" y="200" width="24" height="24" />
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

BIN
.github/tabler-icons-3.32.0@2x.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
.github/tabler-icons-3.33.0.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

76
.github/tabler-icons-3.33.0.svg vendored Normal file
View File

@ -0,0 +1,76 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 292 160" width="292" height="160" style="color: #354052"><rect x="0" y="0" width="292" height="160" fill="#fff"></rect>
<symbol id="filled-clipboard-plus" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M17.997 4.17a3 3 0 0 1 2.003 2.83v12a3 3 0 0 1 -3 3h-10a3 3 0 0 1 -3 -3v-12a3 3 0 0 1 2.003 -2.83a4 4 0 0 0 3.997 3.83h4a4 4 0 0 0 3.98 -3.597zm-5.997 6.83a1 1 0 0 0 -1 1v1h-1a1 1 0 0 0 0 2h1v1a1 1 0 0 0 2 0v-1h1a1 1 0 0 0 0 -2h-1v-1a1 1 0 0 0 -1 -1m2 -9a2 2 0 1 1 0 4h-4a2 2 0 1 1 0 -4z" />
</symbol>
<symbol id="filled-clipboard-smile" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M17.997 4.17a3 3 0 0 1 2.003 2.83v12a3 3 0 0 1 -3 3h-10a3 3 0 0 1 -3 -3v-12a3 3 0 0 1 2.003 -2.83a4 4 0 0 0 3.997 3.83h4a4 4 0 0 0 3.98 -3.597zm-3.176 11.259a1 1 0 0 0 -1.392 -.25a2.5 2.5 0 0 1 -2.858 0a1 1 0 0 0 -1.142 1.642a4.5 4.5 0 0 0 5.142 0a1 1 0 0 0 .25 -1.392m-4.811 -3.429h-.01a1 1 0 0 0 -.117 1.993l.127 .007a1 1 0 0 0 0 -2m4 0h-.01a1 1 0 0 0 -.117 1.993l.127 .007a1 1 0 0 0 0 -2m-.01 -10a2 2 0 1 1 0 4h-4a2 2 0 1 1 0 -4z" />
</symbol>
<symbol id="filled-ease-in-control-point" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M19 16a3 3 0 1 1 -2.829 4h-1.171a1 1 0 0 1 0 -2h1.17a3 3 0 0 1 2.83 -2m2.53 -13.848a1 1 0 0 1 .318 1.378l-.286 .445l-.173 .264a73 73 0 0 1 -1.26 1.839a70 70 0 0 1 -4.376 5.58c-2.795 3.195 -5.544 5.638 -8.171 7.04c-1.593 .848 -3.123 1.302 -4.582 1.302a1 1 0 0 1 0 -2c1.097 0 2.317 -.361 3.64 -1.068c2.373 -1.265 4.958 -3.562 7.607 -6.59a68 68 0 0 0 4.25 -5.42a69 69 0 0 0 1.003 -1.456l.455 -.69q .133 -.204 .196 -.306a1 1 0 0 1 1.378 -.318m-9.529 15.848a1 1 0 0 1 0 2h-2a1 1 0 0 1 0 -2z" />
</symbol>
<symbol id="filled-ease-in-out-control-points" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M19 17a3 3 0 1 1 -2.829 4h-1.171a1 1 0 0 1 0 -2h1.17a3 3 0 0 1 2.83 -2m-14 -16c1.306 0 2.418 .835 2.83 2h1.17a1 1 0 1 1 0 2h-1.171a3.001 3.001 0 1 1 -2.829 -4m9 2a1 1 0 0 1 0 2h-2a1 1 0 0 1 0 -2zm-2 16a1 1 0 0 1 0 2h-2a1 1 0 0 1 0 -2z" /> <path d="M21 3a1 1 0 0 1 0 2c-2.83 0 -4.6 1.845 -8.152 7.53c-3.947 6.315 -6.012 8.47 -9.848 8.47a1 1 0 0 1 0 -2c2.83 0 4.6 -1.845 8.152 -7.53c3.947 -6.315 6.012 -8.47 9.848 -8.47" />
</symbol>
<symbol id="filled-ease-out-control-point" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M21 4a1 1 0 0 1 0 2c-1.097 0 -2.317 .361 -3.64 1.068c-2.373 1.265 -4.958 3.562 -7.607 6.59a68 68 0 0 0 -4.25 5.42a69 69 0 0 0 -1.003 1.456l-.455 .69q -.132 .204 -.196 .306a1 1 0 1 1 -1.696 -1.06l.286 -.445l.173 -.264a73 73 0 0 1 1.26 -1.839a70 70 0 0 1 4.376 -5.58c2.795 -3.195 5.544 -5.638 8.171 -7.04c1.592 -.848 3.122 -1.302 4.581 -1.302m-16 -2c1.306 0 2.418 .835 2.83 2h1.17a1 1 0 1 1 0 2h-1.171a3.001 3.001 0 1 1 -2.829 -4" /> <path d="M14 4a1 1 0 0 1 0 2h-2a1 1 0 0 1 0 -2z" />
</symbol>
<symbol id="filled-file-analytics" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm-3 10a1 1 0 0 0 -1 1v5a1 1 0 0 0 2 0v-5a1 1 0 0 0 -1 -1m3 4a1 1 0 0 0 -1 1v1a1 1 0 0 0 2 0v-1a1 1 0 0 0 -1 -1m3 -2a1 1 0 0 0 -1 1v3a1 1 0 0 0 2 0v-3a1 1 0 0 0 -1 -1" /> <path d="M19 7h-4l-.001 -4.001z" />
</symbol>
<symbol id="filled-file-code" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm-1.553 11.106a1 1 0 0 0 -1.341 .447l-1 2a1 1 0 0 0 0 .894l1 2a1 1 0 0 0 1.341 .447l.102 -.058a1 1 0 0 0 .345 -1.283l-.776 -1.553l.776 -1.553a1 1 0 0 0 -.447 -1.341m4.447 .447a1 1 0 0 0 -1.341 -.447l-.102 .058a1 1 0 0 0 -.345 1.283l.774 1.553l-.775 1.553a1 1 0 0 0 1.788 .894l1 -2a1 1 0 0 0 0 -.894z" /> <path d="M19 7h-4l-.001 -4.001z" />
</symbol>
<symbol id="filled-file-diff" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm2 15h-4a1 1 0 0 0 0 2h4a1 1 0 0 0 0 -2m-2 -7a1 1 0 0 0 -1 1v1h-1a1 1 0 0 0 0 2h1v1a1 1 0 0 0 2 0v-1h1a1 1 0 0 0 0 -2h-1v-1a1 1 0 0 0 -1 -1" /> <path d="M19 7h-4l-.001 -4.001z" />
</symbol>
<symbol id="filled-file-dots" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm-3 12a1 1 0 0 0 -.993 .883l-.007 .127a1 1 0 0 0 1.993 .117l.007 -.127a1 1 0 0 0 -1 -1m3 0a1 1 0 0 0 -.993 .883l-.007 .127a1 1 0 0 0 1.993 .117l.007 -.127a1 1 0 0 0 -1 -1m3 0a1 1 0 0 0 -.993 .883l-.007 .127a1 1 0 0 0 1.993 .117l.007 -.127a1 1 0 0 0 -1 -1" /> <path d="M19 7h-4l-.001 -4.001z" />
</symbol>
<symbol id="filled-file-function" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm1.5 9h-.333l-.16 .006c-.895 .07 -1.65 .732 -1.75 1.63l-.152 1.364h-.605a1 1 0 0 0 0 2h.382l-.111 1h-.271a1 1 0 0 0 0 2h.333l.16 -.006c.896 -.071 1.652 -.733 1.75 -1.632l.151 -1.362h.606a1 1 0 0 0 0 -2h-.383l.111 -1h.272a1 1 0 0 0 0 -2" /> <path d="M19 7h-4l-.001 -4.001z" />
</symbol>
<symbol id="filled-file-info" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm0 12h-1a1 1 0 0 0 0 2v3a1 1 0 0 0 1 1h1a1 1 0 0 0 1 -1l-.007 -.117a1 1 0 0 0 -.876 -.876l-.117 -.007v-3a1 1 0 0 0 -1 -1m.01 -3h-.01a1 1 0 0 0 -.117 1.993l.127 .007a1 1 0 0 0 0 -2" /> <path d="M19 7h-4l-.001 -4.001z" />
</symbol>
<symbol id="filled-file-typography" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm3 9h-6a1 1 0 0 0 -1 1v1a1 1 0 0 0 2 0h1v5a1 1 0 0 0 0 2h2a1 1 0 0 0 0 -2v-5h1a1 1 0 0 0 2 0v-1a1 1 0 0 0 -1 -1" /> <path d="M19 7h-4l-.001 -4.001z" />
</symbol>
<symbol id="filled-heart-broken" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M11.001 3.8l-.001 1.963l-1.894 3.79l-.047 .11a1 1 0 0 0 .341 1.137l3.332 2.499l-1.626 3.254a1 1 0 0 0 -.106 .447v3.417l-7.197 -7.127a6 6 0 0 1 6.956 -9.621zm5.77 -.739l.246 .037a6 6 0 0 1 3.184 10.193l-.044 .037l-7.157 7.088v-3.181l1.894 -3.788l.047 -.11a1 1 0 0 0 -.341 -1.137l-3.333 -2.5l1.627 -3.253a1 1 0 0 0 .106 -.447v-2.187a6 6 0 0 1 3.77 -.752" />
</symbol>
<symbol id="filled-laurel-wreath-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M16.956 2.057c.355 .124 .829 .375 1.303 .796a3.77 3.77 0 0 1 1.246 2.204c.173 .989 -.047 1.894 -.519 2.683l-.123 .194q -.097 .147 -.196 .272q .066 .234 .117 .471q .26 -.178 .545 -.307c.851 -.389 1.727 -.442 2.527 -.306q .226 .04 .346 .076a1 1 0 0 1 .689 .712l.029 .13q .015 .08 .03 .18a4.45 4.45 0 0 1 -.324 2.496a3.94 3.94 0 0 1 -1.71 1.85l-.242 .12a4.23 4.23 0 0 1 -2.234 .349a9 9 0 0 1 -.443 1.023c.37 .016 .748 .093 1.128 .24c.732 .28 1.299 .758 1.711 1.367a3.95 3.95 0 0 1 .654 1.613a1 1 0 0 1 -.356 .917a3.8 3.8 0 0 1 -.716 .443c-.933 .455 -1.978 .588 -3.043 .179l-.032 -.015l-.205 -.086a3.6 3.6 0 0 1 -1.33 -1.069l-.143 -.197a4 4 0 0 1 -.26 -.433a6 6 0 0 1 -.927 .511q .18 .262 .337 .56a7.4 7.4 0 0 1 .66 1.747a1 1 0 0 1 -1.95 .444l-.028 -.11a6 6 0 0 0 -.449 -1.143c-.342 -.645 -.71 -.968 -1.048 -.968s-.706 .323 -1.048 .969a5.6 5.6 0 0 0 -.367 .874l-.082 .269l-.028 .11a1 1 0 0 1 -1.95 -.444a7.3 7.3 0 0 1 .66 -1.747q .158 -.298 .337 -.561a6.4 6.4 0 0 1 -.93 -.508a4 4 0 0 1 -.256 .43c-.366 .541 -.855 .98 -1.473 1.267l-.238 .1c-.994 .382 -1.97 .292 -2.855 -.091l-.188 -.087a3.8 3.8 0 0 1 -.716 -.443a1 1 0 0 1 -.356 -.917a3.95 3.95 0 0 1 .654 -1.613a3.6 3.6 0 0 1 1.71 -1.368c.38 -.146 .758 -.223 1.13 -.24a9 9 0 0 1 -.445 -1.023a4.23 4.23 0 0 1 -2.233 -.348a4 4 0 0 1 -.916 -.587l-.207 -.191a4 4 0 0 1 -.724 -.977l-.105 -.216a4.45 4.45 0 0 1 -.265 -2.806a1 1 0 0 1 .69 -.712q .119 -.036 .345 -.076c.801 -.135 1.678 -.082 2.53 .308q .283 .129 .545 .304q .048 -.235 .112 -.47a5 5 0 0 1 -.194 -.272c-.556 -.832 -.83 -1.806 -.642 -2.877l.05 -.242a3.75 3.75 0 0 1 1.027 -1.803l.169 -.159a4 4 0 0 1 1.303 -.796a1 1 0 0 1 .975 .178c.2 .168 .462 .446 .719 .83c.556 .833 .83 1.807 .642 2.878a3.77 3.77 0 0 1 -1.246 2.204c-.303 .27 -.607 .47 -.879 .61a7.5 7.5 0 0 0 -.255 1.971c0 3.502 2.285 6.272 5 6.272s5 -2.77 5 -6.276a7.6 7.6 0 0 0 -.253 -1.967a4.3 4.3 0 0 1 -.881 -.61a3.77 3.77 0 0 1 -1.246 -2.204c-.188 -1.07 .086 -2.045 .642 -2.877c.257 -.385 .52 -.663 .72 -.831a1 1 0 0 1 .974 -.178m-3.956 5.943v6a1 1 0 0 1 -2 0v-4.002h-.059a1 1 0 0 1 -.554 -.208l-.094 -.083a1 1 0 0 1 0 -1.414l1 -1c.63 -.63 1.707 -.184 1.707 .707" />
</symbol>
<symbol id="filled-laurel-wreath-2" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M16.956 2.057c.355 .124 .829 .375 1.303 .796a3.77 3.77 0 0 1 1.246 2.204c.173 .989 -.047 1.894 -.519 2.683l-.123 .194q -.097 .147 -.196 .272q .066 .234 .117 .471q .26 -.178 .545 -.307c.851 -.389 1.727 -.442 2.527 -.306q .226 .04 .346 .076a1 1 0 0 1 .689 .712l.029 .13q .015 .08 .03 .18a4.45 4.45 0 0 1 -.324 2.496a3.94 3.94 0 0 1 -1.71 1.85l-.242 .12a4.23 4.23 0 0 1 -2.234 .349a9 9 0 0 1 -.443 1.023c.37 .016 .748 .093 1.128 .24c.732 .28 1.299 .758 1.711 1.367a3.95 3.95 0 0 1 .654 1.613a1 1 0 0 1 -.356 .917a3.8 3.8 0 0 1 -.716 .443c-.933 .455 -1.978 .588 -3.043 .179l-.032 -.015l-.205 -.086a3.6 3.6 0 0 1 -1.33 -1.069l-.143 -.197a4 4 0 0 1 -.26 -.433a6 6 0 0 1 -.927 .511q .18 .262 .337 .56a7.4 7.4 0 0 1 .66 1.747a1 1 0 0 1 -1.95 .444l-.028 -.11a6 6 0 0 0 -.449 -1.143c-.342 -.645 -.71 -.968 -1.048 -.968s-.706 .323 -1.048 .969a5.6 5.6 0 0 0 -.367 .874l-.082 .269l-.028 .11a1 1 0 0 1 -1.95 -.444a7.3 7.3 0 0 1 .66 -1.747q .158 -.298 .337 -.561a6.4 6.4 0 0 1 -.93 -.508a4 4 0 0 1 -.256 .43c-.366 .541 -.855 .98 -1.473 1.267l-.238 .1c-.994 .382 -1.97 .292 -2.855 -.091l-.188 -.087a3.8 3.8 0 0 1 -.716 -.443a1 1 0 0 1 -.356 -.917a3.95 3.95 0 0 1 .654 -1.613a3.6 3.6 0 0 1 1.71 -1.368c.38 -.146 .758 -.223 1.13 -.24a9 9 0 0 1 -.445 -1.023a4.23 4.23 0 0 1 -2.233 -.348a4 4 0 0 1 -.916 -.587l-.207 -.191a4 4 0 0 1 -.724 -.977l-.105 -.216a4.45 4.45 0 0 1 -.265 -2.806a1 1 0 0 1 .69 -.712q .119 -.036 .345 -.076c.801 -.135 1.678 -.082 2.53 .308q .283 .129 .545 .304q .048 -.235 .112 -.47a5 5 0 0 1 -.194 -.272c-.556 -.832 -.83 -1.806 -.642 -2.877l.05 -.242a3.75 3.75 0 0 1 1.027 -1.803l.169 -.159a4 4 0 0 1 1.303 -.796a1 1 0 0 1 .975 .178c.2 .168 .462 .446 .719 .83c.556 .833 .83 1.807 .642 2.878a3.77 3.77 0 0 1 -1.246 2.204c-.303 .27 -.607 .47 -.879 .61a7.5 7.5 0 0 0 -.255 1.971c0 3.502 2.285 6.272 5 6.272s5 -2.77 5 -6.276a7.6 7.6 0 0 0 -.253 -1.967a4.3 4.3 0 0 1 -.881 -.61a3.77 3.77 0 0 1 -1.246 -2.204c-.188 -1.07 .086 -2.045 .642 -2.877c.257 -.385 .52 -.663 .72 -.831a1 1 0 0 1 .974 -.178m-4.356 4.943a2 2 0 0 1 2 2v1a2 2 0 0 1 -2 2h-1v1h2a1 1 0 0 1 0 2h-2a2 2 0 0 1 -2 -2v-1a2 2 0 0 1 2 -2h1v-1h-2a1 1 0 0 1 0 -2z" />
</symbol>
<symbol id="filled-laurel-wreath-3" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M16.956 2.057c.355 .124 .829 .375 1.303 .796a3.77 3.77 0 0 1 1.246 2.204c.173 .989 -.047 1.894 -.519 2.683l-.123 .194q -.097 .147 -.196 .272q .066 .234 .117 .471q .26 -.178 .545 -.307c.851 -.389 1.727 -.442 2.527 -.306q .226 .04 .346 .076a1 1 0 0 1 .689 .712l.029 .13q .015 .08 .03 .18a4.45 4.45 0 0 1 -.324 2.496a3.94 3.94 0 0 1 -1.71 1.85l-.242 .12a4.23 4.23 0 0 1 -2.234 .349a9 9 0 0 1 -.443 1.023c.37 .016 .748 .093 1.128 .24c.732 .28 1.299 .758 1.711 1.367a3.95 3.95 0 0 1 .654 1.613a1 1 0 0 1 -.356 .917a3.8 3.8 0 0 1 -.716 .443c-.933 .455 -1.978 .588 -3.043 .179l-.032 -.015l-.205 -.086a3.6 3.6 0 0 1 -1.33 -1.069l-.143 -.197a4 4 0 0 1 -.26 -.433a6 6 0 0 1 -.927 .511q .18 .262 .337 .56a7.4 7.4 0 0 1 .66 1.747a1 1 0 0 1 -1.95 .444l-.028 -.11a6 6 0 0 0 -.449 -1.143c-.342 -.645 -.71 -.968 -1.048 -.968s-.706 .323 -1.048 .969a5.6 5.6 0 0 0 -.367 .874l-.082 .269l-.028 .11a1 1 0 0 1 -1.95 -.444a7.3 7.3 0 0 1 .66 -1.747q .158 -.298 .337 -.561a6.4 6.4 0 0 1 -.93 -.508a4 4 0 0 1 -.256 .43c-.366 .541 -.855 .98 -1.473 1.267l-.238 .1c-.994 .382 -1.97 .292 -2.855 -.091l-.188 -.087a3.8 3.8 0 0 1 -.716 -.443a1 1 0 0 1 -.356 -.917a3.95 3.95 0 0 1 .654 -1.613a3.6 3.6 0 0 1 1.71 -1.368c.38 -.146 .758 -.223 1.13 -.24a9 9 0 0 1 -.445 -1.023a4.23 4.23 0 0 1 -2.233 -.348a4 4 0 0 1 -.916 -.587l-.207 -.191a4 4 0 0 1 -.724 -.977l-.105 -.216a4.45 4.45 0 0 1 -.265 -2.806a1 1 0 0 1 .69 -.712q .119 -.036 .345 -.076c.801 -.135 1.678 -.082 2.53 .308q .283 .129 .545 .304q .048 -.235 .112 -.47a5 5 0 0 1 -.194 -.272c-.556 -.832 -.83 -1.806 -.642 -2.877l.05 -.242a3.75 3.75 0 0 1 1.027 -1.803l.169 -.159a4 4 0 0 1 1.303 -.796a1 1 0 0 1 .975 .178c.2 .168 .462 .446 .719 .83c.556 .833 .83 1.807 .642 2.878a3.77 3.77 0 0 1 -1.246 2.204c-.303 .27 -.607 .47 -.879 .61a7.5 7.5 0 0 0 -.255 1.971c0 3.502 2.285 6.272 5 6.272s5 -2.77 5 -6.276a7.6 7.6 0 0 0 -.253 -1.967a4.3 4.3 0 0 1 -.881 -.61a3.77 3.77 0 0 1 -1.246 -2.204c-.188 -1.07 .086 -2.045 .642 -2.877c.257 -.385 .52 -.663 .72 -.831a1 1 0 0 1 .974 -.178m-4.956 4.943a2.5 2.5 0 0 1 2.125 3.817l-.125 .183l.019 .024c.273 .372 .445 .823 .477 1.312l.005 .164a2.5 2.5 0 0 1 -2.501 2.5h-1.5a1 1 0 0 1 0 -2h1.5a.5 .5 0 1 0 0 -1h-1l-.133 -.007c-1.199 -.129 -1.154 -1.993 .133 -1.993h1l.09 -.008a.5 .5 0 0 0 -.09 -.992h-1.5a1 1 0 1 1 0 -2z" />
</symbol>
<symbol id="filled-microscope" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M15.707 4.293l3 3a1 1 0 0 1 0 1.414l-1.553 1.555a7 7 0 0 1 -.256 9.74l2.102 -.002a1 1 0 0 1 0 2h-14a1 1 0 0 1 0 -2h1v-1a1 1 0 0 1 0 -2h2a1 1 0 0 1 0 2v1h4a5 5 0 0 0 3.737 -8.323l-3.03 3.03a1 1 0 0 1 -1.414 0l-.793 -.792l-.793 .792a1 1 0 1 1 -1.414 -1.414l.792 -.793l-.792 -.793a1 1 0 0 1 0 -1.414l6 -6a1 1 0 0 1 1.414 0m2 -2l3 3a1 1 0 1 1 -1.414 1.414l-3 -3a1 1 0 1 1 1.414 -1.414" />
</symbol>
<symbol id="filled-ufo" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M12 3c3.067 0 5.6 2.29 5.957 5.246c3.067 .903 5.043 2.476 5.043 4.478c0 2.3 -2.653 4.053 -6.427 4.833l1.26 1.888a1 1 0 1 1 -1.665 1.11l-1.78 -2.67c-.77 .076 -1.57 .115 -2.388 .115c-.966 0 -1.905 -.055 -2.801 -.16l-1.305 2.607a1 1 0 0 1 -1.788 -.894l1.028 -2.06c-3.618 -.807 -6.134 -2.529 -6.134 -4.768c0 -1.999 1.981 -3.58 5.044 -4.483c.36 -2.955 2.89 -5.242 5.956 -5.242m.01 10l-.127 .007a1 1 0 0 0 .117 1.993l.127 -.007a1 1 0 0 0 -.117 -1.993m-5 -1l-.127 .007a1 1 0 0 0 .117 1.993l.127 -.007a1 1 0 0 0 -.117 -1.993m10 0l-.127 .007a1 1 0 0 0 .117 1.993l.127 -.007a1 1 0 0 0 -.117 -1.993m-5.01 -7c-2.11 0 -3.835 1.618 -3.989 3.667a1 1 0 0 1 .057 .4c.104 .087 .348 .251 .768 .419c.806 .322 1.94 .514 3.164 .514s2.358 -.192 3.164 -.514c.445 -.178 .693 -.352 .789 -.435l-.003 -.051q 0 -.113 .029 -.229l.014 -.046c-.125 -2.076 -1.864 -3.725 -3.993 -3.725" />
</symbol>
<use xlink:href="#filled-clipboard-plus" x="24" y="24" width="24" height="24" />
<use xlink:href="#filled-clipboard-smile" x="68" y="24" width="24" height="24" />
<use xlink:href="#filled-ease-in-control-point" x="112" y="24" width="24" height="24" />
<use xlink:href="#filled-ease-in-out-control-points" x="156" y="24" width="24" height="24" />
<use xlink:href="#filled-ease-out-control-point" x="200" y="24" width="24" height="24" />
<use xlink:href="#filled-file-analytics" x="244" y="24" width="24" height="24" />
<use xlink:href="#filled-file-code" x="24" y="68" width="24" height="24" />
<use xlink:href="#filled-file-diff" x="68" y="68" width="24" height="24" />
<use xlink:href="#filled-file-dots" x="112" y="68" width="24" height="24" />
<use xlink:href="#filled-file-function" x="156" y="68" width="24" height="24" />
<use xlink:href="#filled-file-info" x="200" y="68" width="24" height="24" />
<use xlink:href="#filled-file-typography" x="244" y="68" width="24" height="24" />
<use xlink:href="#filled-heart-broken" x="24" y="112" width="24" height="24" />
<use xlink:href="#filled-laurel-wreath-1" x="68" y="112" width="24" height="24" />
<use xlink:href="#filled-laurel-wreath-2" x="112" y="112" width="24" height="24" />
<use xlink:href="#filled-laurel-wreath-3" x="156" y="112" width="24" height="24" />
<use xlink:href="#filled-microscope" x="200" y="112" width="24" height="24" />
<use xlink:href="#filled-ufo" x="244" y="112" width="24" height="24" />
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

BIN
.github/tabler-icons-3.33.0@2x.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
.github/tabler-icons-3.34.0.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

80
.github/tabler-icons-3.34.0.svg vendored Normal file
View File

@ -0,0 +1,80 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 292 204" width="292" height="204" style="color: #354052"><rect x="0" y="0" width="292" height="204" fill="#fff"></rect>
<symbol id="filled-building-bridge-2" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M18 6a3 3 0 0 1 3 3v9a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2v-2a3 3 0 0 0 -6 0v2a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2v-9a3 3 0 0 1 3 -3z" />
</symbol>
<symbol id="filled-columns-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M18 2a2 2 0 0 1 2 2v16a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-16a2 2 0 0 1 2 -2z" />
</symbol>
<symbol id="filled-columns-2" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M4 2h6a1 1 0 0 1 1 1v18a1 1 0 0 1 -1 1h-6a2 2 0 0 1 -2 -2v-16a2 2 0 0 1 2 -2" /> <path d="M14 2h6a2 2 0 0 1 2 2v16a2 2 0 0 1 -2 2h-6a1 1 0 0 1 -1 -1v-18a1 1 0 0 1 1 -1" />
</symbol>
<symbol id="filled-columns-3" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M4 2h2a1 1 0 0 1 1 1v18a1 1 0 0 1 -1 1h-2a2 2 0 0 1 -2 -2v-16a2 2 0 0 1 2 -2" /> <path d="M9 2m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v18a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" /> <path d="M18 2h2a2 2 0 0 1 2 2v16a2 2 0 0 1 -2 2h-2a1 1 0 0 1 -1 -1v-18a1 1 0 0 1 1 -1" />
</symbol>
<symbol id="filled-confetti" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M3 5a1 1 0 0 1 1 -1a1 1 0 0 1 1.993 -.117l.007 .117a1 1 0 0 1 .117 1.993l-.117 .007a1 1 0 1 1 -2 0a1 1 0 0 1 -1 -1m7.53 -1.243a1 1 0 1 1 1.94 .486l-.5 2a1 1 0 1 1 -1.94 -.486zm6.47 1.243a1 1 0 0 1 1 -1a1 1 0 0 1 1.993 -.117l.007 .117a1 1 0 0 1 .117 1.993l-.117 .007a1 1 0 0 1 -2 0a1 1 0 0 1 -1 -1m-8.81 4.293l6.517 6.518a1 1 0 0 1 -.29 1.617l-9.573 4.387a2 2 0 0 1 -2.661 -2.652l4.39 -9.58a1 1 0 0 1 1.616 -.29m7.517 -1a1 1 0 0 1 0 1.414l-1 1a1 1 0 0 1 -1.414 -1.414l1 -1a1 1 0 0 1 1.414 0m4.05 3.237a1 1 0 0 1 .486 1.94l-2 .5a1 1 0 0 1 -.486 -1.94zm-2.756 7.47a1 1 0 0 1 1 -1a1 1 0 0 1 1.993 -.117l.007 .117a1 1 0 0 1 .117 1.993l-.117 .007a1 1 0 0 1 -2 0a1 1 0 0 1 -1 -1" />
</symbol>
<symbol id="filled-container" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M20 3a1 1 0 0 1 1 1v.01a1 1 0 0 1 -2 0v-.01a1 1 0 0 1 1 -1" /> <path d="M20 19a1 1 0 0 1 1 1v.01a1 1 0 0 1 -2 0v-.01a1 1 0 0 1 1 -1" /> <path d="M20 15a1 1 0 0 1 1 1v.01a1 1 0 0 1 -2 0v-.01a1 1 0 0 1 1 -1" /> <path d="M20 11a1 1 0 0 1 1 1v.01a1 1 0 0 1 -2 0v-.01a1 1 0 0 1 1 -1" /> <path d="M20 7a1 1 0 0 1 1 1v.01a1 1 0 0 1 -2 0v-.01a1 1 0 0 1 1 -1" /> <path d="M15 3a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-6a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2z" /> <path d="M4 3a1 1 0 0 1 1 1v.01a1 1 0 1 1 -2 0v-.01a1 1 0 0 1 1 -1" /> <path d="M4 19a1 1 0 0 1 1 1v.01a1 1 0 0 1 -2 0v-.01a1 1 0 0 1 1 -1" /> <path d="M4 15a1 1 0 0 1 1 1v.01a1 1 0 0 1 -2 0v-.01a1 1 0 0 1 1 -1" /> <path d="M4 11a1 1 0 0 1 1 1v.01a1 1 0 0 1 -2 0v-.01a1 1 0 0 1 1 -1" /> <path d="M4 7a1 1 0 0 1 1 1v.01a1 1 0 1 1 -2 0v-.01a1 1 0 0 1 1 -1" />
</symbol>
<symbol id="filled-layout-board-split" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M5 3h5a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-6a1 1 0 0 1 -1 -1v-5a2 2 0 0 1 2 -2" /> <path d="M14 3h5a2 2 0 0 1 2 2v2a1 1 0 0 1 -1 1h-6a1 1 0 0 1 -1 -1v-3a1 1 0 0 1 1 -1" /> <path d="M13 10m0 1a1 1 0 0 1 1 -1h6a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-6a1 1 0 0 1 -1 -1z" /> <path d="M14 16h6a1 1 0 0 1 1 1v2a2 2 0 0 1 -2 2h-5a1 1 0 0 1 -1 -1v-3a1 1 0 0 1 1 -1" /> <path d="M4 13h6a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-5a2 2 0 0 1 -2 -2v-5a1 1 0 0 1 1 -1" />
</symbol>
<symbol id="filled-layout-board" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M5 3h5a1 1 0 0 1 1 1v3a1 1 0 0 1 -1 1h-6a1 1 0 0 1 -1 -1v-2a2 2 0 0 1 2 -2" /> <path d="M14 3h5a2 2 0 0 1 2 2v8a1 1 0 0 1 -1 1h-6a1 1 0 0 1 -1 -1v-9a1 1 0 0 1 1 -1" /> <path d="M14 16h6a1 1 0 0 1 1 1v2a2 2 0 0 1 -2 2h-5a1 1 0 0 1 -1 -1v-3a1 1 0 0 1 1 -1" /> <path d="M4 10h6a1 1 0 0 1 1 1v9a1 1 0 0 1 -1 1h-5a2 2 0 0 1 -2 -2v-8a1 1 0 0 1 1 -1" />
</symbol>
<symbol id="filled-library-plus" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M18.333 2a3.667 3.667 0 0 1 3.667 3.667v8.666a3.667 3.667 0 0 1 -3.667 3.667h-8.666a3.667 3.667 0 0 1 -3.667 -3.667v-8.666a3.667 3.667 0 0 1 3.667 -3.667zm-4.333 4a1 1 0 0 0 -1 1v2h-2a1 1 0 0 0 0 2h2v2a1 1 0 0 0 2 0v-2h2a1 1 0 0 0 0 -2h-2v-2a1 1 0 0 0 -1 -1" /> <path d="M3.517 6.391a1 1 0 0 1 .99 1.738c-.313 .178 -.506 .51 -.507 .868v10c0 .548 .452 1 1 1h10c.284 0 .405 -.088 .626 -.486a1 1 0 0 1 1.748 .972c-.546 .98 -1.28 1.514 -2.374 1.514h-10c-1.652 0 -3 -1.348 -3 -3v-10.002a3 3 0 0 1 1.517 -2.605" />
</symbol>
<symbol id="filled-library" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M18.333 2a3.667 3.667 0 0 1 3.667 3.667v8.666a3.667 3.667 0 0 1 -3.667 3.667h-8.666a3.667 3.667 0 0 1 -3.667 -3.667v-8.666a3.667 3.667 0 0 1 3.667 -3.667zm-4.333 10h-3a1 1 0 0 0 0 2h3a1 1 0 0 0 0 -2m3 -3h-6a1 1 0 0 0 0 2h6a1 1 0 0 0 0 -2m-1 -3h-5a1 1 0 0 0 0 2h5a1 1 0 0 0 0 -2" /> <path d="M3.517 6.391a1 1 0 0 1 .99 1.738c-.313 .178 -.506 .51 -.507 .868v10c0 .548 .452 1 1 1h10c.284 0 .405 -.088 .626 -.486a1 1 0 0 1 1.748 .972c-.546 .98 -1.28 1.514 -2.374 1.514h-10c-1.652 0 -3 -1.348 -3 -3v-10.002a3 3 0 0 1 1.517 -2.605" />
</symbol>
<symbol id="filled-octagon-minus" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M13.196 1.246l5.575 2.39a3.04 3.04 0 0 1 1.595 1.594l2.388 5.573c.328 .764 .328 1.63 0 2.393l-2.39 5.575a3.04 3.04 0 0 1 -1.594 1.595l-5.573 2.388a3.03 3.03 0 0 1 -2.393 0l-5.574 -2.389a3.04 3.04 0 0 1 -1.595 -1.595l-2.388 -5.574a3.04 3.04 0 0 1 0 -2.392l2.39 -5.575a3.04 3.04 0 0 1 1.593 -1.595l5.574 -2.388a3.04 3.04 0 0 1 2.392 0m1.804 9.754h-6a1 1 0 0 0 0 2h6a1 1 0 0 0 0 -2" />
</symbol>
<symbol id="filled-octagon-plus" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M13.196 1.246l5.575 2.39a3.04 3.04 0 0 1 1.595 1.594l2.388 5.573c.328 .764 .328 1.63 0 2.393l-2.39 5.575a3.04 3.04 0 0 1 -1.594 1.595l-5.573 2.388a3.03 3.03 0 0 1 -2.393 0l-5.574 -2.389a3.04 3.04 0 0 1 -1.595 -1.595l-2.388 -5.574a3.04 3.04 0 0 1 0 -2.392l2.39 -5.575a3.04 3.04 0 0 1 1.593 -1.595l5.574 -2.388a3.04 3.04 0 0 1 2.392 0m-1.196 6.754a1 1 0 0 0 -1 1v2h-2a1 1 0 0 0 0 2h2v2a1 1 0 0 0 2 0v-2h2a1 1 0 0 0 0 -2h-2v-2a1 1 0 0 0 -1 -1" />
</symbol>
<symbol id="filled-receipt-dollar" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M17 2a3 3 0 0 1 3 3v16a1 1 0 0 1 -1.555 .832l-2.318 -1.545l-1.42 1.42a1 1 0 0 1 -1.32 .083l-.094 -.083l-1.293 -1.292l-1.293 1.292a1 1 0 0 1 -1.32 .083l-.094 -.083l-1.421 -1.42l-2.317 1.545l-.019 .012l-.054 .03l-.028 .017l-.054 .023l-.05 .023l-.049 .015l-.06 .019l-.052 .009l-.057 .011l-.084 .006l-.026 .003h-.022l-.049 -.003h-.039l-.013 -.003h-.016l-.041 -.008l-.038 -.005l-.015 -.005l-.018 -.002l-.034 -.011l-.04 -.01l-.019 -.007l-.015 -.004l-.029 -.013l-.04 -.015l-.021 -.011l-.013 -.005l-.028 -.016l-.036 -.018l-.014 -.01l-.018 -.01l-.038 -.027l-.022 -.014l-.01 -.009l-.02 -.014l-.045 -.041l-.012 -.008l-.024 -.024l-.035 -.039l-.02 -.02l-.007 -.011l-.011 -.012l-.032 -.045l-.02 -.025l-.012 -.019l-.03 -.054l-.017 -.028l-.023 -.054l-.023 -.05a1 1 0 0 1 -.034 -.108l-.01 -.057l-.01 -.053l-.009 -.132v-16a3 3 0 0 1 3 -3zm-5 3a1 1 0 0 0 -1 1a3 3 0 1 0 0 6v2c-.403 .013 -.75 -.18 -.934 -.5a1 1 0 0 0 -1.732 1a3 3 0 0 0 2.505 1.5l.161 -.001a1 1 0 1 0 2 .001l.176 -.005a3 3 0 0 0 -.176 -5.995v-2c.403 -.013 .75 .18 .934 .5a1 1 0 0 0 1.732 -1a3 3 0 0 0 -2.505 -1.5h-.161a1 1 0 0 0 -1 -1m1 7a1 1 0 0 1 0 2zm-2 -4v2a1 1 0 0 1 0 -2" />
</symbol>
<symbol id="filled-receipt-euro" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M17 2a3 3 0 0 1 3 3v16a1 1 0 0 1 -1.555 .832l-2.318 -1.545l-1.42 1.42a1 1 0 0 1 -1.32 .083l-.094 -.083l-1.293 -1.292l-1.293 1.292a1 1 0 0 1 -1.32 .083l-.094 -.083l-1.421 -1.42l-2.317 1.545a1 1 0 0 1 -1.55 -.72l-.005 -.112v-16a3 3 0 0 1 3 -3zm-3.875 4c-2.046 0 -3.668 1.746 -4.043 4h-.082a1 1 0 0 0 0 2h.082c.376 2.254 1.997 4 4.043 4c1.106 0 2.053 -.465 2.707 -1.445a1 1 0 1 0 -1.664 -1.11c-.267 .401 -.58 .555 -1.043 .555c-.882 0 -1.7 -.814 -2.002 -1.999l1.877 -.001a1 1 0 0 0 0 -2h-1.877c.301 -1.186 1.12 -2 2.002 -2c.462 0 .776 .154 1.043 .555a1 1 0 0 0 1.664 -1.11c-.654 -.98 -1.6 -1.445 -2.707 -1.445" />
</symbol>
<symbol id="filled-receipt-pound" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M17 2a3 3 0 0 1 3 3v16a1 1 0 0 1 -1.555 .832l-2.318 -1.545l-1.42 1.42a1 1 0 0 1 -1.32 .083l-.094 -.083l-1.293 -1.292l-1.293 1.292a1 1 0 0 1 -1.32 .083l-.094 -.083l-1.421 -1.42l-2.317 1.545l-.019 .012l-.054 .03l-.028 .017l-.054 .023l-.05 .023l-.049 .015l-.06 .019l-.052 .009l-.057 .011l-.084 .006l-.026 .003h-.022l-.049 -.003h-.039l-.013 -.003h-.016l-.041 -.008l-.038 -.005l-.015 -.005l-.018 -.002l-.034 -.011l-.04 -.01l-.019 -.007l-.015 -.004l-.029 -.013l-.04 -.015l-.021 -.011l-.013 -.005l-.028 -.016l-.036 -.018l-.014 -.01l-.018 -.01l-.038 -.027l-.022 -.014l-.01 -.009l-.02 -.014l-.045 -.041l-.012 -.008l-.024 -.024l-.035 -.039l-.02 -.02l-.007 -.011l-.011 -.012l-.032 -.045l-.02 -.025l-.012 -.019l-.03 -.054l-.017 -.028l-.023 -.054l-.023 -.05a1 1 0 0 1 -.034 -.108l-.01 -.057l-.01 -.053l-.009 -.132v-16a3 3 0 0 1 3 -3zm-4 4a3 3 0 0 0 -3 3v2h-1a1 1 0 0 0 0 2h1a1 1 0 0 1 -.883 .993l-.117 .007c-1.287 0 -1.332 1.864 -.133 1.993l.133 .007h6a1 1 0 0 0 1 -1l-.007 -.117a1 1 0 0 0 -.993 -.883h-3.171l.048 -.148a3 3 0 0 0 .123 -.852h1a1 1 0 0 0 0 -2h-1v-2a1 1 0 0 1 2 0a1 1 0 0 0 2 0a3 3 0 0 0 -3 -3" />
</symbol>
<symbol id="filled-receipt-rupee" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M17 2a3 3 0 0 1 3 3v16a1 1 0 0 1 -1.555 .832l-2.318 -1.545l-1.42 1.42a1 1 0 0 1 -1.32 .083l-.094 -.083l-1.293 -1.292l-1.293 1.292a1 1 0 0 1 -1.32 .083l-.094 -.083l-1.421 -1.42l-2.317 1.545l-.019 .012l-.054 .03l-.028 .017l-.054 .023l-.05 .023l-.049 .015l-.06 .019l-.052 .009l-.057 .011l-.084 .006l-.026 .003h-.022l-.049 -.003h-.039l-.013 -.003h-.016l-.041 -.008l-.038 -.005l-.015 -.005l-.018 -.002l-.034 -.011l-.04 -.01l-.019 -.007l-.015 -.004l-.029 -.013l-.04 -.015l-.021 -.011l-.013 -.005l-.028 -.016l-.036 -.018l-.014 -.01l-.018 -.01l-.038 -.027l-.022 -.014l-.01 -.009l-.02 -.014l-.045 -.041l-.012 -.008l-.024 -.024l-.035 -.039l-.02 -.02l-.007 -.011l-.011 -.012l-.032 -.045l-.02 -.025l-.012 -.019l-.03 -.054l-.017 -.028l-.023 -.054l-.023 -.05a1 1 0 0 1 -.034 -.108l-.01 -.057l-.01 -.053l-.009 -.132v-16a3 3 0 0 1 3 -3zm-2 4h-6c-1.287 0 -1.332 1.864 -.133 1.993l.133 .007h1a2 2 0 0 1 1.732 1h-2.732a1 1 0 1 0 0 2l2.732 .001a2 2 0 0 1 -1.732 .999h-1c-.89 0 -1.337 1.077 -.707 1.707l3 3a1 1 0 0 0 1.414 0l.083 -.094a1 1 0 0 0 -.083 -1.32l-1.484 -1.485l.113 -.037a4.01 4.01 0 0 0 2.538 -2.77l1.126 -.001a1 1 0 0 0 0 -2h-1.126a4 4 0 0 0 -.33 -.855l-.079 -.145h1.535a1 1 0 0 0 1 -1l-.007 -.117a1 1 0 0 0 -.993 -.883" />
</symbol>
<symbol id="filled-receipt-yen" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M17 2a3 3 0 0 1 3 3v16a1 1 0 0 1 -1.555 .832l-2.318 -1.545l-1.42 1.42a1 1 0 0 1 -1.32 .083l-.094 -.083l-1.293 -1.292l-1.293 1.292a1 1 0 0 1 -1.32 .083l-.094 -.083l-1.421 -1.42l-2.317 1.545l-.019 .012l-.054 .03l-.028 .017l-.054 .023l-.05 .023l-.049 .015l-.06 .019l-.052 .009l-.057 .011l-.084 .006l-.026 .003h-.022l-.049 -.003h-.039l-.013 -.003h-.016l-.041 -.008l-.038 -.005l-.015 -.005l-.018 -.002l-.034 -.011l-.04 -.01l-.019 -.007l-.015 -.004l-.029 -.013l-.04 -.015l-.021 -.011l-.013 -.005l-.028 -.016l-.036 -.018l-.014 -.01l-.018 -.01l-.038 -.027l-.022 -.014l-.01 -.009l-.02 -.014l-.045 -.041l-.012 -.008l-.024 -.024l-.035 -.039l-.02 -.02l-.007 -.011l-.011 -.012l-.032 -.045l-.02 -.025l-.012 -.019l-.03 -.054l-.017 -.028l-.023 -.054l-.023 -.05a1 1 0 0 1 -.034 -.108l-.01 -.057l-.01 -.053l-.009 -.132v-16a3 3 0 0 1 3 -3zm-1.445 4.168a1 1 0 0 0 -1.387 .277l-2.168 3.252l-2.168 -3.252a1 1 0 0 0 -1.664 1.11l1.63 2.445h-.798a1 1 0 0 0 0 2h2v1h-2a1 1 0 0 0 0 2h2v1a1 1 0 0 0 1 1l.117 -.007a1 1 0 0 0 .883 -.993v-1h2a1 1 0 0 0 0 -2h-2v-1h2a1 1 0 0 0 0 -2h-.8l1.632 -2.445a1 1 0 0 0 -.277 -1.387" />
</symbol>
<symbol id="filled-receipt-yuan" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M17 2a3 3 0 0 1 3 3v16a1 1 0 0 1 -1.555 .832l-2.318 -1.545l-1.42 1.42a1 1 0 0 1 -1.32 .083l-.094 -.083l-1.293 -1.292l-1.293 1.292a1 1 0 0 1 -1.32 .083l-.094 -.083l-1.421 -1.42l-2.317 1.545l-.019 .012l-.054 .03l-.028 .017l-.054 .023l-.05 .023l-.049 .015l-.06 .019l-.052 .009l-.057 .011l-.084 .006l-.026 .003h-.022l-.049 -.003h-.039l-.013 -.003h-.016l-.041 -.008l-.038 -.005l-.015 -.005l-.018 -.002l-.034 -.011l-.04 -.01l-.019 -.007l-.015 -.004l-.029 -.013l-.04 -.015l-.021 -.011l-.013 -.005l-.028 -.016l-.036 -.018l-.014 -.01l-.018 -.01l-.038 -.027l-.022 -.014l-.01 -.009l-.02 -.014l-.045 -.041l-.012 -.008l-.024 -.024l-.035 -.039l-.02 -.02l-.007 -.011l-.011 -.012l-.032 -.045l-.02 -.025l-.012 -.019l-.03 -.054l-.017 -.028l-.023 -.054l-.023 -.05a1 1 0 0 1 -.034 -.108l-.01 -.057l-.01 -.053l-.009 -.132v-16a3 3 0 0 1 3 -3zm-1.445 4.168a1 1 0 0 0 -1.387 .277l-2.168 3.252l-2.168 -3.252a1 1 0 0 0 -1.664 1.11l2.297 3.445h-1.465a1 1 0 0 0 0 2h2v3a1 1 0 0 0 1 1l.117 -.007a1 1 0 0 0 .883 -.993v-3h2a1 1 0 0 0 0 -2h-1.465l2.297 -3.445a1 1 0 0 0 -.277 -1.387" />
</symbol>
<symbol id="filled-template" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M19 3a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-2a2 2 0 0 1 2 -2z" /> <path d="M9 11a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-4a2 2 0 0 1 -2 -2v-6a2 2 0 0 1 2 -2z" /> <path d="M20 11a1 1 0 0 1 0 2h-6a1 1 0 0 1 0 -2z" /> <path d="M20 15a1 1 0 0 1 0 2h-6a1 1 0 0 1 0 -2z" /> <path d="M20 19a1 1 0 0 1 0 2h-6a1 1 0 0 1 0 -2z" />
</symbol>
<use xlink:href="#filled-building-bridge-2" x="24" y="24" width="24" height="24" />
<use xlink:href="#filled-columns-1" x="68" y="24" width="24" height="24" />
<use xlink:href="#filled-columns-2" x="112" y="24" width="24" height="24" />
<use xlink:href="#filled-columns-3" x="156" y="24" width="24" height="24" />
<use xlink:href="#filled-confetti" x="200" y="24" width="24" height="24" />
<use xlink:href="#filled-container" x="244" y="24" width="24" height="24" />
<use xlink:href="#filled-layout-board-split" x="24" y="68" width="24" height="24" />
<use xlink:href="#filled-layout-board" x="68" y="68" width="24" height="24" />
<use xlink:href="#filled-library-plus" x="112" y="68" width="24" height="24" />
<use xlink:href="#filled-library" x="156" y="68" width="24" height="24" />
<use xlink:href="#filled-octagon-minus" x="200" y="68" width="24" height="24" />
<use xlink:href="#filled-octagon-plus" x="244" y="68" width="24" height="24" />
<use xlink:href="#filled-receipt-dollar" x="24" y="112" width="24" height="24" />
<use xlink:href="#filled-receipt-euro" x="68" y="112" width="24" height="24" />
<use xlink:href="#filled-receipt-pound" x="112" y="112" width="24" height="24" />
<use xlink:href="#filled-receipt-rupee" x="156" y="112" width="24" height="24" />
<use xlink:href="#filled-receipt-yen" x="200" y="112" width="24" height="24" />
<use xlink:href="#filled-receipt-yuan" x="244" y="112" width="24" height="24" />
<use xlink:href="#filled-template" x="24" y="156" width="24" height="24" />
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

BIN
.github/tabler-icons-3.34.0@2x.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
.github/tabler-icons-3.35.0.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

76
.github/tabler-icons-3.35.0.svg vendored Normal file
View File

@ -0,0 +1,76 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 292 160" width="292" height="160" style="color: #354052"><rect x="0" y="0" width="292" height="160" fill="#fff"></rect>
<symbol id="filled-device-gamepad" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M20 5a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-16a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3zm-12 4l-.117 .007a1 1 0 0 0 -.883 .993v1h-1a1 1 0 0 0 -1 1l.007 .117a1 1 0 0 0 .993 .883h1v1a1 1 0 0 0 1 1l.117 -.007a1 1 0 0 0 .883 -.993v-1h1a1 1 0 0 0 1 -1l-.007 -.117a1 1 0 0 0 -.993 -.883h-1v-1a1 1 0 0 0 -1 -1m10 3a1 1 0 0 0 -1 1v.01a1 1 0 0 0 2 0v-.01a1 1 0 0 0 -1 -1m-3 -2a1 1 0 0 0 -1 1v.01a1 1 0 0 0 2 0v-.01a1 1 0 0 0 -1 -1" />
</symbol>
<symbol id="filled-file-dollar" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm0 8a1 1 0 0 0 -1 1v.05a2.5 2.5 0 0 0 .5 4.95h1a.5 .5 0 1 1 0 1h-2.5a1 1 0 0 0 0 2h1a1 1 0 0 0 2 0v-.05a2.5 2.5 0 0 0 -.5 -4.95h-1a.5 .5 0 1 1 0 -1h2.5a1 1 0 0 0 0 -2h-1a1 1 0 0 0 -1 -1" /> <path d="M19 7h-4l-.001 -4.001z" />
</symbol>
<symbol id="filled-file-euro" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm2.334 9.23a4 4 0 0 0 -5.208 2.77h-.126a1 1 0 0 0 0 2h.126a4 4 0 0 0 5.208 2.77a1 1 0 0 0 -.668 -1.885l-.156 .049a2 2 0 0 1 -2.243 -.934h.733a1 1 0 0 0 0 -2h-.733q .056 -.097 .124 -.19a2 2 0 0 1 2.275 -.695l.112 .032a1 1 0 0 0 .556 -1.918" /> <path d="M19 7h-4l-.001 -4.001z" />
</symbol>
<symbol id="filled-file-music" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm.447 9.106a1 1 0 0 0 -1.447 .894v3a2 2 0 0 0 -1.995 1.85l-.005 .15a2 2 0 1 0 4 0v-3.382l.553 .276a1 1 0 0 0 .894 -1.788z" /> <path d="M19 7h-4l-.001 -4.001z" />
</symbol>
<symbol id="filled-file-pencil" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm1 10l-5 5v2h2l5 -5a1.414 1.414 0 0 0 -2 -2" /> <path d="M19 7h-4l-.001 -4.001z" />
</symbol>
<symbol id="filled-file-scissors" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm-2.293 9.293a1 1 0 1 0 -1.414 1.414l2.292 2.293l-1.068 1.067a2.003 2.003 0 0 0 -2.512 1.784l-.005 .149a2 2 0 1 0 3.933 -.516l1.067 -1.069l1.067 1.068a2 2 0 0 0 -.062 .368l-.005 .149a2 2 0 1 0 1.484 -1.933l-1.069 -1.067l2.292 -2.293a1 1 0 0 0 -1.414 -1.414l-2.293 2.292z" /> <path d="M19 7h-4l-.001 -4.001z" />
</symbol>
<symbol id="filled-file-settings" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm0 8.5a1 1 0 0 0 -1 1v.67a3 3 0 0 0 -.909 .516l-.576 -.346a1 1 0 0 0 -1.03 1.714l.575 .346q -.043 .207 -.055 .424l-.005 .176q 0 .28 .05 .548l-.582 .336a1 1 0 0 0 1 1.732l.583 -.336c.277 .238 .598 .425 .95 .55l-.001 .67a1 1 0 0 0 2 0v-.671c.335 -.118 .641 -.294 .909 -.514l.576 .345a1 1 0 0 0 1.03 -1.714l-.575 -.346a3 3 0 0 0 .01 -1.148l.581 -.336a1 1 0 0 0 -1 -1.732l-.582 .335a3 3 0 0 0 -.948 -.548l-.001 -.671a1 1 0 0 0 -1 -1m0 3.5a1 1 0 1 1 0 2a1 1 0 0 1 0 -2" /> <path d="M19 7h-4l-.001 -4.001z" />
</symbol>
<symbol id="filled-file-signal" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm-1.768 9.818a1 1 0 0 0 -1.414 0a4.5 4.5 0 0 0 0 6.364a1 1 0 0 0 1.414 -1.414a2.5 2.5 0 0 1 0 -3.536a1 1 0 0 0 0 -1.414m4.95 0a1 1 0 0 0 -1.414 1.414a2.5 2.5 0 0 1 0 3.536a1 1 0 0 0 1.414 1.414a4.5 4.5 0 0 0 0 -6.364m-3.182 2.182a1 1 0 0 0 -1 1l.007 .127a1 1 0 0 0 1.993 -.117l-.007 -.127a1 1 0 0 0 -.993 -.883" /> <path d="M19 7h-4l-.001 -4.001z" />
</symbol>
<symbol id="filled-file-time" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm0 8a5 5 0 0 0 -4.995 4.783l-.005 .217a5 5 0 1 0 5 -5m0 2a3 3 0 1 1 0 6a3 3 0 0 1 0 -6m0 .496a1 1 0 0 0 -1 1v1.504a1 1 0 0 0 .293 .707l1 1a1 1 0 0 0 1.414 0l.083 -.094a1 1 0 0 0 -.083 -1.32l-.707 -.708v-1.089a1 1 0 0 0 -1 -1" /> <path d="M19 7h-4l-.001 -4.001z" />
</symbol>
<symbol id="filled-file-unknown" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm0 15a1 1 0 0 0 -.993 .883l-.007 .127a1 1 0 0 0 1.993 .117l.007 -.127a1 1 0 0 0 -1 -1m1.136 -5.727a2.5 2.5 0 0 0 -3.037 .604a1 1 0 0 0 1.434 1.389l.088 -.09a.5 .5 0 1 1 .379 .824a1 1 0 0 0 -.002 2a2.5 2.5 0 0 0 1.137 -4.727" /> <path d="M19 7h-4l-.001 -4.001z" />
</symbol>
<symbol id="filled-file-upload" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm0 9l-.09 .004l-.058 .007l-.118 .025l-.105 .035l-.113 .054l-.111 .071a1 1 0 0 0 -.112 .097l-2.5 2.5a1 1 0 0 0 0 1.414l.094 .083a1 1 0 0 0 1.32 -.083l.793 -.793v3.586a1 1 0 0 0 2 0v-3.585l.793 .792a1 1 0 0 0 1.414 -1.414l-2.5 -2.5l-.082 -.073l-.104 -.074l-.098 -.052l-.11 -.044l-.112 -.03l-.126 -.017z" /> <path d="M19 7h-4l-.001 -4.001z" />
</symbol>
<symbol id="filled-file-vector" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm2.5 9a2.5 2.5 0 0 0 -2.292 1.5h-.208a3.5 3.5 0 0 0 -3.399 2.666a2.5 2.5 0 0 0 -1.596 2.17l-.005 .164a2.5 2.5 0 1 0 3.676 -2.206a1.5 1.5 0 0 1 1.324 -.794h.208a2.5 2.5 0 1 0 2.292 -3.5m-5 6a.5 .5 0 1 1 0 1a.5 .5 0 0 1 0 -1m5 -4a.5 .5 0 1 1 0 1a.5 .5 0 0 1 0 -1" /> <path d="M19 7h-4l-.001 -4.001z" />
</symbol>
<symbol id="filled-files" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M11 2l3 .001v5.999a1 1 0 0 0 .883 .993l.117 .007h6v6a3 3 0 0 1 -3 3h-1v1a3 3 0 0 1 -3 3h-7a3 3 0 0 1 -3 -3v-10a3 3 0 0 1 3 -3h1v-1a3 3 0 0 1 3 -3m-3 6h-1a1 1 0 0 0 -1 1v10a1 1 0 0 0 1 1h7a1 1 0 0 0 1 -1v-1h-4a3 3 0 0 1 -3 -3zm12.415 -1h-4.415v-4.415z" />
</symbol>
<symbol id="filled-registered" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M17 3.34a10 10 0 1 1 -15 8.66l.005 -.324a10 10 0 0 1 14.995 -8.336m-5 4.66h-2a1 1 0 0 0 -1 1v6a1 1 0 0 0 1 1l.117 -.007a1 1 0 0 0 .883 -.993v-1h.585l1.708 1.707a1 1 0 0 0 1.414 -1.414l-.9 -.899a3 3 0 0 0 -1.807 -5.394m0 2a1 1 0 0 1 0 2h-1v-2z" />
</symbol>
<symbol id="filled-video-minus" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M13 5a3 3 0 0 1 3 3v.381l3.106 -1.552a2 2 0 0 1 2.894 1.789v6.765a2 2 0 0 1 -2.894 1.787l-3.106 -1.552v.382a3 3 0 0 1 -3 3h-8a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3zm-2 6h-4a1 1 0 0 0 0 2h4a1 1 0 0 0 0 -2" />
</symbol>
<symbol id="filled-video-plus" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M13 5a3 3 0 0 1 3 3v.381l3.106 -1.552a2 2 0 0 1 2.894 1.789v6.765a2 2 0 0 1 -2.894 1.787l-3.106 -1.552v.382a3 3 0 0 1 -3 3h-8a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3zm-4 4a1 1 0 0 0 -1 1v1h-1a1 1 0 0 0 0 2h1v1a1 1 0 0 0 2 0v-1h1a1 1 0 0 0 0 -2h-1v-1a1 1 0 0 0 -1 -1" />
</symbol>
<symbol id="filled-writing-sign" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M6 11c-.483 0 -1.021 .725 -1 1.983c.013 .783 .29 1.3 1.035 2.07l.107 .107l.101 -.134c.466 -.643 .714 -1.266 .752 -1.864l.005 -.162l-.003 -.563c-.017 -1.284 -.13 -1.422 -.807 -1.436zm12 -9c1.673 0 3 1.327 3 3v1h-6v-1c0 -1.673 1.327 -3 3 -3m2.707 15.707l-2 2l-.08 .071l-.043 .034l-.084 .054l-.103 .052l-.084 .032l-.08 .023l-.143 .023l-.071 .004h-2.519c-1.616 0 -2.954 -.83 -4.004 -2.393l-.026 -.04l-.273 .431l-.365 .557c-1.356 2.034 -2.942 1.691 -4.7 -.41l-.064 -.076l-.176 .147q -.897 .727 -2.045 1.438l-.332 .203a1 1 0 1 1 -1.03 -1.714a19 19 0 0 0 2.17 -1.498l.078 -.065l-.147 -.15c-.998 -1.033 -1.498 -1.904 -1.576 -3.157l-.01 -.256c-.038 -2.273 1.257 -4.017 3 -4.017c2.052 0 3 .948 3 4c0 1.218 -.47 2.392 -1.392 3.532l-.11 .13l.28 .36c.784 .985 .994 .992 1.343 .492l.047 -.069q .97 -1.456 1.437 -2.392a1 1 0 0 1 1.814 .053c.858 2.002 1.878 2.894 3.081 2.894l.085 -.001l-.292 -.292a1 1 0 0 1 -.293 -.707v-9h6v9a1 1 0 0 1 -.293 .707" />
</symbol>
<symbol id="filled-writing" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
> <path d="M21 8v9a1 1 0 0 1 -.293 .707l-2 2a1 1 0 0 1 -.112 .097l-.11 .071l-.114 .054l-.105 .035l-.149 .03l-.117 .006h-13a3 3 0 0 1 0 -6h4a1 1 0 0 0 0 -2h-3a1 1 0 0 1 0 -2h3a3 3 0 0 1 0 6h-4a1 1 0 0 0 0 2h10.585l-.292 -.293a1 1 0 0 1 -.293 -.707v-9zm-3 -6c1.673 0 3 1.327 3 3v1h-6v-1c0 -1.673 1.327 -3 3 -3" />
</symbol>
<use xlink:href="#filled-device-gamepad" x="24" y="24" width="24" height="24" />
<use xlink:href="#filled-file-dollar" x="68" y="24" width="24" height="24" />
<use xlink:href="#filled-file-euro" x="112" y="24" width="24" height="24" />
<use xlink:href="#filled-file-music" x="156" y="24" width="24" height="24" />
<use xlink:href="#filled-file-pencil" x="200" y="24" width="24" height="24" />
<use xlink:href="#filled-file-scissors" x="244" y="24" width="24" height="24" />
<use xlink:href="#filled-file-settings" x="24" y="68" width="24" height="24" />
<use xlink:href="#filled-file-signal" x="68" y="68" width="24" height="24" />
<use xlink:href="#filled-file-time" x="112" y="68" width="24" height="24" />
<use xlink:href="#filled-file-unknown" x="156" y="68" width="24" height="24" />
<use xlink:href="#filled-file-upload" x="200" y="68" width="24" height="24" />
<use xlink:href="#filled-file-vector" x="244" y="68" width="24" height="24" />
<use xlink:href="#filled-files" x="24" y="112" width="24" height="24" />
<use xlink:href="#filled-registered" x="68" y="112" width="24" height="24" />
<use xlink:href="#filled-video-minus" x="112" y="112" width="24" height="24" />
<use xlink:href="#filled-video-plus" x="156" y="112" width="24" height="24" />
<use xlink:href="#filled-writing-sign" x="200" y="112" width="24" height="24" />
<use xlink:href="#filled-writing" x="244" y="112" width="24" height="24" />
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

BIN
.github/tabler-icons-3.35.0@2x.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
.github/tabler-icons-3.36.0.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

76
.github/tabler-icons-3.36.0.svg vendored Normal file
View File

@ -0,0 +1,76 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 292 160" width="292" height="160" style="color: #354052"><rect x="0" y="0" width="292" height="160" fill="#fff"></rect>
<symbol id="outline-alphabet-polish" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M7 10h2a2 2 0 0 1 2 2v5h-3a2 2 0 1 1 0 -4h3" /> <path d="M16 7v10" /> <path d="M18 11l-4 2" /> <path d="M10.5 17a1.5 1.5 0 0 0 0 3" />
</symbol>
<symbol id="outline-alphabet-runes" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M17 18v-12" /> <path d="M13 6l4 4l4 -4" /> <path d="M11 18l-7 -8l4 -4l4 4l-7 8" />
</symbol>
<symbol id="outline-blind" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M9 4a1 1 0 1 0 2 0a1 1 0 0 0 -2 0" /> <path d="M4 21l3 -4" /> <path d="M13 21l-2 -4l-3 -3l1 -6" /> <path d="M3 12l2 -3l4 -1l6 4" /> <path d="M16.5 14l3.5 7" />
</symbol>
<symbol id="outline-brand-tabnine" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M20 12l-12 6.75m12 -6.75l-12 -6.75m12 6.75v-4.527l-8 -4.473l-4 2.25m12 6.75v4.5l-8 4.5l-4 -2.25m0 -13.5l-4 2.222v9.028l4 2.25z" />
</symbol>
<symbol id="outline-circle-asterisk" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M12 8.5v7" /> <path d="M9 10l6 4" /> <path d="M9 14l6 -4" /> <path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0" />
</symbol>
<symbol id="outline-deaf" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M6 10a7 7 0 1 1 13 3.6a10 10 0 0 1 -2 2a8 8 0 0 0 -2 3a4.5 4.5 0 0 1 -6.8 1.4" /> <path d="M10 10a3 3 0 1 1 5 2.2" /> <path d="M5 13l4 4" /> <path d="M9 13l-4 4" />
</symbol>
<symbol id="outline-hexagon-asterisk" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M19.875 6.27c.7 .398 1.13 1.143 1.125 1.948v7.284c0 .809 -.443 1.555 -1.158 1.948l-6.75 4.27a2.27 2.27 0 0 1 -2.184 0l-6.75 -4.27a2.23 2.23 0 0 1 -1.158 -1.948v-7.285c0 -.809 .443 -1.554 1.158 -1.947l6.75 -3.98a2.33 2.33 0 0 1 2.25 0l6.75 3.98z" /> <path d="M12 8.5v7" /> <path d="M9 10l6 4" /> <path d="M9 14l6 -4" />
</symbol>
<symbol id="outline-ripple-down" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M3 7q 4.5 -3 9 0t 9 0" /> <path d="M3 17q 4.5 -3 9 0q .213 .142 .427 .27" /> <path d="M3 12q 4.5 -3 9 0q 2.006 1.338 4.012 1.482" /> <path d="M19 16v6" /> <path d="M22 19l-3 3l-3 -3" />
</symbol>
<symbol id="outline-ripple-up" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M3 7q 4.5 -3 9 0t 9 0" /> <path d="M3 17q 4.5 -3 9 0q .218 .144 .434 .275" /> <path d="M3 12q 4.5 -3 9 0q 1.941 1.294 3.882 1.472" /> <path d="M19 22v-6" /> <path d="M22 19l-3 -3l-3 3" />
</symbol>
<symbol id="outline-rosette-asterisk" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M5 7.2a2.2 2.2 0 0 1 2.2 -2.2h1a2.2 2.2 0 0 0 1.55 -.64l.7 -.7a2.2 2.2 0 0 1 3.12 0l.7 .7c.412 .41 .97 .64 1.55 .64h1a2.2 2.2 0 0 1 2.2 2.2v1c0 .58 .23 1.138 .64 1.55l.7 .7a2.2 2.2 0 0 1 0 3.12l-.7 .7a2.2 2.2 0 0 0 -.64 1.55v1a2.2 2.2 0 0 1 -2.2 2.2h-1a2.2 2.2 0 0 0 -1.55 .64l-.7 .7a2.2 2.2 0 0 1 -3.12 0l-.7 -.7a2.2 2.2 0 0 0 -1.55 -.64h-1a2.2 2.2 0 0 1 -2.2 -2.2v-1a2.2 2.2 0 0 0 -.64 -1.55l-.7 -.7a2.2 2.2 0 0 1 0 -3.12l.7 -.7a2.2 2.2 0 0 0 .64 -1.55z" /> <path d="M12 8.5v7" /> <path d="M9 10l6 4" /> <path d="M9 14l6 -4" />
</symbol>
<symbol id="outline-settings-ai" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065" /> <path d="M9 14v-2.5a1.5 1.5 0 0 1 3 0v2.5" /> <path d="M9 13h3" /> <path d="M15 10v4" />
</symbol>
<symbol id="outline-sparkles-2" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M13 7a9.3 9.3 0 0 0 1.516 -.546c.911 -.438 1.494 -1.015 1.937 -1.932c.207 -.428 .382 -.928 .547 -1.522c.165 .595 .34 1.095 .547 1.521c.443 .918 1.026 1.495 1.937 1.933c.426 .205 .925 .38 1.516 .546a9.3 9.3 0 0 0 -1.516 .547c-.911 .438 -1.494 1.015 -1.937 1.932a9 9 0 0 0 -.547 1.521c-.165 -.594 -.34 -1.095 -.547 -1.521c-.443 -.918 -1.026 -1.494 -1.937 -1.932a9 9 0 0 0 -1.516 -.547" /> <path d="M3 14a21 21 0 0 0 1.652 -.532c2.542 -.953 3.853 -2.238 4.816 -4.806a20 20 0 0 0 .532 -1.662a20 20 0 0 0 .532 1.662c.963 2.567 2.275 3.853 4.816 4.806q .75 .28 1.652 .532a21 21 0 0 0 -1.652 .532c-2.542 .953 -3.854 2.238 -4.816 4.806a20 20 0 0 0 -.532 1.662a20 20 0 0 0 -.532 -1.662c-.963 -2.568 -2.275 -3.853 -4.816 -4.806a21 21 0 0 0 -1.652 -.532" />
</symbol>
<symbol id="outline-square-rotated-asterisk" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M13.446 2.6l7.955 7.954a2.045 2.045 0 0 1 0 2.892l-7.955 7.955a2.045 2.045 0 0 1 -2.892 0l-7.955 -7.955a2.045 2.045 0 0 1 0 -2.892l7.955 -7.955a2.045 2.045 0 0 1 2.892 0z" /> <path d="M12 8.5v7" /> <path d="M9 10l6 4" /> <path d="M9 14l6 -4" />
</symbol>
<symbol id="outline-subtitles-ai" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M11.5 19h-5.5a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v4" /> <path d="M7 15h5" /> <path d="M17 12h-3" /> <path d="M11 12h-1" /> <path d="M19 22.5a4.75 4.75 0 0 1 3.5 -3.5a4.75 4.75 0 0 1 -3.5 -3.5a4.75 4.75 0 0 1 -3.5 3.5a4.75 4.75 0 0 1 3.5 3.5" />
</symbol>
<symbol id="outline-subtitles-edit" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M11.5 19h-5.5a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v3" /> <path d="M7 15h5" /> <path d="M17 12h-3" /> <path d="M11 12h-1" /> <path d="M18.42 15.61a2.1 2.1 0 0 1 2.97 2.97l-3.39 3.42h-3v-3z" />
</symbol>
<symbol id="outline-subtitles-off" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M9 5h9a3 3 0 0 1 3 3v8a3 3 0 0 1 -.13 .874m-2.006 2a3 3 0 0 1 -.864 .126h-12a3 3 0 0 1 -3 -3v-8c0 -1.35 .893 -2.493 2.12 -2.869" /> <path d="M7 15h5" /> <path d="M17 12h-1" /> <path d="M12 12h-2" /> <path d="M3 3l18 18" />
</symbol>
<symbol id="outline-subtitles" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M18 5a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3z" /> <path d="M7 15h5" /> <path d="M15 15h2" /> <path d="M17 12h-3" /> <path d="M11 12h-1" />
</symbol>
<symbol id="outline-whisk" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
> <path d="M21.015 3.035l-16.515 16.465" /> <path d="M3.173 17.619a4.63 4.63 0 0 0 3.284 3.26a4.67 4.67 0 0 0 4.487 -1.194c1.85 -1.836 4.07 -10.65 4.07 -10.65s-8.88 2.296 -10.639 4.132a4.59 4.59 0 0 0 -1.202 4.452" />
</symbol>
<use xlink:href="#outline-alphabet-polish" x="24" y="24" width="24" height="24" />
<use xlink:href="#outline-alphabet-runes" x="68" y="24" width="24" height="24" />
<use xlink:href="#outline-blind" x="112" y="24" width="24" height="24" />
<use xlink:href="#outline-brand-tabnine" x="156" y="24" width="24" height="24" />
<use xlink:href="#outline-circle-asterisk" x="200" y="24" width="24" height="24" />
<use xlink:href="#outline-deaf" x="244" y="24" width="24" height="24" />
<use xlink:href="#outline-hexagon-asterisk" x="24" y="68" width="24" height="24" />
<use xlink:href="#outline-ripple-down" x="68" y="68" width="24" height="24" />
<use xlink:href="#outline-ripple-up" x="112" y="68" width="24" height="24" />
<use xlink:href="#outline-rosette-asterisk" x="156" y="68" width="24" height="24" />
<use xlink:href="#outline-settings-ai" x="200" y="68" width="24" height="24" />
<use xlink:href="#outline-sparkles-2" x="244" y="68" width="24" height="24" />
<use xlink:href="#outline-square-rotated-asterisk" x="24" y="112" width="24" height="24" />
<use xlink:href="#outline-subtitles-ai" x="68" y="112" width="24" height="24" />
<use xlink:href="#outline-subtitles-edit" x="112" y="112" width="24" height="24" />
<use xlink:href="#outline-subtitles-off" x="156" y="112" width="24" height="24" />
<use xlink:href="#outline-subtitles" x="200" y="112" width="24" height="24" />
<use xlink:href="#outline-whisk" x="244" y="112" width="24" height="24" />
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

BIN
.github/tabler-icons-3.36.0@2x.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

55
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,55 @@
name: Build
on:
pull_request:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Use Node.js 22
uses: actions/setup-node@v4
with:
node-version: 22
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 10.26.2
- name: Install system dependencies for canvas and rsvg-convert
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential \
libcairo2-dev \
libpango1.0-dev \
libjpeg-dev \
libgif-dev \
librsvg2-dev \
librsvg2-bin
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install --no-frozen-lockfile
- name: Build
env:
ICONS_LIMIT: 100
run: pnpm exec turbo build

View File

@ -11,7 +11,7 @@ jobs:
pull-requests: write
issues: write
steps:
- uses: actions/stale@v5
- uses: actions/stale@v9
with:
days-before-issue-stale: 360
days-before-issue-close: 14

View File

@ -9,4 +9,4 @@ jobs:
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v5
- uses: actions/labeler@v6

105
.github/workflows/sync-icons.yml vendored Normal file
View File

@ -0,0 +1,105 @@
name: Sync Icons to CDN
on:
push:
branches:
- main
paths:
- 'icons/**'
workflow_dispatch:
jobs:
sync-icons:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout main branch
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Configure Git
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
- name: Sync icons and create release tag
id: sync
run: |
CDN_BRANCH="icons"
SOURCE_FOLDER="icons"
if [ ! -d "$SOURCE_FOLDER" ]; then
echo "No $SOURCE_FOLDER folder found"
exit 0
fi
# Get version from package.json
VERSION=$(node -p "require('./package.json').version")
VERSION_TAG="icons-v${VERSION}"
echo "Package version: $VERSION"
echo "Tag: $VERSION_TAG"
# Check if tag already exists
if git ls-remote --tags origin | grep -q "refs/tags/${VERSION_TAG}$"; then
echo "Tag $VERSION_TAG already exists, skipping"
echo "has_changes=false" >> $GITHUB_OUTPUT
exit 0
fi
# Store icons in temp location
mkdir -p /tmp/icons-sync
cp -r $SOURCE_FOLDER/* /tmp/icons-sync/
MAIN_SHA=$(git rev-parse --short HEAD)
# Setup CDN branch
if git ls-remote --heads origin $CDN_BRANCH | grep -q $CDN_BRANCH; then
git checkout $CDN_BRANCH
find . -maxdepth 1 ! -name '.git' ! -name '.' -exec rm -rf {} +
else
git checkout --orphan $CDN_BRANCH
git rm -rf .
fi
# Copy icons to root
cp -r /tmp/icons-sync/* .
git add -A
if git diff --staged --quiet; then
echo "No changes to sync"
echo "has_changes=false" >> $GITHUB_OUTPUT
exit 0
fi
git commit -m "v${VERSION}"
git push -u origin $CDN_BRANCH --force-with-lease
# Create versioned tag
git tag $VERSION_TAG
git push origin $VERSION_TAG
echo "has_changes=true" >> $GITHUB_OUTPUT
echo "version_tag=$VERSION_TAG" >> $GITHUB_OUTPUT
- name: Output CDN URLs
if: steps.sync.outputs.has_changes == 'true'
run: |
REPO="${{ github.repository }}"
TAG="${{ steps.sync.outputs.version_tag }}"
echo "═══════════════════════════════════════════════════════════"
echo " CDN URLs"
echo "═══════════════════════════════════════════════════════════"
echo ""
echo " https://cdn.jsdelivr.net/gh/${REPO}@${TAG}/<filename>"
echo ""
echo " Browse: https://cdn.jsdelivr.net/gh/${REPO}@${TAG}/"
echo ""
echo "═══════════════════════════════════════════════════════════"

View File

@ -1,51 +0,0 @@
name: Validate icons
on: [pull_request]
permissions:
pull-requests: write
jobs:
validate:
if: github.repository == 'tabler/tabler-icons'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js 20
uses: actions/setup-node@v3
with:
node-version: 20
- uses: pnpm/action-setup@v3
name: Install pnpm
with:
version: 8
run_install: false
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install --no-frozen-lockfile
- name: Validate icons
id: validate
run: pnpm run --silent validate > ./comment-markup.md
continue-on-error: true
- name: Comment PR
uses: thollander/actions-comment-pull-request@v2
with:
filePath: ./comment-markup.md
comment_tag: validate
mode: recreate

129
.github/workflows/validate-pr.yml vendored Normal file
View File

@ -0,0 +1,129 @@
name: Validate PR
on: [pull_request_target]
permissions:
pull-requests: write
jobs:
validate-pr:
if: github.repository == 'tabler/tabler-icons'
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: read
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Set base branch and PR info
run: |
BASE_REF="${{ github.event.pull_request.base.ref }}"
BASE_SHA="${{ github.event.pull_request.base.sha }}"
PR_REPO="${{ github.event.pull_request.head.repo.full_name }}"
PR_SHA="${{ github.event.pull_request.head.sha }}"
echo "BASE_REF=${BASE_REF}" >> $GITHUB_ENV
echo "BASE_SHA=${BASE_SHA}" >> $GITHUB_ENV
echo "PR_REPO=${PR_REPO}" >> $GITHUB_ENV
echo "PR_SHA=${PR_SHA}" >> $GITHUB_ENV
# Fetch base branch to ensure it's available
git fetch origin ${BASE_REF}:${BASE_REF} || true
- name: Use Node.js 22
uses: actions/setup-node@v4
with:
node-version: 22
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 10.26.2
- name: Install system dependencies for canvas and rsvg-convert
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential \
libcairo2-dev \
libpango1.0-dev \
libjpeg-dev \
libgif-dev \
librsvg2-dev \
librsvg2-bin
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install --no-frozen-lockfile
- name: Add in progress comment
id: add-in-progress-comment
uses: thollander/actions-comment-pull-request@v3
with:
comment-tag: validate
mode: upsert
message: |
🔄 Icons are being validated... Please wait...
continue-on-error: true
- name: Validate icons
id: validate
env:
BASE_REF: ${{ env.BASE_REF }}
BASE_SHA: ${{ env.BASE_SHA }}
run: pnpm run --silent validate > ./comment-markup.md
continue-on-error: true
- name: Comment PR
uses: thollander/actions-comment-pull-request@v3
with:
file-path: ./comment-markup.md
comment-tag: validate
mode: recreate
- name: Generate icons comment
id: generate-icons-comment
env:
BASE_REF: ${{ env.BASE_REF }}
BASE_SHA: ${{ env.BASE_SHA }}
PR_REPO: ${{ env.PR_REPO }}
PR_SHA: ${{ env.PR_SHA }}
run: pnpm run --silent generate-icons-comment > ./comment-icons.md || true
continue-on-error: true
- name: Check if icons were added
id: check-icons
run: |
if [ -s ./comment-icons.md ]; then
echo "has_icons=true" >> $GITHUB_OUTPUT
else
echo "has_icons=false" >> $GITHUB_OUTPUT
fi
- name: Comment PR with added icons
if: steps.check-icons.outputs.has_icons == 'true'
uses: thollander/actions-comment-pull-request@v3
with:
file-path: ./comment-icons.md
comment-tag: added-icons
mode: upsert
- name: Remove comment with added icons
if: steps.check-icons.outputs.has_icons == 'false'
uses: thollander/actions-comment-pull-request@v3
with:
comment-tag: added-icons
mode: delete

2
.gitignore vendored
View File

@ -6,7 +6,6 @@ package-lock.json
Gemfile.lock
packages-zip/*
.DS_Store
icons-outlined/
github
src/_icons/test.svg
src/test.svg
@ -38,3 +37,4 @@ packages/icons*/icons/*
!/**/.gitkeep
*.tgz
.env
.astro

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2020-2024 Paweł Kuna
Copyright (c) 2020-2026 Paweł Kuna
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -5,7 +5,7 @@
</p>
<p align="center">
A set of <!--icons-count-->5880<!--/icons-count--> free MIT-licensed high-quality SVG icons for you to use in your web projects. Each icon is designed on a 24x24 grid and a 2px stroke.
A set of <!--icons-count-->5984<!--/icons-count--> free MIT-licensed high-quality SVG icons for you to use in your web projects. Each icon is designed on a 24x24 grid and a 2px stroke.
<p>
<p align="center">
@ -37,7 +37,7 @@
## Preview
### Outline version (<!--icons-count-outline-->4936<!--/icons-count-outline--> icons)
### Outline version (<!--icons-count-outline-->4985<!--/icons-count-outline--> icons)
<p align="center">
<picture>
@ -47,7 +47,7 @@
</picture>
</p>
### Filled version (<!--icons-count-filled-->944<!--/icons-count-filled--> icons)
### Filled version (<!--icons-count-filled-->999<!--/icons-count-filled--> icons)
<p align="center">
<picture>
@ -232,7 +232,7 @@ After importing the _IconsModule_ in your feature or shared module, use the icon
For more usage documentation refer to [the official documentation](https://github.com/pierreavn/angular-tabler-icons).
### Svelte
### Svelte 4 and below
Svelte components available through [`@tabler/icons-svelte`](https://github.com/tabler/tabler-icons/tree/master/packages/icons-svelte) package.
@ -248,6 +248,21 @@ Svelte components available through [`@tabler/icons-svelte`](https://github.com/
</main>
```
### Svelte 5
Svelte 5 components available through [`@tabler/icons-svelte-runes`](https://www.npmjs.com/package/@tabler/icons-svelte-runes) package.
```js
<script lang="ts">
import { IconHeart } from '@tabler/icons-svelte-runes';
</script>
<main>
<IconHeart size={48} stroke={1} />
<IconHeart size="32" stroke={1.5} />
<IconHeart color="crimson" class="p-1" size="96" stroke="2" />
</main>
```
## CDN
All files included in `@tabler/icons` npm package are available over a CDN.

View File

@ -56,7 +56,8 @@
"mood-suprised": "mood-surprised",
"circle-dashed-letter-letter-v": "circle-dashed-letter-v",
"seeding": "seedling",
"seeding-off": "seedling-off"
"seeding-off": "seedling-off",
"brand-adobe-premier": "brand-adobe-premiere"
},
"filled": {
"discount-check": "rosette-discount-check",

0
comment-icons.md Normal file
View File

View File

@ -0,0 +1,40 @@
---
title: Tabler Icons for Svelte 5
---
![](https://raw.githubusercontent.com/tabler/tabler-icons/master/.github/packages/og-package-svelte.png)
## Installation
<TabsPackage name="@tabler/icons-svelte-runes" />
or just [download from Github](https://github.com/tabler/tabler-icons/releases).
## How to use
It's build with ESmodules so it's completely tree-shakable. Each icon can be imported as a component.
```sveltehtml
<script lang="ts">
import { IconHeart } from '@tabler/icons-svelte-runes';
</script>
<main>
<IconHeart />
</main>
```
You can pass additional props to adjust the icon.
```html
<IconHeart size={48} stroke={1} />
```
### Props
| name | type | default |
| ------------- | -------- | ------------ |
| `size` | _Number_ | 24 |
| `color` | _String_ | currentColor |
| `stroke` | _Number_ | 2 |
| `class` | _String_ | |

View File

@ -9,5 +9,5 @@ unicode: "f6ea"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M17 3.34a10 10 0 1 1 -14.995 8.984l-.005 -.324l.005 -.324a10 10 0 0 1 14.995 -8.336zm-1.051 6.844a1 1 0 0 0 -1.152 -.663l-.113 .03l-2.684 .895l-2.684 -.895l-.113 -.03a1 1 0 0 0 -.628 1.884l.109 .044l2.316 .771v.976l-1.832 2.75l-.06 .1a1 1 0 0 0 .237 1.21l.1 .076l.101 .06a1 1 0 0 0 1.21 -.237l.076 -.1l1.168 -1.752l1.168 1.752l.07 .093a1 1 0 0 0 1.653 -1.102l-.059 -.1l-1.832 -2.75v-.977l2.316 -.771l.109 -.044a1 1 0 0 0 .524 -1.221zm-3.949 -4.184a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3z" />
<path d="M17 3.34a10 10 0 1 1 -14.995 8.984l-.005 -.324l.005 -.324a10 10 0 0 1 14.995 -8.336zm-1.051 6.844a1 1 0 0 0 -1.152 -.663l-.113 .03l-2.684 .895l-2.684 -.895l-.113 -.03a1 1 0 0 0 -.628 1.884l.109 .044l2.316 .771v.976l-1.832 2.75l-.06 .1a1 1 0 0 0 .237 1.21l.1 .076l.101 .06a1 1 0 0 0 1.21 -.237l.076 -.1l1.168 -1.752l1.168 1.752l.07 .093a1 1 0 0 0 1.653 -1.102l-.059 -.1l-1.832 -2.75v-.977l2.316 -.771l.109 -.044a1 1 0 0 0 .524 -1.221zm-3.949 -4.184a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3" />
</svg>

Before

Width:  |  Height:  |  Size: 663 B

After

Width:  |  Height:  |  Size: 662 B

View File

@ -9,6 +9,6 @@ unicode: "fa82"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M2 3m0 2a2 2 0 0 1 2 -2h16a2 2 0 0 1 2 2v0a2 2 0 0 1 -2 2h-16a2 2 0 0 1 -2 -2z" />
<path d="M2 5a2 2 0 0 1 2 -2h16a2 2 0 0 1 2 2a2 2 0 0 1 -2 2h-16a2 2 0 0 1 -2 -2z" />
<path d="M19 9c.513 0 .936 .463 .993 1.06l.007 .14v7.2c0 1.917 -1.249 3.484 -2.824 3.594l-.176 .006h-10c-1.598 0 -2.904 -1.499 -2.995 -3.388l-.005 -.212v-7.2c0 -.663 .448 -1.2 1 -1.2h14zm-5 2h-4l-.117 .007a1 1 0 0 0 0 1.986l.117 .007h4l.117 -.007a1 1 0 0 0 0 -1.986l-.117 -.007z" />
</svg>

Before

Width:  |  Height:  |  Size: 542 B

After

Width:  |  Height:  |  Size: 536 B

View File

@ -9,5 +9,5 @@ unicode: "fa87"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12.088 4.82a10 10 0 0 1 9.412 .314a1 1 0 0 1 .493 .748l.007 .118v13a1 1 0 0 1 -1.5 .866a8 8 0 0 0 -8 0a1 1 0 0 1 -1 0a8 8 0 0 0 -7.733 -.148l-.327 .18l-.103 .044l-.049 .016l-.11 .026l-.061 .01l-.117 .006h-.042l-.11 -.012l-.077 -.014l-.108 -.032l-.126 -.056l-.095 -.056l-.089 -.067l-.06 -.056l-.073 -.082l-.064 -.089l-.022 -.036l-.032 -.06l-.044 -.103l-.016 -.049l-.026 -.11l-.01 -.061l-.004 -.049l-.002 -.068v-13a1 1 0 0 1 .5 -.866a10 10 0 0 1 9.412 -.314l.088 .044l.088 -.044z" />
<path d="M21.5 5.134a1 1 0 0 1 .493 .748l.007 .118v13a1 1 0 0 1 -1.5 .866a8 8 0 0 0 -7.5 -.266v-15.174a10 10 0 0 1 8.5 .708m-10.5 -.707l.001 15.174a8 8 0 0 0 -7.234 .117l-.327 .18l-.103 .044l-.049 .016l-.11 .026l-.061 .01l-.117 .006h-.042l-.11 -.012l-.077 -.014l-.108 -.032l-.126 -.056l-.095 -.056l-.089 -.067l-.06 -.056l-.073 -.082l-.064 -.089l-.022 -.036l-.032 -.06l-.044 -.103l-.016 -.049l-.026 -.11l-.01 -.061l-.004 -.049l-.002 -13.068a1 1 0 0 1 .5 -.866a10 10 0 0 1 8.5 -.707" />
</svg>

Before

Width:  |  Height:  |  Size: 657 B

After

Width:  |  Height:  |  Size: 650 B

View File

@ -10,5 +10,5 @@ unicode: "fb20"
fill="currentColor"
>
<path d="M8.486 11.143a1 1 0 0 1 1.371 .343c1.045 1.74 1.83 3.443 2.392 5.237l.172 .581l.092 -.13c2.093 -2.921 4.48 -3.653 7.565 -2.7l.238 .077a1 1 0 1 1 -.632 1.898c-2.932 -.978 -4.73 -.122 -6.79 3.998c-.433 .866 -1.721 .673 -1.88 -.283c-.46 -2.76 -1.369 -5.145 -2.871 -7.65a1 1 0 0 1 .343 -1.371z" />
<path d="M6 4a3 3 0 1 0 0 6a3 3 0 0 0 0 -6z" />
<path d="M6 4a3 3 0 1 0 0 6a3 3 0 0 0 0 -6" />
</svg>

Before

Width:  |  Height:  |  Size: 518 B

After

Width:  |  Height:  |  Size: 517 B

View File

@ -10,5 +10,5 @@ unicode: "fb21"
fill="currentColor"
>
<path d="M14.143 11.486a1 1 0 0 1 1.714 1.028c-1.502 2.505 -2.41 4.89 -2.87 7.65c-.16 .956 -1.448 1.15 -1.881 .283c-2.06 -4.12 -3.858 -4.976 -6.79 -3.998a1 1 0 1 1 -.632 -1.898c3.2 -1.067 5.656 -.373 7.803 2.623l.091 .13l.011 -.04c.522 -1.828 1.267 -3.55 2.273 -5.3l.28 -.478z" />
<path d="M18 4a3 3 0 1 0 0 6a3 3 0 0 0 0 -6z" />
<path d="M18 4a3 3 0 1 0 0 6a3 3 0 0 0 0 -6" />
</svg>

Before

Width:  |  Height:  |  Size: 497 B

After

Width:  |  Height:  |  Size: 496 B

View File

@ -0,0 +1,13 @@
<!--
unicode: "10189"
version: "3.34"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18 6a3 3 0 0 1 3 3v9a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2v-2a3 3 0 0 0 -6 0v2a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2v-9a3 3 0 0 1 3 -3z" />
</svg>

After

Width:  |  Height:  |  Size: 308 B

View File

@ -9,5 +9,5 @@ unicode: "f706"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2c5.523 0 10 4.477 10 10a10 10 0 0 1 -20 0c0 -5.523 4.477 -10 10 -10zm2 5a3 3 0 0 0 -2.98 2.65l-.015 .174l-.005 .176l.005 .176c.019 .319 .087 .624 .197 .908l.09 .209l-3.5 3.5l-.082 .094a1 1 0 0 0 0 1.226l.083 .094l1.5 1.5l.094 .083a1 1 0 0 0 1.226 0l.094 -.083l.083 -.094a1 1 0 0 0 0 -1.226l-.083 -.094l-.792 -.793l.585 -.585l.793 .792l.094 .083a1 1 0 0 0 1.403 -1.403l-.083 -.094l-.792 -.793l.792 -.792a3 3 0 1 0 1.293 -5.708zm0 2a1 1 0 1 1 0 2a1 1 0 0 1 0 -2z" />
<path d="M12 2c5.523 0 10 4.477 10 10a10 10 0 0 1 -20 0c0 -5.523 4.477 -10 10 -10zm2 5a3 3 0 0 0 -2.98 2.65l-.015 .174l-.005 .176l.005 .176c.019 .319 .087 .624 .197 .908l.09 .209l-3.5 3.5l-.082 .094a1 1 0 0 0 0 1.226l.083 .094l1.5 1.5l.094 .083a1 1 0 0 0 1.226 0l.094 -.083l.083 -.094a1 1 0 0 0 0 -1.226l-.083 -.094l-.792 -.793l.585 -.585l.793 .792l.094 .083a1 1 0 0 0 1.403 -1.403l-.083 -.094l-.792 -.793l.792 -.792a3 3 0 1 0 1.293 -5.708zm0 2a1 1 0 1 1 0 2a1 1 0 0 1 0 -2" />
</svg>

Before

Width:  |  Height:  |  Size: 643 B

After

Width:  |  Height:  |  Size: 642 B

View File

@ -9,5 +9,5 @@ version: "3.5"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M4.929 4.929a10 10 0 1 1 14.141 14.141a10 10 0 0 1 -14.14 -14.14zm8.071 4.071a1 1 0 1 0 -2 0v2h-2a1 1 0 1 0 0 2h2v2a1 1 0 1 0 2 0v-2h2a1 1 0 1 0 0 -2h-2v-2z" />
<path d="M4.929 4.929a10 10 0 1 1 14.141 14.141a10 10 0 0 1 -14.14 -14.14m8.071 4.071a1 1 0 1 0 -2 0v2h-2a1 1 0 1 0 0 2h2v2a1 1 0 1 0 2 0v-2h2a1 1 0 1 0 0 -2h-2v-2z" />
</svg>

Before

Width:  |  Height:  |  Size: 334 B

After

Width:  |  Height:  |  Size: 333 B

View File

@ -0,0 +1,13 @@
<!--
unicode: "10176"
version: "3.33"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M17.997 4.17a3 3 0 0 1 2.003 2.83v12a3 3 0 0 1 -3 3h-10a3 3 0 0 1 -3 -3v-12a3 3 0 0 1 2.003 -2.83a4 4 0 0 0 3.997 3.83h4a4 4 0 0 0 3.98 -3.597zm-5.997 6.83a1 1 0 0 0 -1 1v1h-1a1 1 0 0 0 0 2h1v1a1 1 0 0 0 2 0v-1h1a1 1 0 0 0 0 -2h-1v-1a1 1 0 0 0 -1 -1m2 -9a2 2 0 1 1 0 4h-4a2 2 0 1 1 0 -4z" />
</svg>

After

Width:  |  Height:  |  Size: 467 B

View File

@ -0,0 +1,13 @@
<!--
unicode: "10175"
version: "3.33"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M17.997 4.17a3 3 0 0 1 2.003 2.83v12a3 3 0 0 1 -3 3h-10a3 3 0 0 1 -3 -3v-12a3 3 0 0 1 2.003 -2.83a4 4 0 0 0 3.997 3.83h4a4 4 0 0 0 3.98 -3.597zm-3.176 11.259a1 1 0 0 0 -1.392 -.25a2.5 2.5 0 0 1 -2.858 0a1 1 0 0 0 -1.142 1.642a4.5 4.5 0 0 0 5.142 0a1 1 0 0 0 .25 -1.392m-4.811 -3.429h-.01a1 1 0 0 0 -.117 1.993l.127 .007a1 1 0 0 0 0 -2m4 0h-.01a1 1 0 0 0 -.117 1.993l.127 .007a1 1 0 0 0 0 -2m-.01 -10a2 2 0 1 1 0 4h-4a2 2 0 1 1 0 -4z" />
</svg>

After

Width:  |  Height:  |  Size: 612 B

View File

@ -0,0 +1,13 @@
<!--
unicode: "10188"
version: "3.34"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18 2a2 2 0 0 1 2 2v16a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-16a2 2 0 0 1 2 -2z" />
</svg>

After

Width:  |  Height:  |  Size: 257 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "10187"
version: "3.34"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M4 2h6a1 1 0 0 1 1 1v18a1 1 0 0 1 -1 1h-6a2 2 0 0 1 -2 -2v-16a2 2 0 0 1 2 -2" />
<path d="M14 2h6a2 2 0 0 1 2 2v16a2 2 0 0 1 -2 2h-6a1 1 0 0 1 -1 -1v-18a1 1 0 0 1 1 -1" />
</svg>

After

Width:  |  Height:  |  Size: 349 B

View File

@ -0,0 +1,15 @@
<!--
unicode: "10186"
version: "3.34"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M4 2h2a1 1 0 0 1 1 1v18a1 1 0 0 1 -1 1h-2a2 2 0 0 1 -2 -2v-16a2 2 0 0 1 2 -2" />
<path d="M9 3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v18a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" />
<path d="M18 2h2a2 2 0 0 1 2 2v16a2 2 0 0 1 -2 2h-2a1 1 0 0 1 -1 -1v-18a1 1 0 0 1 1 -1" />
</svg>

After

Width:  |  Height:  |  Size: 438 B

View File

@ -9,5 +9,5 @@ unicode: "fd10"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M17 3.34a10 10 0 1 1 -15 8.66l.005 -.324a10 10 0 0 1 14.995 -8.336zm-5 14.66a1 1 0 1 0 0 2a1 1 0 0 0 0 -2zm3.684 -10.949l-6 2a1 1 0 0 0 -.633 .633l-2.007 6.026l-.023 .086l-.017 .113l-.004 .068v.044l.009 .111l.012 .07l.04 .144l.045 .1l.054 .095l.064 .09l.069 .075l.084 .074l.098 .07l.1 .054l.078 .033l.105 .033l.109 .02l.043 .005l.068 .004h.044l.111 -.009l.07 -.012l.02 -.006l.019 -.002l.074 -.022l6 -2a1 1 0 0 0 .633 -.633l2 -6a1 1 0 0 0 -1.265 -1.265zm-1.265 2.529l-1.21 3.629l-3.629 1.21l1.21 -3.629l3.629 -1.21zm-9.419 1.42a1 1 0 1 0 0 2a1 1 0 0 0 0 -2zm14 0a1 1 0 1 0 0 2a1 1 0 0 0 0 -2zm-7 -7a1 1 0 1 0 0 2a1 1 0 0 0 0 -2z" />
<path d="M17 3.34a10 10 0 1 1 -15 8.66l.005 -.324a10 10 0 0 1 14.995 -8.336zm-5 14.66a1 1 0 1 0 0 2a1 1 0 0 0 0 -2m3.684 -10.949l-6 2a1 1 0 0 0 -.633 .633l-2.007 6.026l-.023 .086l-.017 .113l-.004 .068v.044l.009 .111l.012 .07l.04 .144l.045 .1l.054 .095l.064 .09l.069 .075l.084 .074l.098 .07l.1 .054l.078 .033l.105 .033l.109 .02l.043 .005l.068 .004h.044l.111 -.009l.07 -.012l.02 -.006l.019 -.002l.074 -.022l6 -2a1 1 0 0 0 .633 -.633l2 -6a1 1 0 0 0 -1.265 -1.265zm-1.265 2.529l-1.21 3.629l-3.629 1.21l1.21 -3.629l3.629 -1.21zm-9.419 1.42a1 1 0 1 0 0 2a1 1 0 0 0 0 -2m14 0a1 1 0 1 0 0 2a1 1 0 0 0 0 -2m-7 -7a1 1 0 1 0 0 2a1 1 0 0 0 0 -2" />
</svg>

Before

Width:  |  Height:  |  Size: 806 B

After

Width:  |  Height:  |  Size: 802 B

13
icons/filled/confetti.svg Normal file
View File

@ -0,0 +1,13 @@
<!--
unicode: "10185"
version: "3.34"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M3 5a1 1 0 0 1 1 -1a1 1 0 0 1 1.993 -.117l.007 .117a1 1 0 0 1 .117 1.993l-.117 .007a1 1 0 1 1 -2 0a1 1 0 0 1 -1 -1m7.53 -1.243a1 1 0 1 1 1.94 .486l-.5 2a1 1 0 1 1 -1.94 -.486zm6.47 1.243a1 1 0 0 1 1 -1a1 1 0 0 1 1.993 -.117l.007 .117a1 1 0 0 1 .117 1.993l-.117 .007a1 1 0 0 1 -2 0a1 1 0 0 1 -1 -1m-8.81 4.293l6.517 6.518a1 1 0 0 1 -.29 1.617l-9.573 4.387a2 2 0 0 1 -2.661 -2.652l4.39 -9.58a1 1 0 0 1 1.616 -.29m7.517 -1a1 1 0 0 1 0 1.414l-1 1a1 1 0 0 1 -1.414 -1.414l1 -1a1 1 0 0 1 1.414 0m4.05 3.237a1 1 0 0 1 .486 1.94l-2 .5a1 1 0 0 1 -.486 -1.94zm-2.756 7.47a1 1 0 0 1 1 -1a1 1 0 0 1 1.993 -.117l.007 .117a1 1 0 0 1 .117 1.993l-.117 .007a1 1 0 0 1 -2 0a1 1 0 0 1 -1 -1" />
</svg>

After

Width:  |  Height:  |  Size: 851 B

View File

@ -0,0 +1,23 @@
<!--
unicode: "10184"
version: "3.34"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M20 3a1 1 0 0 1 1 1v.01a1 1 0 0 1 -2 0v-.01a1 1 0 0 1 1 -1" />
<path d="M20 19a1 1 0 0 1 1 1v.01a1 1 0 0 1 -2 0v-.01a1 1 0 0 1 1 -1" />
<path d="M20 15a1 1 0 0 1 1 1v.01a1 1 0 0 1 -2 0v-.01a1 1 0 0 1 1 -1" />
<path d="M20 11a1 1 0 0 1 1 1v.01a1 1 0 0 1 -2 0v-.01a1 1 0 0 1 1 -1" />
<path d="M20 7a1 1 0 0 1 1 1v.01a1 1 0 0 1 -2 0v-.01a1 1 0 0 1 1 -1" />
<path d="M15 3a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-6a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2z" />
<path d="M4 3a1 1 0 0 1 1 1v.01a1 1 0 1 1 -2 0v-.01a1 1 0 0 1 1 -1" />
<path d="M4 19a1 1 0 0 1 1 1v.01a1 1 0 0 1 -2 0v-.01a1 1 0 0 1 1 -1" />
<path d="M4 15a1 1 0 0 1 1 1v.01a1 1 0 0 1 -2 0v-.01a1 1 0 0 1 1 -1" />
<path d="M4 11a1 1 0 0 1 1 1v.01a1 1 0 0 1 -2 0v-.01a1 1 0 0 1 1 -1" />
<path d="M4 7a1 1 0 0 1 1 1v.01a1 1 0 1 1 -2 0v-.01a1 1 0 0 1 1 -1" />
</svg>

After

Width:  |  Height:  |  Size: 997 B

View File

@ -9,5 +9,5 @@ unicode: "fd11"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M22 10v6a4 4 0 0 1 -4 4h-12a4 4 0 0 1 -4 -4v-6h20zm-14.99 4h-.01a1 1 0 1 0 .01 2a1 1 0 0 0 0 -2zm5.99 0h-2a1 1 0 0 0 0 2h2a1 1 0 0 0 0 -2zm5 -10a4 4 0 0 1 4 4h-20a4 4 0 0 1 4 -4h12z" />
<path d="M22 10v6a4 4 0 0 1 -4 4h-12a4 4 0 0 1 -4 -4v-6h20zm-14.99 4h-.01a1 1 0 1 0 .01 2a1 1 0 0 0 0 -2m5.99 0h-2a1 1 0 0 0 0 2h2a1 1 0 0 0 0 -2zm5 -10a4 4 0 0 1 4 4h-20a4 4 0 0 1 4 -4h12z" />
</svg>

Before

Width:  |  Height:  |  Size: 360 B

After

Width:  |  Height:  |  Size: 359 B

11
icons/filled/crown.svg Normal file
View File

@ -0,0 +1,11 @@
<!--
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M19 19h-14c-.5 0 -.9 -.3 -1 -.8l-2 -10c0 -.4 .1 -.8 .5 -1.1c.4 -.2 .8 -.2 1.1 0l4.1 3.3l3.4 -5.1c.4 -.6 1.3 -.6 1.7 0l3.4 5.1l4.1 -3.3c.3 -.3 .8 -.3 1.1 0c.4 .2 .5 .6 .5 1.1l-2 10c0 .5 -.5 .8 -1 .8z" />
</svg>

After

Width:  |  Height:  |  Size: 345 B

View File

@ -0,0 +1,13 @@
<!--
unicode: "1019c"
version: "3.35"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M20 5a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-16a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3zm-12 4l-.117 .007a1 1 0 0 0 -.883 .993v1h-1a1 1 0 0 0 -1 1l.007 .117a1 1 0 0 0 .993 .883h1v1a1 1 0 0 0 1 1l.117 -.007a1 1 0 0 0 .883 -.993v-1h1a1 1 0 0 0 1 -1l-.007 -.117a1 1 0 0 0 -.993 -.883h-1v-1a1 1 0 0 0 -1 -1m10 3a1 1 0 0 0 -1 1v.01a1 1 0 0 0 2 0v-.01a1 1 0 0 0 -1 -1m-3 -2a1 1 0 0 0 -1 1v.01a1 1 0 0 0 2 0v-.01a1 1 0 0 0 -1 -1" />
</svg>

After

Width:  |  Height:  |  Size: 588 B

View File

@ -9,5 +9,5 @@ unicode: "f73e"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-6.333 8.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3z" />
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-6.333 8.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3" />
</svg>

Before

Width:  |  Height:  |  Size: 438 B

After

Width:  |  Height:  |  Size: 437 B

View File

@ -9,5 +9,5 @@ unicode: "f73f"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-3.833 11a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm-5 -5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3z" />
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-3.833 11a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m-5 -5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3" />
</svg>

Before

Width:  |  Height:  |  Size: 481 B

After

Width:  |  Height:  |  Size: 479 B

View File

@ -9,5 +9,5 @@ unicode: "f740"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 12a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm-3.5 -3.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm-3.5 -3.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3z" />
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 12a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m-3.5 -3.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m-3.5 -3.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3" />
</svg>

Before

Width:  |  Height:  |  Size: 533 B

After

Width:  |  Height:  |  Size: 530 B

View File

@ -9,5 +9,5 @@ unicode: "f741"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 12a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm-7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm0 -7a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3z" />
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 12a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m-7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m0 -7a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3" />
</svg>

Before

Width:  |  Height:  |  Size: 565 B

After

Width:  |  Height:  |  Size: 561 B

View File

@ -9,5 +9,5 @@ unicode: "f742"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 12a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm-7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm3.5 -3.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm-3.5 -3.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3z" />
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 12a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m-7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m3.5 -3.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m-3.5 -3.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3" />
</svg>

Before

Width:  |  Height:  |  Size: 617 B

After

Width:  |  Height:  |  Size: 612 B

View File

@ -9,5 +9,5 @@ unicode: "f743"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 13a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm-7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm0 -4.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm-7 -4.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3z" />
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 13a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m-7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m0 -4.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m-7 -4.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3" />
</svg>

Before

Width:  |  Height:  |  Size: 655 B

After

Width:  |  Height:  |  Size: 649 B

View File

@ -9,5 +9,5 @@ unicode: "f744"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 12a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm-7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm0 -7a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3z" />
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 12a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m-7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m0 -7a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3" />
</svg>

Before

Width:  |  Height:  |  Size: 565 B

After

Width:  |  Height:  |  Size: 561 B

View File

@ -0,0 +1,13 @@
<!--
unicode: "10174"
version: "3.33"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M19 16a3 3 0 1 1 -2.829 4h-1.171a1 1 0 0 1 0 -2h1.17a3 3 0 0 1 2.83 -2m2.53 -13.848a1 1 0 0 1 .318 1.378l-.286 .445l-.173 .264a73 73 0 0 1 -1.26 1.839a70 70 0 0 1 -4.376 5.58c-2.795 3.195 -5.544 5.638 -8.171 7.04c-1.593 .848 -3.123 1.302 -4.582 1.302a1 1 0 0 1 0 -2c1.097 0 2.317 -.361 3.64 -1.068c2.373 -1.265 4.958 -3.562 7.607 -6.59a68 68 0 0 0 4.25 -5.42a69 69 0 0 0 1.003 -1.456l.455 -.69q .133 -.204 .196 -.306a1 1 0 0 1 1.378 -.318m-9.529 15.848a1 1 0 0 1 0 2h-2a1 1 0 0 1 0 -2z" />
</svg>

After

Width:  |  Height:  |  Size: 665 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "10173"
version: "3.33"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M19 17a3 3 0 1 1 -2.829 4h-1.171a1 1 0 0 1 0 -2h1.17a3 3 0 0 1 2.83 -2m-14 -16c1.306 0 2.418 .835 2.83 2h1.17a1 1 0 1 1 0 2h-1.171a3.001 3.001 0 1 1 -2.829 -4m9 2a1 1 0 0 1 0 2h-2a1 1 0 0 1 0 -2zm-2 16a1 1 0 0 1 0 2h-2a1 1 0 0 1 0 -2z" />
<path d="M21 3a1 1 0 0 1 0 2c-2.83 0 -4.6 1.845 -8.152 7.53c-3.947 6.315 -6.012 8.47 -9.848 8.47a1 1 0 0 1 0 -2c2.83 0 4.6 -1.845 8.152 -7.53c3.947 -6.315 6.012 -8.47 9.848 -8.47" />
</svg>

After

Width:  |  Height:  |  Size: 599 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "10172"
version: "3.33"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M21 4a1 1 0 0 1 0 2c-1.097 0 -2.317 .361 -3.64 1.068c-2.373 1.265 -4.958 3.562 -7.607 6.59a68 68 0 0 0 -4.25 5.42a69 69 0 0 0 -1.003 1.456l-.455 .69q -.132 .204 -.196 .306a1 1 0 1 1 -1.696 -1.06l.286 -.445l.173 -.264a73 73 0 0 1 1.26 -1.839a70 70 0 0 1 4.376 -5.58c2.795 -3.195 5.544 -5.638 8.171 -7.04c1.592 -.848 3.122 -1.302 4.581 -1.302m-16 -2c1.306 0 2.418 .835 2.83 2h1.17a1 1 0 1 1 0 2h-1.171a3.001 3.001 0 1 1 -2.829 -4" />
<path d="M14 4a1 1 0 0 1 0 2h-2a1 1 0 0 1 0 -2z" />
</svg>

After

Width:  |  Height:  |  Size: 661 B

View File

@ -9,5 +9,5 @@ unicode: "f679"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 4c4.29 0 7.863 2.429 10.665 7.154l.22 .379l.045 .1l.03 .083l.014 .055l.014 .082l.011 .1v.11l-.014 .111a.992 .992 0 0 1 -.026 .11l-.039 .108l-.036 .075l-.016 .03c-2.764 4.836 -6.3 7.38 -10.555 7.499l-.313 .004c-4.396 0 -8.037 -2.549 -10.868 -7.504a1 1 0 0 1 0 -.992c2.831 -4.955 6.472 -7.504 10.868 -7.504zm0 5a3 3 0 1 0 0 6a3 3 0 0 0 0 -6z" />
<path d="M12 4c4.29 0 7.863 2.429 10.665 7.154l.22 .379l.045 .1l.03 .083l.014 .055l.014 .082l.011 .1v.11l-.014 .111a.992 .992 0 0 1 -.026 .11l-.039 .108l-.036 .075l-.016 .03c-2.764 4.836 -6.3 7.38 -10.555 7.499l-.313 .004c-4.396 0 -8.037 -2.549 -10.868 -7.504a1 1 0 0 1 0 -.992c2.831 -4.955 6.472 -7.504 10.868 -7.504zm0 5a3 3 0 1 0 0 6a3 3 0 0 0 0 -6" />
</svg>

Before

Width:  |  Height:  |  Size: 521 B

After

Width:  |  Height:  |  Size: 520 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "10171"
version: "3.33"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm-3 10a1 1 0 0 0 -1 1v5a1 1 0 0 0 2 0v-5a1 1 0 0 0 -1 -1m3 4a1 1 0 0 0 -1 1v1a1 1 0 0 0 2 0v-1a1 1 0 0 0 -1 -1m3 -2a1 1 0 0 0 -1 1v3a1 1 0 0 0 2 0v-3a1 1 0 0 0 -1 -1" />
<path d="M19 7h-4l-.001 -4.001z" />
</svg>

After

Width:  |  Height:  |  Size: 628 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "10170"
version: "3.33"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm-1.553 11.106a1 1 0 0 0 -1.341 .447l-1 2a1 1 0 0 0 0 .894l1 2a1 1 0 0 0 1.341 .447l.102 -.058a1 1 0 0 0 .345 -1.283l-.776 -1.553l.776 -1.553a1 1 0 0 0 -.447 -1.341m4.447 .447a1 1 0 0 0 -1.341 -.447l-.102 .058a1 1 0 0 0 -.345 1.283l.774 1.553l-.775 1.553a1 1 0 0 0 1.788 .894l1 -2a1 1 0 0 0 0 -.894z" />
<path d="M19 7h-4l-.001 -4.001z" />
</svg>

After

Width:  |  Height:  |  Size: 762 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "1016f"
version: "3.33"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm2 15h-4a1 1 0 0 0 0 2h4a1 1 0 0 0 0 -2m-2 -7a1 1 0 0 0 -1 1v1h-1a1 1 0 0 0 0 2h1v1a1 1 0 0 0 2 0v-1h1a1 1 0 0 0 0 -2h-1v-1a1 1 0 0 0 -1 -1" />
<path d="M19 7h-4l-.001 -4.001z" />
</svg>

After

Width:  |  Height:  |  Size: 602 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "1019b"
version: "3.35"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm0 8a1 1 0 0 0 -1 1v.05a2.5 2.5 0 0 0 .5 4.95h1a.5 .5 0 1 1 0 1h-2.5a1 1 0 0 0 0 2h1a1 1 0 0 0 2 0v-.05a2.5 2.5 0 0 0 -.5 -4.95h-1a.5 .5 0 1 1 0 -1h2.5a1 1 0 0 0 0 -2h-1a1 1 0 0 0 -1 -1" />
<path d="M19 7h-4l-.001 -4.001z" />
</svg>

After

Width:  |  Height:  |  Size: 648 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "1016e"
version: "3.33"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm-3 12a1 1 0 0 0 -.993 .883l-.007 .127a1 1 0 0 0 1.993 .117l.007 -.127a1 1 0 0 0 -1 -1m3 0a1 1 0 0 0 -.993 .883l-.007 .127a1 1 0 0 0 1.993 .117l.007 -.127a1 1 0 0 0 -1 -1m3 0a1 1 0 0 0 -.993 .883l-.007 .127a1 1 0 0 0 1.993 .117l.007 -.127a1 1 0 0 0 -1 -1" />
<path d="M19 7h-4l-.001 -4.001z" />
</svg>

After

Width:  |  Height:  |  Size: 717 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "1019a"
version: "3.35"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm2.334 9.23a4 4 0 0 0 -5.208 2.77h-.126a1 1 0 0 0 0 2h.126a4 4 0 0 0 5.208 2.77a1 1 0 0 0 -.668 -1.885l-.156 .049a2 2 0 0 1 -2.243 -.934h.733a1 1 0 0 0 0 -2h-.733q .056 -.097 .124 -.19a2 2 0 0 1 2.275 -.695l.112 .032a1 1 0 0 0 .556 -1.918" />
<path d="M19 7h-4l-.001 -4.001z" />
</svg>

After

Width:  |  Height:  |  Size: 701 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "1016d"
version: "3.33"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm1.5 9h-.333l-.16 .006c-.895 .07 -1.65 .732 -1.75 1.63l-.152 1.364h-.605a1 1 0 0 0 0 2h.382l-.111 1h-.271a1 1 0 0 0 0 2h.333l.16 -.006c.896 -.071 1.652 -.733 1.75 -1.632l.151 -1.362h.606a1 1 0 0 0 0 -2h-.383l.111 -1h.272a1 1 0 0 0 0 -2" />
<path d="M19 7h-4l-.001 -4.001z" />
</svg>

After

Width:  |  Height:  |  Size: 698 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "1016c"
version: "3.33"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm0 12h-1a1 1 0 0 0 0 2v3a1 1 0 0 0 1 1h1a1 1 0 0 0 1 -1l-.007 -.117a1 1 0 0 0 -.876 -.876l-.117 -.007v-3a1 1 0 0 0 -1 -1m.01 -3h-.01a1 1 0 0 0 -.117 1.993l.127 .007a1 1 0 0 0 0 -2" />
<path d="M19 7h-4l-.001 -4.001z" />
</svg>

After

Width:  |  Height:  |  Size: 642 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "10199"
version: "3.35"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm.447 9.106a1 1 0 0 0 -1.447 .894v3a2 2 0 0 0 -1.995 1.85l-.005 .15a2 2 0 1 0 4 0v-3.382l.553 .276a1 1 0 0 0 .894 -1.788z" />
<path d="M19 7h-4l-.001 -4.001z" />
</svg>

After

Width:  |  Height:  |  Size: 584 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "10198"
version: "3.35"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm1 10l-5 5v2h2l5 -5a1.414 1.414 0 0 0 -2 -2" />
<path d="M19 7h-4l-.001 -4.001z" />
</svg>

After

Width:  |  Height:  |  Size: 506 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "10197"
version: "3.35"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm-2.293 9.293a1 1 0 1 0 -1.414 1.414l2.292 2.293l-1.068 1.067a2.003 2.003 0 0 0 -2.512 1.784l-.005 .149a2 2 0 1 0 3.933 -.516l1.067 -1.069l1.067 1.068a2 2 0 0 0 -.062 .368l-.005 .149a2 2 0 1 0 1.484 -1.933l-1.069 -1.067l2.292 -2.293a1 1 0 0 0 -1.414 -1.414l-2.293 2.292z" />
<path d="M19 7h-4l-.001 -4.001z" />
</svg>

After

Width:  |  Height:  |  Size: 733 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "10196"
version: "3.35"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm0 8.5a1 1 0 0 0 -1 1v.67a3 3 0 0 0 -.909 .516l-.576 -.346a1 1 0 0 0 -1.03 1.714l.575 .346q -.043 .207 -.055 .424l-.005 .176q 0 .28 .05 .548l-.582 .336a1 1 0 0 0 1 1.732l.583 -.336c.277 .238 .598 .425 .95 .55l-.001 .67a1 1 0 0 0 2 0v-.671c.335 -.118 .641 -.294 .909 -.514l.576 .345a1 1 0 0 0 1.03 -1.714l-.575 -.346a3 3 0 0 0 .01 -1.148l.581 -.336a1 1 0 0 0 -1 -1.732l-.582 .335a3 3 0 0 0 -.948 -.548l-.001 -.671a1 1 0 0 0 -1 -1m0 3.5a1 1 0 1 1 0 2a1 1 0 0 1 0 -2" />
<path d="M19 7h-4l-.001 -4.001z" />
</svg>

After

Width:  |  Height:  |  Size: 926 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "10195"
version: "3.35"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm-1.768 9.818a1 1 0 0 0 -1.414 0a4.5 4.5 0 0 0 0 6.364a1 1 0 0 0 1.414 -1.414a2.5 2.5 0 0 1 0 -3.536a1 1 0 0 0 0 -1.414m4.95 0a1 1 0 0 0 -1.414 1.414a2.5 2.5 0 0 1 0 3.536a1 1 0 0 0 1.414 1.414a4.5 4.5 0 0 0 0 -6.364m-3.182 2.182a1 1 0 0 0 -1 1l.007 .127a1 1 0 0 0 1.993 -.117l-.007 -.127a1 1 0 0 0 -.993 -.883" />
<path d="M19 7h-4l-.001 -4.001z" />
</svg>

After

Width:  |  Height:  |  Size: 773 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "10194"
version: "3.35"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm0 8a5 5 0 0 0 -4.995 4.783l-.005 .217a5 5 0 1 0 5 -5m0 2a3 3 0 1 1 0 6a3 3 0 0 1 0 -6m0 .496a1 1 0 0 0 -1 1v1.504a1 1 0 0 0 .293 .707l1 1a1 1 0 0 0 1.414 0l.083 -.094a1 1 0 0 0 -.083 -1.32l-.707 -.708v-1.089a1 1 0 0 0 -1 -1" />
<path d="M19 7h-4l-.001 -4.001z" />
</svg>

After

Width:  |  Height:  |  Size: 687 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "1016b"
version: "3.33"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm3 9h-6a1 1 0 0 0 -1 1v1a1 1 0 0 0 2 0h1v5a1 1 0 0 0 0 2h2a1 1 0 0 0 0 -2v-5h1a1 1 0 0 0 2 0v-1a1 1 0 0 0 -1 -1" />
<path d="M19 7h-4l-.001 -4.001z" />
</svg>

After

Width:  |  Height:  |  Size: 574 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "10193"
version: "3.35"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm0 15a1 1 0 0 0 -.993 .883l-.007 .127a1 1 0 0 0 1.993 .117l.007 -.127a1 1 0 0 0 -1 -1m1.136 -5.727a2.5 2.5 0 0 0 -3.037 .604a1 1 0 0 0 1.434 1.389l.088 -.09a.5 .5 0 1 1 .379 .824a1 1 0 0 0 -.002 2a2.5 2.5 0 0 0 1.137 -4.727" />
<path d="M19 7h-4l-.001 -4.001z" />
</svg>

After

Width:  |  Height:  |  Size: 686 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "10192"
version: "3.35"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm0 9l-.09 .004l-.058 .007l-.118 .025l-.105 .035l-.113 .054l-.111 .071a1 1 0 0 0 -.112 .097l-2.5 2.5a1 1 0 0 0 0 1.414l.094 .083a1 1 0 0 0 1.32 -.083l.793 -.793v3.586a1 1 0 0 0 2 0v-3.585l.793 .792a1 1 0 0 0 1.414 -1.414l-2.5 -2.5l-.082 -.073l-.104 -.074l-.098 -.052l-.11 -.044l-.112 -.03l-.126 -.017z" />
<path d="M19 7h-4l-.001 -4.001z" />
</svg>

After

Width:  |  Height:  |  Size: 763 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "10191"
version: "3.35"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2l.117 .007a1 1 0 0 1 .876 .876l.007 .117v4l.005 .15a2 2 0 0 0 1.838 1.844l.157 .006h4l.117 .007a1 1 0 0 1 .876 .876l.007 .117v9a3 3 0 0 1 -2.824 2.995l-.176 .005h-10a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-14a3 3 0 0 1 2.824 -2.995l.176 -.005zm2.5 9a2.5 2.5 0 0 0 -2.292 1.5h-.208a3.5 3.5 0 0 0 -3.399 2.666a2.5 2.5 0 0 0 -1.596 2.17l-.005 .164a2.5 2.5 0 1 0 3.676 -2.206a1.5 1.5 0 0 1 1.324 -.794h.208a2.5 2.5 0 1 0 2.292 -3.5m-5 6a.5 .5 0 1 1 0 1a.5 .5 0 0 1 0 -1m5 -4a.5 .5 0 1 1 0 1a.5 .5 0 0 1 0 -1" />
<path d="M19 7h-4l-.001 -4.001z" />
</svg>

After

Width:  |  Height:  |  Size: 723 B

13
icons/filled/files.svg Normal file
View File

@ -0,0 +1,13 @@
<!--
unicode: "10190"
version: "3.35"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M11 2l3 .001v5.999a1 1 0 0 0 .883 .993l.117 .007h6v6a3 3 0 0 1 -3 3h-1v1a3 3 0 0 1 -3 3h-7a3 3 0 0 1 -3 -3v-10a3 3 0 0 1 3 -3h1v-1a3 3 0 0 1 3 -3m-3 6h-1a1 1 0 0 0 -1 1v10a1 1 0 0 0 1 1h7a1 1 0 0 0 1 -1v-1h-4a3 3 0 0 1 -3 -3zm12.415 -1h-4.415v-4.415z" />
</svg>

After

Width:  |  Height:  |  Size: 430 B

View File

@ -0,0 +1,11 @@
<!--
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M2 6c0 -.796 .316 -1.558 .879 -2.121c.563 -.563 1.325 -.879 2.121 -.879h4l.099 .005c.229 .023 .444 .124 .608 .288l2.707 2.707h6.586c.796 0 1.558 .316 2.121 .879c.319 .319 .559 .703 .707 1.121l-14.523 0c-.407 0 -.805 .125 -1.14 .356c-.292 .203 -.525 .48 -.674 .801l-.058 .141l-1.379 3.676c-.194 .517 .068 1.093 .585 1.287c.517 .194 1.094 -.068 1.288 -.585l1.134 -3.027c.146 -.39 .519 -.649 .937 -.649h13.002l.217 .012c.216 .024 .426 .082 .624 .173c.054 .025 .107 .053 .159 .083c.199 .115 .377 .263 .525 .439c.188 .222 .325 .482 .403 .762c.077 .28 .092 .573 .045 .859c-.001 .008 -.003 .016 -.005 .024l-.995 5.21c-.131 .686 -.497 1.304 -1.036 1.749c-.47 .389 -1.046 .624 -1.65 .677l-.261 .012h-14.026c-.796 0 -1.558 -.316 -2.121 -.879c-.563 -.563 -.879 -1.325 -.879 -2.121v-11z" fill="black" />
</svg>

After

Width:  |  Height:  |  Size: 934 B

View File

@ -0,0 +1,13 @@
<!--
unicode: "1016a"
version: "3.33"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M11.001 3.8l-.001 1.963l-1.894 3.79l-.047 .11a1 1 0 0 0 .341 1.137l3.332 2.499l-1.626 3.254a1 1 0 0 0 -.106 .447v3.417l-7.197 -7.127a6 6 0 0 1 6.956 -9.621zm5.77 -.739l.246 .037a6 6 0 0 1 3.184 10.193l-.044 .037l-7.157 7.088v-3.181l1.894 -3.788l.047 -.11a1 1 0 0 0 -.341 -1.137l-3.333 -2.5l1.627 -3.253a1 1 0 0 0 .106 -.447v-2.187a6 6 0 0 1 3.77 -.752" />
</svg>

After

Width:  |  Height:  |  Size: 531 B

View File

@ -0,0 +1,13 @@
<!--
unicode: "10169"
version: "3.33"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M16.956 2.057c.355 .124 .829 .375 1.303 .796a3.77 3.77 0 0 1 1.246 2.204c.173 .989 -.047 1.894 -.519 2.683l-.123 .194q -.097 .147 -.196 .272q .066 .234 .117 .471q .26 -.178 .545 -.307c.851 -.389 1.727 -.442 2.527 -.306q .226 .04 .346 .076a1 1 0 0 1 .689 .712l.029 .13q .015 .08 .03 .18a4.45 4.45 0 0 1 -.324 2.496a3.94 3.94 0 0 1 -1.71 1.85l-.242 .12a4.23 4.23 0 0 1 -2.234 .349a9 9 0 0 1 -.443 1.023c.37 .016 .748 .093 1.128 .24c.732 .28 1.299 .758 1.711 1.367a3.95 3.95 0 0 1 .654 1.613a1 1 0 0 1 -.356 .917a3.8 3.8 0 0 1 -.716 .443c-.933 .455 -1.978 .588 -3.043 .179l-.032 -.015l-.205 -.086a3.6 3.6 0 0 1 -1.33 -1.069l-.143 -.197a4 4 0 0 1 -.26 -.433a6 6 0 0 1 -.927 .511q .18 .262 .337 .56a7.4 7.4 0 0 1 .66 1.747a1 1 0 0 1 -1.95 .444l-.028 -.11a6 6 0 0 0 -.449 -1.143c-.342 -.645 -.71 -.968 -1.048 -.968s-.706 .323 -1.048 .969a5.6 5.6 0 0 0 -.367 .874l-.082 .269l-.028 .11a1 1 0 0 1 -1.95 -.444a7.3 7.3 0 0 1 .66 -1.747q .158 -.298 .337 -.561a6.4 6.4 0 0 1 -.93 -.508a4 4 0 0 1 -.256 .43c-.366 .541 -.855 .98 -1.473 1.267l-.238 .1c-.994 .382 -1.97 .292 -2.855 -.091l-.188 -.087a3.8 3.8 0 0 1 -.716 -.443a1 1 0 0 1 -.356 -.917a3.95 3.95 0 0 1 .654 -1.613a3.6 3.6 0 0 1 1.71 -1.368c.38 -.146 .758 -.223 1.13 -.24a9 9 0 0 1 -.445 -1.023a4.23 4.23 0 0 1 -2.233 -.348a4 4 0 0 1 -.916 -.587l-.207 -.191a4 4 0 0 1 -.724 -.977l-.105 -.216a4.45 4.45 0 0 1 -.265 -2.806a1 1 0 0 1 .69 -.712q .119 -.036 .345 -.076c.801 -.135 1.678 -.082 2.53 .308q .283 .129 .545 .304q .048 -.235 .112 -.47a5 5 0 0 1 -.194 -.272c-.556 -.832 -.83 -1.806 -.642 -2.877l.05 -.242a3.75 3.75 0 0 1 1.027 -1.803l.169 -.159a4 4 0 0 1 1.303 -.796a1 1 0 0 1 .975 .178c.2 .168 .462 .446 .719 .83c.556 .833 .83 1.807 .642 2.878a3.77 3.77 0 0 1 -1.246 2.204c-.303 .27 -.607 .47 -.879 .61a7.5 7.5 0 0 0 -.255 1.971c0 3.502 2.285 6.272 5 6.272s5 -2.77 5 -6.276a7.6 7.6 0 0 0 -.253 -1.967a4.3 4.3 0 0 1 -.881 -.61a3.77 3.77 0 0 1 -1.246 -2.204c-.188 -1.07 .086 -2.045 .642 -2.877c.257 -.385 .52 -.663 .72 -.831a1 1 0 0 1 .974 -.178m-3.956 5.943v6a1 1 0 0 1 -2 0v-4.002h-.059a1 1 0 0 1 -.554 -.208l-.094 -.083a1 1 0 0 1 0 -1.414l1 -1c.63 -.63 1.707 -.184 1.707 .707" />
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,13 @@
<!--
unicode: "10168"
version: "3.33"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M16.956 2.057c.355 .124 .829 .375 1.303 .796a3.77 3.77 0 0 1 1.246 2.204c.173 .989 -.047 1.894 -.519 2.683l-.123 .194q -.097 .147 -.196 .272q .066 .234 .117 .471q .26 -.178 .545 -.307c.851 -.389 1.727 -.442 2.527 -.306q .226 .04 .346 .076a1 1 0 0 1 .689 .712l.029 .13q .015 .08 .03 .18a4.45 4.45 0 0 1 -.324 2.496a3.94 3.94 0 0 1 -1.71 1.85l-.242 .12a4.23 4.23 0 0 1 -2.234 .349a9 9 0 0 1 -.443 1.023c.37 .016 .748 .093 1.128 .24c.732 .28 1.299 .758 1.711 1.367a3.95 3.95 0 0 1 .654 1.613a1 1 0 0 1 -.356 .917a3.8 3.8 0 0 1 -.716 .443c-.933 .455 -1.978 .588 -3.043 .179l-.032 -.015l-.205 -.086a3.6 3.6 0 0 1 -1.33 -1.069l-.143 -.197a4 4 0 0 1 -.26 -.433a6 6 0 0 1 -.927 .511q .18 .262 .337 .56a7.4 7.4 0 0 1 .66 1.747a1 1 0 0 1 -1.95 .444l-.028 -.11a6 6 0 0 0 -.449 -1.143c-.342 -.645 -.71 -.968 -1.048 -.968s-.706 .323 -1.048 .969a5.6 5.6 0 0 0 -.367 .874l-.082 .269l-.028 .11a1 1 0 0 1 -1.95 -.444a7.3 7.3 0 0 1 .66 -1.747q .158 -.298 .337 -.561a6.4 6.4 0 0 1 -.93 -.508a4 4 0 0 1 -.256 .43c-.366 .541 -.855 .98 -1.473 1.267l-.238 .1c-.994 .382 -1.97 .292 -2.855 -.091l-.188 -.087a3.8 3.8 0 0 1 -.716 -.443a1 1 0 0 1 -.356 -.917a3.95 3.95 0 0 1 .654 -1.613a3.6 3.6 0 0 1 1.71 -1.368c.38 -.146 .758 -.223 1.13 -.24a9 9 0 0 1 -.445 -1.023a4.23 4.23 0 0 1 -2.233 -.348a4 4 0 0 1 -.916 -.587l-.207 -.191a4 4 0 0 1 -.724 -.977l-.105 -.216a4.45 4.45 0 0 1 -.265 -2.806a1 1 0 0 1 .69 -.712q .119 -.036 .345 -.076c.801 -.135 1.678 -.082 2.53 .308q .283 .129 .545 .304q .048 -.235 .112 -.47a5 5 0 0 1 -.194 -.272c-.556 -.832 -.83 -1.806 -.642 -2.877l.05 -.242a3.75 3.75 0 0 1 1.027 -1.803l.169 -.159a4 4 0 0 1 1.303 -.796a1 1 0 0 1 .975 .178c.2 .168 .462 .446 .719 .83c.556 .833 .83 1.807 .642 2.878a3.77 3.77 0 0 1 -1.246 2.204c-.303 .27 -.607 .47 -.879 .61a7.5 7.5 0 0 0 -.255 1.971c0 3.502 2.285 6.272 5 6.272s5 -2.77 5 -6.276a7.6 7.6 0 0 0 -.253 -1.967a4.3 4.3 0 0 1 -.881 -.61a3.77 3.77 0 0 1 -1.246 -2.204c-.188 -1.07 .086 -2.045 .642 -2.877c.257 -.385 .52 -.663 .72 -.831a1 1 0 0 1 .974 -.178m-4.356 4.943a2 2 0 0 1 2 2v1a2 2 0 0 1 -2 2h-1v1h2a1 1 0 0 1 0 2h-2a2 2 0 0 1 -2 -2v-1a2 2 0 0 1 2 -2h1v-1h-2a1 1 0 0 1 0 -2z" />
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,13 @@
<!--
unicode: "10167"
version: "3.33"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M16.956 2.057c.355 .124 .829 .375 1.303 .796a3.77 3.77 0 0 1 1.246 2.204c.173 .989 -.047 1.894 -.519 2.683l-.123 .194q -.097 .147 -.196 .272q .066 .234 .117 .471q .26 -.178 .545 -.307c.851 -.389 1.727 -.442 2.527 -.306q .226 .04 .346 .076a1 1 0 0 1 .689 .712l.029 .13q .015 .08 .03 .18a4.45 4.45 0 0 1 -.324 2.496a3.94 3.94 0 0 1 -1.71 1.85l-.242 .12a4.23 4.23 0 0 1 -2.234 .349a9 9 0 0 1 -.443 1.023c.37 .016 .748 .093 1.128 .24c.732 .28 1.299 .758 1.711 1.367a3.95 3.95 0 0 1 .654 1.613a1 1 0 0 1 -.356 .917a3.8 3.8 0 0 1 -.716 .443c-.933 .455 -1.978 .588 -3.043 .179l-.032 -.015l-.205 -.086a3.6 3.6 0 0 1 -1.33 -1.069l-.143 -.197a4 4 0 0 1 -.26 -.433a6 6 0 0 1 -.927 .511q .18 .262 .337 .56a7.4 7.4 0 0 1 .66 1.747a1 1 0 0 1 -1.95 .444l-.028 -.11a6 6 0 0 0 -.449 -1.143c-.342 -.645 -.71 -.968 -1.048 -.968s-.706 .323 -1.048 .969a5.6 5.6 0 0 0 -.367 .874l-.082 .269l-.028 .11a1 1 0 0 1 -1.95 -.444a7.3 7.3 0 0 1 .66 -1.747q .158 -.298 .337 -.561a6.4 6.4 0 0 1 -.93 -.508a4 4 0 0 1 -.256 .43c-.366 .541 -.855 .98 -1.473 1.267l-.238 .1c-.994 .382 -1.97 .292 -2.855 -.091l-.188 -.087a3.8 3.8 0 0 1 -.716 -.443a1 1 0 0 1 -.356 -.917a3.95 3.95 0 0 1 .654 -1.613a3.6 3.6 0 0 1 1.71 -1.368c.38 -.146 .758 -.223 1.13 -.24a9 9 0 0 1 -.445 -1.023a4.23 4.23 0 0 1 -2.233 -.348a4 4 0 0 1 -.916 -.587l-.207 -.191a4 4 0 0 1 -.724 -.977l-.105 -.216a4.45 4.45 0 0 1 -.265 -2.806a1 1 0 0 1 .69 -.712q .119 -.036 .345 -.076c.801 -.135 1.678 -.082 2.53 .308q .283 .129 .545 .304q .048 -.235 .112 -.47a5 5 0 0 1 -.194 -.272c-.556 -.832 -.83 -1.806 -.642 -2.877l.05 -.242a3.75 3.75 0 0 1 1.027 -1.803l.169 -.159a4 4 0 0 1 1.303 -.796a1 1 0 0 1 .975 .178c.2 .168 .462 .446 .719 .83c.556 .833 .83 1.807 .642 2.878a3.77 3.77 0 0 1 -1.246 2.204c-.303 .27 -.607 .47 -.879 .61a7.5 7.5 0 0 0 -.255 1.971c0 3.502 2.285 6.272 5 6.272s5 -2.77 5 -6.276a7.6 7.6 0 0 0 -.253 -1.967a4.3 4.3 0 0 1 -.881 -.61a3.77 3.77 0 0 1 -1.246 -2.204c-.188 -1.07 .086 -2.045 .642 -2.877c.257 -.385 .52 -.663 .72 -.831a1 1 0 0 1 .974 -.178m-4.956 4.943a2.5 2.5 0 0 1 2.125 3.817l-.125 .183l.019 .024c.273 .372 .445 .823 .477 1.312l.005 .164a2.5 2.5 0 0 1 -2.501 2.5h-1.5a1 1 0 0 1 0 -2h1.5a.5 .5 0 1 0 0 -1h-1l-.133 -.007c-1.199 -.129 -1.154 -1.993 .133 -1.993h1l.09 -.008a.5 .5 0 0 0 -.09 -.992h-1.5a1 1 0 1 1 0 -2z" />
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1,17 @@
<!--
unicode: "10183"
version: "3.34"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M5 3h5a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-6a1 1 0 0 1 -1 -1v-5a2 2 0 0 1 2 -2" />
<path d="M14 3h5a2 2 0 0 1 2 2v2a1 1 0 0 1 -1 1h-6a1 1 0 0 1 -1 -1v-3a1 1 0 0 1 1 -1" />
<path d="M13 11a1 1 0 0 1 1 -1h6a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-6a1 1 0 0 1 -1 -1z" />
<path d="M14 16h6a1 1 0 0 1 1 1v2a2 2 0 0 1 -2 2h-5a1 1 0 0 1 -1 -1v-3a1 1 0 0 1 1 -1" />
<path d="M4 13h6a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-5a2 2 0 0 1 -2 -2v-5a1 1 0 0 1 1 -1" />
</svg>

After

Width:  |  Height:  |  Size: 618 B

View File

@ -0,0 +1,16 @@
<!--
unicode: "10182"
version: "3.34"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M5 3h5a1 1 0 0 1 1 1v3a1 1 0 0 1 -1 1h-6a1 1 0 0 1 -1 -1v-2a2 2 0 0 1 2 -2" />
<path d="M14 3h5a2 2 0 0 1 2 2v8a1 1 0 0 1 -1 1h-6a1 1 0 0 1 -1 -1v-9a1 1 0 0 1 1 -1" />
<path d="M14 16h6a1 1 0 0 1 1 1v2a2 2 0 0 1 -2 2h-5a1 1 0 0 1 -1 -1v-3a1 1 0 0 1 1 -1" />
<path d="M4 10h6a1 1 0 0 1 1 1v9a1 1 0 0 1 -1 1h-5a2 2 0 0 1 -2 -2v-8a1 1 0 0 1 1 -1" />
</svg>

After

Width:  |  Height:  |  Size: 528 B

View File

@ -0,0 +1,14 @@
<!--
unicode: "10181"
version: "3.34"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18.333 2a3.667 3.667 0 0 1 3.667 3.667v8.666a3.667 3.667 0 0 1 -3.667 3.667h-8.666a3.667 3.667 0 0 1 -3.667 -3.667v-8.666a3.667 3.667 0 0 1 3.667 -3.667zm-4.333 4a1 1 0 0 0 -1 1v2h-2a1 1 0 0 0 0 2h2v2a1 1 0 0 0 2 0v-2h2a1 1 0 0 0 0 -2h-2v-2a1 1 0 0 0 -1 -1" />
<path d="M3.517 6.391a1 1 0 0 1 .99 1.738c-.313 .178 -.506 .51 -.507 .868v10c0 .548 .452 1 1 1h10c.284 0 .405 -.088 .626 -.486a1 1 0 0 1 1.748 .972c-.546 .98 -1.28 1.514 -2.374 1.514h-10c-1.652 0 -3 -1.348 -3 -3v-10.002a3 3 0 0 1 1.517 -2.605" />
</svg>

After

Width:  |  Height:  |  Size: 686 B

14
icons/filled/library.svg Normal file
View File

@ -0,0 +1,14 @@
<!--
unicode: "10180"
version: "3.34"
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18.333 2a3.667 3.667 0 0 1 3.667 3.667v8.666a3.667 3.667 0 0 1 -3.667 3.667h-8.666a3.667 3.667 0 0 1 -3.667 -3.667v-8.666a3.667 3.667 0 0 1 3.667 -3.667zm-4.333 10h-3a1 1 0 0 0 0 2h3a1 1 0 0 0 0 -2m3 -3h-6a1 1 0 0 0 0 2h6a1 1 0 0 0 0 -2m-1 -3h-5a1 1 0 0 0 0 2h5a1 1 0 0 0 0 -2" />
<path d="M3.517 6.391a1 1 0 0 1 .99 1.738c-.313 .178 -.506 .51 -.507 .868v10c0 .548 .452 1 1 1h10c.284 0 .405 -.088 .626 -.486a1 1 0 0 1 1.748 .972c-.546 .98 -1.28 1.514 -2.374 1.514h-10c-1.652 0 -3 -1.348 -3 -3v-10.002a3 3 0 0 1 1.517 -2.605" />
</svg>

After

Width:  |  Height:  |  Size: 706 B

View File

@ -9,5 +9,5 @@ unicode: "f680"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18.364 4.636a9 9 0 0 1 .203 12.519l-.203 .21l-4.243 4.242a3 3 0 0 1 -4.097 .135l-.144 -.135l-4.244 -4.243a9 9 0 0 1 12.728 -12.728zm-6.364 3.364a3 3 0 1 0 0 6a3 3 0 0 0 0 -6z" />
<path d="M18.364 4.636a9 9 0 0 1 .203 12.519l-.203 .21l-4.243 4.242a3 3 0 0 1 -4.097 .135l-.144 -.135l-4.244 -4.243a9 9 0 0 1 12.728 -12.728zm-6.364 3.364a3 3 0 1 0 0 6a3 3 0 0 0 0 -6" />
</svg>

Before

Width:  |  Height:  |  Size: 353 B

After

Width:  |  Height:  |  Size: 352 B

Some files were not shown because too many files have changed in this diff Show More