├── migrations ├── package.json ├── base-migration │ └── index.ts ├── tsconfig.json └── migration.json ├── vite-plugins ├── svg-spritemap │ ├── test │ │ ├── project │ │ │ ├── main.ts │ │ │ ├── svg │ │ │ │ ├── no_viewbox_width_height.svg │ │ │ │ ├── invalid_viewbox.svg │ │ │ │ ├── no_viewbox.svg │ │ │ │ ├── no_width_height.svg │ │ │ │ └── vite.svg │ │ │ └── index.html │ │ ├── helper │ │ │ ├── path.ts │ │ │ └── build.ts │ │ └── svgo.test.ts │ ├── demo │ │ ├── src │ │ │ ├── vite-env.d.ts │ │ │ ├── main.ts │ │ │ ├── icons │ │ │ │ └── vite.svg │ │ │ └── css │ │ │ │ └── style.css │ │ ├── .gitignore │ │ ├── package.json │ │ ├── vite.config.ts │ │ └── tsconfig.json │ ├── src │ │ ├── helpers │ │ │ ├── calculateY.ts │ │ │ ├── filename.ts │ │ │ └── cleanAttributes.ts │ │ ├── typings │ │ │ └── svgElementAttributes.d.ts │ │ ├── styles │ │ │ ├── template.css │ │ │ ├── template.styl │ │ │ ├── template.less │ │ │ └── template.scss │ │ ├── index.ts │ │ └── types.ts │ ├── vitest.config.ts │ ├── dist │ │ ├── template.css │ │ ├── template.styl │ │ ├── template.less │ │ ├── template.scss │ │ └── index.d.ts │ └── tsup.config.ts └── svg-loader │ ├── index.d.ts │ └── package.json ├── src ├── vite-env.d.ts ├── svgs │ ├── equals.svg │ ├── milestone.svg │ ├── check.svg │ ├── ladder.svg │ ├── less-than.svg │ ├── microsoft.svg │ ├── this-quarter.svg │ ├── clinic.svg │ ├── file-tree.svg │ ├── greater-than.svg │ ├── hospital.svg │ ├── previous-quarter.svg │ ├── diamond.svg │ ├── foundation.svg │ ├── git-issue.svg │ ├── diamond-circled.svg │ ├── hammer.svg │ ├── repository.svg │ ├── plugin.svg │ ├── add-filter.svg │ ├── all.svg │ ├── drop-shipping.svg │ ├── ethereum.svg │ ├── git-commit.svg │ ├── ms-office.svg │ ├── pipes.svg │ ├── barcode.svg │ ├── less-than-or-equal.svg │ ├── strategy.svg │ ├── workflow.svg │ ├── greater-than-or-equal.svg │ ├── next-quarter.svg │ ├── pin-right.svg │ ├── add-row.svg │ ├── hospital-bed.svg │ ├── is-null.svg │ ├── git-branch.svg │ ├── git-merge.svg │ ├── pull-request.svg │ ├── code-fork.svg │ ├── condom.svg │ ├── estate.svg │ ├── hospital-sign.svg │ ├── last-quarter.svg │ ├── is-after.svg │ ├── thermometer.svg │ ├── is-before.svg │ ├── pill.svg │ ├── pound-circled.svg │ ├── water-tap.svg │ ├── arrow-down-left.svg │ ├── arrow-down-right.svg │ ├── arrow-up-left.svg │ ├── arrow-up-right.svg │ ├── file-changes.svg │ ├── git-compare.svg │ ├── jump-up.svg │ ├── next-week.svg │ ├── pulse.svg │ ├── start-expression.svg │ ├── stretcher.svg │ ├── code.svg │ ├── google-drive.svg │ ├── last-week.svg │ ├── medical-book.svg │ ├── previous-week.svg │ ├── software-architecture.svg │ ├── tapeline.svg │ ├── this-week.svg │ ├── brick-wall.svg │ ├── not-equal.svg │ ├── pin-left.svg │ ├── piping-system.svg │ ├── software-installer.svg │ ├── stairs.svg │ ├── starts-with.svg │ ├── ungroup.svg │ ├── unpin-left.svg │ ├── unpin-right.svg │ ├── bottom-records.svg │ ├── end-expression.svg │ ├── module.svg │ ├── tap-water.svg │ ├── timeline.svg │ ├── top-records.svg │ ├── aggregation.svg │ ├── app-symbol.svg │ ├── medicine.svg │ ├── award.svg │ ├── is-empty.svg │ ├── solar-panel.svg │ ├── certificate.svg │ ├── gift.svg │ ├── gold.svg │ ├── quarter-one.svg │ ├── skyscrapers.svg │ ├── yen-circled.svg │ ├── accessibility.svg │ ├── forklift-truck.svg │ ├── inspect-code.svg │ ├── invoice.svg │ ├── building.svg │ ├── console.svg │ ├── quarter-two.svg │ ├── ambulance.svg │ ├── code-review.svg │ ├── construction-cone.svg │ ├── construction-trolley.svg │ ├── rh-negative.svg │ ├── scissor-lift.svg │ ├── quarter-four.svg │ ├── tomorrow.svg │ ├── yesterday.svg │ ├── bull-market.svg │ ├── jump-down.svg │ ├── quarter-three.svg │ ├── responsive-layout.svg │ ├── rulers.svg │ ├── severity.svg │ ├── source-code.svg │ ├── vote.svg │ ├── baby-bottle.svg │ ├── does-not-start-with.svg │ ├── horn.svg │ ├── impact-drill.svg │ ├── restricted-area.svg │ ├── today.svg │ ├── bear-market.svg │ ├── does-not-end-with.svg │ ├── rh-positive.svg │ ├── paint-roller.svg │ ├── tooth.svg │ ├── trowel.svg │ ├── cordless-screwdriver.svg │ ├── exact-match.svg │ ├── match.svg │ ├── calculator.svg │ ├── doctors-bag.svg │ ├── grid.svg │ ├── last-year.svg │ ├── mask-2.svg │ ├── month.svg │ ├── next-year.svg │ ├── cash-only.svg │ ├── dropbox.svg │ ├── facebook.svg │ ├── poop.svg │ ├── shovel.svg │ ├── not-empty.svg │ ├── credit-cards.svg │ ├── google.svg │ ├── tooth-cracked.svg │ ├── water-heater.svg │ ├── stethoscope.svg │ ├── atm.svg │ ├── contraception.svg │ ├── heart-care.svg │ ├── legal-document.svg │ ├── opera.svg │ ├── radiator.svg │ ├── soldering-iron.svg │ ├── this-year.svg │ ├── tinder.svg │ ├── vial.svg │ ├── delivery.svg │ ├── dump-truck.svg │ ├── pay-date.svg │ ├── crane.svg │ ├── instagram.svg │ ├── stats.svg │ ├── wrench.svg │ ├── credit-control.svg │ ├── saw.svg │ ├── add-child.svg │ ├── cement-mixer.svg │ ├── is-not-null.svg │ ├── last-month.svg │ ├── mastercard.svg │ ├── next-month.svg │ ├── water-boiler.svg │ ├── bulldozer.svg │ ├── candidate-results.svg │ ├── pneumatic-hammer-drill.svg │ ├── system-update.svg │ ├── braille.svg │ ├── euro-circled.svg │ ├── tractor.svg │ ├── condom-used.svg │ ├── diners-club.svg │ ├── bill-paid.svg │ ├── dividents.svg │ ├── doctor.svg │ ├── this-month.svg │ ├── security-1.svg │ ├── tiktok.svg │ ├── white-house-2.svg │ ├── parliament-1.svg │ ├── toilet-paper.svg │ ├── fountain.svg │ ├── development.svg │ ├── male-candidate.svg │ ├── verified-account.svg │ ├── parliament-2.svg │ ├── screwdriver.svg │ ├── white-house-1.svg │ ├── google-play.svg │ ├── aids-ribbon.svg │ ├── linkedin.svg │ ├── maestro.svg │ ├── dental-implant.svg │ ├── is-true.svg │ ├── results-by-candidates.svg │ ├── bucket.svg │ ├── facebook-messenger.svg │ ├── is-false.svg │ ├── ms-teams.svg │ ├── onedrive.svg │ ├── radioactive.svg │ ├── fitness-watch.svg │ ├── heart-monitor.svg │ ├── twitch.svg │ ├── cancer-ribbon.svg │ ├── discount.svg │ ├── nurse.svg │ ├── syringe.svg │ ├── usa-ny.svg │ ├── face-id.svg │ ├── worker.svg │ ├── american-express.svg │ ├── atm-yen.svg │ ├── auction.svg │ ├── stackoverflow.svg │ ├── medium.svg │ ├── safety-vest.svg │ ├── tow-truck.svg │ ├── cash-2.svg │ ├── construction-project.svg │ ├── mask-1.svg │ ├── vimeo.svg │ ├── protester-signs.svg │ ├── twitter.svg │ ├── dollar-circled.svg │ ├── massage.svg │ ├── popular-votes.svg │ ├── cash-1.svg │ ├── dental-floss.svg │ ├── weight-scale.svg │ ├── bug.svg │ ├── microorganisms.svg │ ├── microscope.svg │ ├── results-piechart.svg │ ├── money-bag.svg │ ├── pacifier.svg │ ├── sneeze.svg │ ├── vs-code.svg │ ├── country-home.svg │ ├── spotify.svg │ ├── apple.svg │ ├── dose.svg │ ├── ends-with.svg │ ├── veterinarian.svg │ ├── usa-party-green.svg │ ├── brush.svg │ ├── usa-tx.svg │ ├── atm-euro.svg │ ├── usa-lower-48-states.svg │ ├── virus.svg │ ├── commodities.svg │ ├── dna.svg │ ├── slack.svg │ ├── bank-safe.svg │ ├── github.svg │ ├── ms-word.svg │ ├── road-roller.svg │ ├── budget-spending.svg │ ├── steam.svg │ ├── towel-rail.svg │ ├── blood.svg │ ├── debt.svg │ ├── anxiety.svg │ ├── usa-fl.svg │ ├── financial-insurance.svg │ ├── snapchat.svg │ ├── gas-mask.svg │ ├── google-maps.svg │ ├── atm-dollar.svg │ ├── diabetes.svg │ ├── idea-generation.svg │ ├── atm-pound.svg │ ├── piggy-bank.svg │ ├── api.svg │ ├── blu-ray.svg │ ├── electoral-votes.svg │ ├── paypal.svg │ ├── breastfeeding.svg │ ├── female-candidate.svg │ ├── loan.svg │ ├── oil.svg │ ├── reddit.svg │ ├── contains.svg │ ├── usa-party-republican.svg │ ├── skype.svg │ ├── bitcoin.svg │ ├── ms-powerpoint.svg │ ├── workers.svg │ ├── teeth.svg │ ├── telegram.svg │ ├── does-not-contain.svg │ ├── year-to-date.svg │ ├── apple-app-store.svg │ ├── security-2.svg │ ├── whatsapp.svg │ ├── soundcloud.svg │ ├── behance.svg │ ├── visually-impaired.svg │ ├── oil-platform.svg │ ├── scales-balanced.svg │ ├── chrome.svg │ ├── ms-edge.svg │ ├── pliers.svg │ ├── crowdfunding.svg │ ├── jsfiddle.svg │ ├── maintenance.svg │ ├── box.svg │ ├── biohazard.svg │ ├── discord.svg │ ├── scales-unbalanced.svg │ ├── stop-hand.svg │ ├── internet-explorer.svg │ ├── embryo.svg │ ├── bacteria.svg │ ├── ms-excel.svg │ ├── keep-away-from-children.svg │ ├── visa.svg │ ├── fertilization.svg │ ├── google-translate.svg │ ├── bandage.svg │ ├── case-sensitive.svg │ ├── wire-transfer.svg │ ├── virus-stop.svg │ ├── hearing-aid.svg │ ├── wechat.svg │ ├── amazon.svg │ ├── plastic-surgery.svg │ ├── ebay.svg │ ├── sign-language.svg │ └── usa-ca.svg ├── index.ts ├── all.ts └── common │ └── icon.ts ├── .prettierrc.json ├── scripts └── report.js ├── main.js ├── style.css ├── index.html ├── tsconfig.json ├── .editorconfig └── .github └── workflows └── nodejs.yml /migrations/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "commonjs" 3 | } 4 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/test/project/main.ts: -------------------------------------------------------------------------------- 1 | import './styles/spritemap.css' 2 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/demo/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "es5", 3 | "tabWidth": 2, 4 | "singleQuote": true, 5 | "arrowParens": "always" 6 | } 7 | -------------------------------------------------------------------------------- /src/svgs/equals.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/milestone.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/check.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/ladder.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/less-than.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/microsoft.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/this-quarter.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/clinic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/file-tree.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/greater-than.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/hospital.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/previous-quarter.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/diamond.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/foundation.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/git-issue.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/diamond-circled.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/hammer.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/repository.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/plugin.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/add-filter.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/all.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/drop-shipping.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/ethereum.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/git-commit.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/ms-office.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/pipes.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /migrations/base-migration/index.ts: -------------------------------------------------------------------------------- 1 | import { Rule, Tree } from "@angular-devkit/schematics"; 2 | 3 | export default function (): Rule { 4 | return (tree: Tree) => { 5 | return tree; 6 | }; 7 | } 8 | -------------------------------------------------------------------------------- /src/svgs/barcode.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/less-than-or-equal.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/strategy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/workflow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/src/helpers/calculateY.ts: -------------------------------------------------------------------------------- 1 | export const calculateY = (heights: number[] = [], gutter = 0) => { 2 | return heights.reduce((a, b) => a + b, 0) + heights.length * gutter 3 | } 4 | -------------------------------------------------------------------------------- /src/svgs/greater-than-or-equal.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/next-quarter.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/pin-right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /scripts/report.js: -------------------------------------------------------------------------------- 1 | export default { 2 | success: (s) => console.log("\x1b[32m%s\x1b[0m", s), 3 | warn: (s) => console.warn("\x1b[33m%s\x1b[0m", s), 4 | error: (s) => console.error("\x1b[31m%s\x1b[0m", s) 5 | } 6 | -------------------------------------------------------------------------------- /src/svgs/add-row.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/hospital-bed.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/is-null.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/demo/src/main.ts: -------------------------------------------------------------------------------- 1 | import './scss/style.scss' 2 | // import './stylus/style.styl' 3 | // import './less/style.less' 4 | 5 | // import './css/spritemap.css' 6 | // import './css/style.css' 7 | -------------------------------------------------------------------------------- /src/svgs/git-branch.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/git-merge.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/pull-request.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/src/typings/svgElementAttributes.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'svg-element-attributes' { 2 | const svgElementAttributes: Record> 3 | export default svgElementAttributes 4 | } 5 | -------------------------------------------------------------------------------- /src/svgs/code-fork.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/condom.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/estate.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/hospital-sign.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/last-quarter.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/is-after.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/thermometer.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config' 2 | 3 | export default defineConfig({ 4 | test: { 5 | coverage: { 6 | reporter: ['lcov'] 7 | } 8 | } 9 | }) 10 | -------------------------------------------------------------------------------- /src/svgs/is-before.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/pill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/pound-circled.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/water-tap.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/arrow-down-left.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/arrow-down-right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/arrow-up-left.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/arrow-up-right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/file-changes.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/git-compare.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/jump-up.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/next-week.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/pulse.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/start-expression.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/stretcher.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /migrations/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es6", 4 | "module": "CommonJS", 5 | "sourceMap": false, 6 | "declaration": true, 7 | "outDir": "../dist/migrations/base-migration/" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/svgs/code.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/google-drive.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/last-week.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/medical-book.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/previous-week.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/software-architecture.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/tapeline.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/this-week.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /main.js: -------------------------------------------------------------------------------- 1 | import './dist/styles/sprite.css'; 2 | import './style.css'; 3 | import { youtube } from './src/socialMedia'; 4 | 5 | document.querySelector('#app').innerHTML = ` 6 | 7 | ${youtube.value} 8 | `; 9 | -------------------------------------------------------------------------------- /src/svgs/brick-wall.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/not-equal.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/pin-left.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/piping-system.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/software-installer.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/stairs.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/starts-with.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/ungroup.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/unpin-left.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/unpin-right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/bottom-records.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/end-expression.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/module.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/tap-water.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/timeline.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/top-records.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/aggregation.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/app-symbol.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/medicine.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/award.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/is-empty.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/solar-panel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/certificate.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/gift.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/gold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/quarter-one.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/skyscrapers.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/yen-circled.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /migrations/migration.json: -------------------------------------------------------------------------------- 1 | { 2 | "schematics": { 3 | "migration-01": { 4 | "version": "3.0.0", 5 | "description": "Updates IgniteUI Material Icons Extended to the latest version.", 6 | "factory": "./base-migration" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/svgs/accessibility.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/forklift-truck.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/inspect-code.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/invoice.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/building.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/console.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/quarter-two.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/ambulance.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/code-review.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/construction-cone.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/construction-trolley.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/rh-negative.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/scissor-lift.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/quarter-four.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/tomorrow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/yesterday.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/bull-market.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/jump-down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/quarter-three.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/responsive-layout.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/rulers.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/severity.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/source-code.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/vote.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/baby-bottle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/does-not-start-with.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/horn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/impact-drill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/restricted-area.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/today.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/bear-market.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/does-not-end-with.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/rh-positive.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/paint-roller.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/tooth.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/trowel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/cordless-screwdriver.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/exact-match.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/match.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --icon-size: 48px; 3 | --icon-color: orange; 4 | } 5 | 6 | .imx-icon { 7 | --size: var(--icon-size); 8 | --color: var(--icon-color); 9 | } 10 | 11 | svg { 12 | width: var(--icon-size); 13 | height: var(--icon-size); 14 | fill: var(--icon-color); 15 | } 16 | -------------------------------------------------------------------------------- /src/svgs/calculator.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/doctors-bag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/grid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/last-year.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/mask-2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/month.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/next-year.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/cash-only.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/dropbox.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/facebook.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/poop.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/shovel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/not-empty.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/credit-cards.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/google.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/tooth-cracked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/water-heater.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/stethoscope.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/atm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/contraception.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/heart-care.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/legal-document.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/opera.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/radiator.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/soldering-iron.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/this-year.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/tinder.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/vial.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/test/project/svg/no_viewbox_width_height.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/svgs/delivery.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/dump-truck.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/pay-date.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/crane.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/instagram.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/test/project/svg/invalid_viewbox.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/test/project/svg/no_viewbox.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/test/project/svg/no_width_height.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/svgs/stats.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/wrench.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/credit-control.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/saw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Material Icons Extended 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/svgs/add-child.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/cement-mixer.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/is-not-null.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/last-month.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/mastercard.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/next-month.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/water-boiler.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/test/helper/path.ts: -------------------------------------------------------------------------------- 1 | import { fileURLToPath } from 'url'; 2 | import path, { resolve } from 'path' 3 | import { normalizePath } from 'vite' 4 | const __dirname = path.dirname(fileURLToPath(import.meta.url)); 5 | 6 | export const getPath = (...pathSegments: string[]) => { 7 | return normalizePath(resolve(__dirname, './../', ...pathSegments)) 8 | } 9 | -------------------------------------------------------------------------------- /src/svgs/bulldozer.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/candidate-results.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/pneumatic-hammer-drill.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/system-update.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/braille.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/euro-circled.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/tractor.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/dist/template.css: -------------------------------------------------------------------------------- 1 | .imx-icon { 2 | --size: 1.5rem; 3 | --color: currentColor; 4 | 5 | display: inline-block; 6 | background-color: var(--color); 7 | width: var(--size); 8 | height: var(--size); 9 | mask-image: var(--icon); 10 | mask-repeat: no-repeat; 11 | -webkit-mask-image: var(--icon); 12 | -webkit-mask-repeat: no-repeat; 13 | } 14 | -------------------------------------------------------------------------------- /src/svgs/condom-used.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/diners-club.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/src/styles/template.css: -------------------------------------------------------------------------------- 1 | .imx-icon { 2 | --size: 1.5rem; 3 | --color: currentColor; 4 | 5 | display: inline-block; 6 | background-color: var(--color); 7 | width: var(--size); 8 | height: var(--size); 9 | mask-image: var(--icon); 10 | mask-repeat: no-repeat; 11 | -webkit-mask-image: var(--icon); 12 | -webkit-mask-repeat: no-repeat; 13 | } 14 | -------------------------------------------------------------------------------- /src/svgs/bill-paid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/dividents.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/doctor.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/this-month.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/security-1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/tiktok.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/white-house-2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/demo/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /src/svgs/parliament-1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/toilet-paper.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/fountain.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/development.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/male-candidate.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/verified-account.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/parliament-2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/screwdriver.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/white-house-1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/google-play.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/aids-ribbon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/linkedin.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/maestro.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/dental-implant.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/is-true.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/results-by-candidates.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/bucket.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/facebook-messenger.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/is-false.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/ms-teams.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/onedrive.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/radioactive.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/fitness-watch.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/heart-monitor.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/twitch.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/cancer-ribbon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/discount.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/nurse.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/syringe.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/usa-ny.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/face-id.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/worker.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/demo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "demo", 3 | "private": true, 4 | "version": "0.0.0", 5 | "scripts": { 6 | "dev": "vite", 7 | "build": "tsc && vite build", 8 | "preview": "vite preview" 9 | }, 10 | "devDependencies": { 11 | "less": "^4.1.3", 12 | "sass": "^1.58.3", 13 | "stylus": "^0.59.0", 14 | "typescript": "^4.9.5", 15 | "vite": "^4.1.4", 16 | "vite-plugin-inspect": "^0.7.15" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/svgs/american-express.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/atm-yen.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/auction.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/stackoverflow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/medium.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/safety-vest.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": true, 3 | "compilerOptions": { 4 | "target": "ESNext", 5 | "module": "ESNext", 6 | "lib": ["ESNext"], 7 | "moduleResolution": "Node", 8 | "declaration": true, 9 | "strict": true, 10 | "sourceMap": true, 11 | "outDir": "./dist", 12 | "typeRoots": ["node_modules/@types"], 13 | "noImplicitAny": true, 14 | "removeComments": true 15 | }, 16 | "exclude": ["dist", "node_modules", "vite-plugins"] 17 | } 18 | -------------------------------------------------------------------------------- /src/svgs/tow-truck.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { promises as fs } from 'fs' 2 | import { defineConfig } from 'tsup' 3 | import fg from 'fast-glob' 4 | 5 | export default defineConfig({ 6 | entry: ['src/index.ts'], 7 | dts: true, 8 | format: ['esm'], 9 | async onSuccess() { 10 | const files = await fg('src/styles/*.(css|scss|styl|less)') 11 | for (const file of files) { 12 | await fs.copyFile(file, file.replace('src/styles', 'dist/')) 13 | } 14 | } 15 | }) 16 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import type { IMXIcon } from './common/icon'; 2 | 3 | export * from './content'; 4 | export * from './construction'; 5 | export * from './editor'; 6 | export * from './election'; 7 | export * from './finance'; 8 | export * from './health'; 9 | export * from './logos'; 10 | export * from './programming'; 11 | export * from './socialMedia'; 12 | 13 | export { all } from './all'; 14 | 15 | export { IconCategory, IconCategoryEnum } from './common/icon'; 16 | export type { IMXIcon }; 17 | -------------------------------------------------------------------------------- /src/svgs/cash-2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/construction-project.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/mask-1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/vimeo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/protester-signs.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/dist/template.styl: -------------------------------------------------------------------------------- 1 | imx-icon($name) 2 | $sprite = $sprites[$name] 3 | $url = $sprite[uri] 4 | 5 | --size: 1.5rem 6 | --color: currentColor 7 | 8 | display: inline-block 9 | width: var(--size) 10 | height: var(--size) 11 | background-color: var(--color) 12 | 13 | if $url 14 | --icon: embedurl($url) 15 | mask-image: var(--icon) 16 | mask-repeat: no-repeat 17 | -webkit-mask-image: var(--icon) 18 | -webkit-mask-repeat: no-repeat 19 | -------------------------------------------------------------------------------- /src/svgs/twitter.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/src/styles/template.styl: -------------------------------------------------------------------------------- 1 | imx-icon($name) 2 | $sprite = $sprites[$name] 3 | $url = $sprite[uri] 4 | 5 | --size: 1.5rem 6 | --color: currentColor 7 | 8 | display: inline-block 9 | width: var(--size) 10 | height: var(--size) 11 | background-color: var(--color) 12 | 13 | if $url 14 | --icon: embedurl($url) 15 | mask-image: var(--icon) 16 | mask-repeat: no-repeat 17 | -webkit-mask-image: var(--icon) 18 | -webkit-mask-repeat: no-repeat 19 | -------------------------------------------------------------------------------- /src/svgs/dollar-circled.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-loader/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'svg-loader' { 2 | import { Plugin } from 'vite'; 3 | import { Config } from 'svgo'; 4 | function svgLoader(options?: { 5 | a11yMetaPath: string; 6 | svgoConfig?: Config; 7 | svgo?: boolean; 8 | }): Plugin; 9 | export default svgLoader; 10 | } 11 | 12 | declare module '*.svg?url' { 13 | const src: string; 14 | export default src; 15 | } 16 | 17 | declare module '*.svg?raw' { 18 | const src: string; 19 | export default src; 20 | } 21 | -------------------------------------------------------------------------------- /src/svgs/massage.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/popular-votes.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/cash-1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/dental-floss.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/weight-scale.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/bug.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/microorganisms.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/microscope.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/results-piechart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/dist/template.less: -------------------------------------------------------------------------------- 1 | .imx-icon(@name) { 2 | @sprite: @sprites[@@name]; 3 | @uri: @sprite[uri]; 4 | 5 | --size: 1.5rem; 6 | --color: currentColor; 7 | 8 | display: inline-block; 9 | width: var(--size); 10 | height: var(--size); 11 | background-color: var(--color); 12 | 13 | & when (isstring(@uri)) { 14 | --icon: url(@uri); 15 | 16 | mask-image: var(--icon); 17 | mask-repeat: no-repeat; 18 | -webkit-mask-image: var(--icon); 19 | -webkit-mask-repeat: no-repeat; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/test/project/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Test 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/svgs/money-bag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/pacifier.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/src/styles/template.less: -------------------------------------------------------------------------------- 1 | .imx-icon(@name) { 2 | @sprite: @sprites[@@name]; 3 | @uri: @sprite[uri]; 4 | 5 | --size: 1.5rem; 6 | --color: currentColor; 7 | 8 | display: inline-block; 9 | width: var(--size); 10 | height: var(--size); 11 | background-color: var(--color); 12 | 13 | & when (isstring(@uri)) { 14 | --icon: url(@uri); 15 | 16 | mask-image: var(--icon); 17 | mask-repeat: no-repeat; 18 | -webkit-mask-image: var(--icon); 19 | -webkit-mask-repeat: no-repeat; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/svgs/sneeze.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/vs-code.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/demo/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import Inspect from 'vite-plugin-inspect' 3 | import VitePluginSvgSpritemap from './../src/index' 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | VitePluginSvgSpritemap('src/icons/*.svg', { 8 | // styles: 'src/css/spritemap.css', 9 | styles: 'src/scss/spritemap.scss', 10 | // styles: 'src/stylus/spritemap.styl', 11 | // styles: 'src/less/spritemap.less', 12 | prefix: 'icon-' 13 | }), 14 | Inspect() 15 | ] 16 | }) 17 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/dist/template.scss: -------------------------------------------------------------------------------- 1 | %icon { 2 | --size: 1.5rem; 3 | --color: currentColor; 4 | 5 | display: inline-block; 6 | width: var(--size); 7 | height: var(--size); 8 | background-color: var(--color); 9 | } 10 | 11 | @mixin imx-icon($name) { 12 | $url: map.get($sprites, $name, uri); 13 | @extend %icon; 14 | 15 | @if $url { 16 | --icon: #{url($url)}; 17 | 18 | mask-image: var(--icon); 19 | mask-repeat: no-repeat; 20 | -webkit-mask-image: var(--icon); 21 | -webkit-mask-repeat: no-repeat; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/svgs/country-home.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/spotify.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/src/styles/template.scss: -------------------------------------------------------------------------------- 1 | %icon { 2 | --size: 1.5rem; 3 | --color: currentColor; 4 | 5 | display: inline-block; 6 | width: var(--size); 7 | height: var(--size); 8 | background-color: var(--color); 9 | } 10 | 11 | @mixin imx-icon($name) { 12 | $url: map.get($sprites, $name, uri); 13 | @extend %icon; 14 | 15 | @if $url { 16 | --icon: #{url($url)}; 17 | 18 | mask-image: var(--icon); 19 | mask-repeat: no-repeat; 20 | -webkit-mask-image: var(--icon); 21 | -webkit-mask-repeat: no-repeat; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/svgs/apple.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/dose.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/ends-with.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/veterinarian.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/usa-party-green.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/src/index.ts: -------------------------------------------------------------------------------- 1 | import type { Plugin } from 'vite' 2 | import type { UserOptions, Pattern } from './types' 3 | import { BuildPlugin } from './plugins/build' 4 | import { DevPlugin } from './plugins/dev' 5 | import { createOptions } from './helpers/options' 6 | 7 | export default function VitePluginSvgSpritemap( 8 | iconsPattern: Pattern, 9 | options?: UserOptions 10 | ): Plugin[] { 11 | const _options = createOptions(options) 12 | 13 | return [ 14 | BuildPlugin(iconsPattern, _options), 15 | DevPlugin(iconsPattern, _options) 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /src/svgs/brush.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/usa-tx.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/demo/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "useDefineForClassFields": true, 5 | "module": "ESNext", 6 | "lib": ["ESNext", "DOM"], 7 | "moduleResolution": "Node", 8 | "strict": true, 9 | "sourceMap": true, 10 | "resolveJsonModule": true, 11 | "isolatedModules": true, 12 | "esModuleInterop": true, 13 | "noEmit": true, 14 | "noUnusedLocals": true, 15 | "noUnusedParameters": true, 16 | "noImplicitReturns": true, 17 | "skipLibCheck": true 18 | }, 19 | "include": ["src"] 20 | } 21 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/test/helper/build.ts: -------------------------------------------------------------------------------- 1 | import { build } from 'vite' 2 | import VitePluginSvgSpritemap from '../../src' 3 | import type { UserOptions } from '../../src/types' 4 | import { getPath } from './path' 5 | 6 | export const buildVite = async ( 7 | options: UserOptions, 8 | path: string | null = null 9 | ) => { 10 | const result = await build({ 11 | root: getPath('./project'), 12 | plugins: [ 13 | VitePluginSvgSpritemap( 14 | getPath(path ? path : './project/svg/*.svg'), 15 | options 16 | ) 17 | ] 18 | }) 19 | return result 20 | } 21 | -------------------------------------------------------------------------------- /src/svgs/atm-euro.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/src/helpers/filename.ts: -------------------------------------------------------------------------------- 1 | import hash_sum from 'hash-sum' 2 | 3 | // Respect https://www.rollupjs.org/guide/en/#outputassetfilenames filename transformation 4 | export const getFileName = ( 5 | fileName: string, 6 | name: string, 7 | content: string, 8 | ext: string 9 | ) => { 10 | const hash = hash_sum(content) 11 | fileName = fileName.replace(/\[hash\]/g, hash) 12 | fileName = fileName.replace(/\[ext\]/g, ext) 13 | fileName = fileName.replace(/\[extname\]/g, '.' + ext) 14 | fileName = fileName.replace(/\[name\]/g, name) 15 | 16 | return fileName 17 | } 18 | -------------------------------------------------------------------------------- /src/svgs/usa-lower-48-states.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/virus.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/commodities.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/dna.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/slack.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/bank-safe.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/github.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/ms-word.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/road-roller.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/budget-spending.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/steam.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/towel-rail.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/blood.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/debt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/anxiety.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/usa-fl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/financial-insurance.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/snapchat.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/gas-mask.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/google-maps.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-loader/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "svg-loader", 3 | "version": "1.0.0", 4 | "description": "Loads and transforms SVGs files for the purpose of the icon library.", 5 | "main": "index.js", 6 | "type": "module", 7 | "types": "index.d.ts", 8 | "exports": { 9 | ".": { 10 | "import": "./index.js" 11 | } 12 | }, 13 | "module": "index.js", 14 | "scripts": { 15 | "test": "echo \"Error: no test specified\" && exit 1" 16 | }, 17 | "author": "Infragistics", 18 | "license": "ISC", 19 | "devDependencies": { 20 | "@xmldom/xmldom": "^0.8.7", 21 | "svgo": "^3.0.2", 22 | "yaml": "^2.2.1" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/svgs/atm-dollar.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/diabetes.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/idea-generation.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/atm-pound.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/piggy-bank.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/all.ts: -------------------------------------------------------------------------------- 1 | import { content } from './content'; 2 | import { construction } from './construction'; 3 | import { editor } from './editor'; 4 | import { elections } from './election'; 5 | import { finance } from './finance'; 6 | import { health } from './health'; 7 | import { logos } from './logos'; 8 | import { programming } from './programming'; 9 | import { socialMedia } from './socialMedia'; 10 | import type { IMXIcon } from './common/icon'; 11 | 12 | export const all: IMXIcon[] = [ 13 | ...content, 14 | ...construction, 15 | ...editor, 16 | ...elections, 17 | ...finance, 18 | ...health, 19 | ...logos, 20 | ...programming, 21 | ...socialMedia, 22 | ]; 23 | -------------------------------------------------------------------------------- /src/svgs/api.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/blu-ray.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/electoral-votes.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/paypal.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/breastfeeding.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/female-candidate.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/loan.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/oil.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/reddit.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/contains.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/usa-party-republican.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/src/helpers/cleanAttributes.ts: -------------------------------------------------------------------------------- 1 | import svgElementAttributes from 'svg-element-attributes' assert { type: 'json' } 2 | 3 | export const cleanAttributes = (attributes: Attr[], tag: string): Attr[] => { 4 | const cleanAttributes = ['viewbox', 'width', 'height', 'id', 'xmlns'] 5 | 6 | const validAttributes = [ 7 | ...svgElementAttributes['*'], 8 | ...svgElementAttributes.svg.filter(attr => 9 | svgElementAttributes[tag].includes(attr) 10 | ) 11 | ] 12 | 13 | return Array.from(attributes).filter( 14 | attr => 15 | !cleanAttributes.includes(attr.name.toLocaleLowerCase()) && 16 | validAttributes.includes(attr.name) 17 | ) 18 | } 19 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | [*] 8 | 9 | # Change these settings to your own preference 10 | indent_style = space 11 | indent_size = 2 12 | 13 | # We recommend you to keep these unchanged 14 | end_of_line = lf 15 | charset = utf-8 16 | trim_trailing_whitespace = true 17 | insert_final_newline = true 18 | 19 | [*.md] 20 | trim_trailing_whitespace = false 21 | 22 | [*.json] 23 | indent_size = 2 24 | 25 | [*.{html,js,md}] 26 | block_comment_start = /** 27 | block_comment = * 28 | block_comment_end = */ 29 | 30 | [*.scss] 31 | indent_size = 4 32 | 33 | -------------------------------------------------------------------------------- /src/svgs/skype.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/dist/index.d.ts: -------------------------------------------------------------------------------- 1 | import { Plugin } from 'vite'; 2 | import { Config } from 'svgo'; 3 | 4 | type Pattern = string[] | string; 5 | type StylesLang = 'less' | 'scss' | 'styl' | 'css'; 6 | interface UserOptions { 7 | svgo?: boolean | Config; 8 | output?: { 9 | filename: string; 10 | use?: boolean; 11 | view?: boolean; 12 | } | string | boolean; 13 | prefix?: string; 14 | styles?: { 15 | filename: string; 16 | lang?: StylesLang; 17 | }[] | string | false; 18 | } 19 | 20 | declare function VitePluginSvgSpritemap(iconsPattern: Pattern, options?: UserOptions): Plugin[]; 21 | 22 | export { VitePluginSvgSpritemap as default }; 23 | -------------------------------------------------------------------------------- /src/svgs/bitcoin.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/ms-powerpoint.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/workers.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/teeth.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/telegram.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/does-not-contain.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/year-to-date.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/apple-app-store.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/security-2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/whatsapp.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/test/project/svg/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/workflows/nodejs.yml: -------------------------------------------------------------------------------- 1 | # This workflow will do a clean install of node dependencies and build the package 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions 3 | 4 | name: Node.js CI 5 | 6 | on: 7 | push: 8 | branches: [master, '[0-9]+.[0-9]+.x'] 9 | pull_request: 10 | branches: [master, '[0-9]+.[0-9]+.x'] 11 | 12 | jobs: 13 | build: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Checkout 17 | uses: actions/checkout@v3 18 | 19 | - name: Set up Node 20 | uses: actions/setup-node@v3 21 | 22 | - name: Install packages 23 | run: npm ci 24 | 25 | - name: Build 26 | run: npm run build 27 | -------------------------------------------------------------------------------- /src/svgs/soundcloud.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/behance.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/visually-impaired.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/demo/src/icons/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/oil-platform.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/scales-balanced.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/common/icon.ts: -------------------------------------------------------------------------------- 1 | export enum IconCategoryEnum { 2 | "construction", 3 | "content", 4 | "editor", 5 | "election", 6 | "finance", 7 | "health", 8 | "logos", 9 | "programming", 10 | "social media", 11 | } 12 | 13 | export type IconCategory = keyof typeof IconCategoryEnum; 14 | 15 | export namespace IconCategory { 16 | function isIndex(key: string | number): boolean { 17 | const n = ~~Number(key); 18 | return String(n) === key && n >= 0; 19 | } 20 | 21 | export function values() { 22 | return Object.keys(IconCategoryEnum).filter((key) => !isIndex(key)); 23 | } 24 | } 25 | 26 | export type IMXIcon = { 27 | name: string; 28 | value: string; 29 | categories: IconCategory[]; 30 | fontSet?: string; 31 | keywords?: string[]; 32 | } 33 | -------------------------------------------------------------------------------- /src/svgs/chrome.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/ms-edge.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/pliers.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/crowdfunding.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/jsfiddle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/maintenance.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/box.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/biohazard.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/discord.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/scales-unbalanced.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/stop-hand.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/internet-explorer.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/embryo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/demo/src/css/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: #ddd; 3 | margin: 10vw; 4 | font-family: Avenir, Helvetica, Arial, sans-serif; 5 | -webkit-font-smoothing: antialiased; 6 | -moz-osx-font-smoothing: grayscale; 7 | } 8 | @keyframes rainbow { 9 | 0% { 10 | color: red; 11 | } 12 | to { 13 | color: #ff9500; 14 | } 15 | } 16 | .icon { 17 | margin: 0.5rem; 18 | } 19 | .icon-spiriit { 20 | width: 118px; 21 | height: 38px; 22 | } 23 | .icon-vite { 24 | width: 31.88px; 25 | height: 32px; 26 | } 27 | .icon-vite { 28 | animation: rainbow infinite 1s alternate; 29 | } 30 | h1 { 31 | font-size: 2.5rem; 32 | margin-bottom: 1rem; 33 | } 34 | h2 { 35 | margin-top: 0; 36 | } 37 | .example { 38 | margin-top: 4rem; 39 | } 40 | .example__svgs { 41 | display: flex; 42 | align-items: center; 43 | margin: -0.5rem; 44 | } 45 | -------------------------------------------------------------------------------- /src/svgs/bacteria.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/ms-excel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/keep-away-from-children.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/visa.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/fertilization.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/google-translate.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/bandage.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/case-sensitive.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/wire-transfer.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/virus-stop.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/hearing-aid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/wechat.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/test/svgo.test.ts: -------------------------------------------------------------------------------- 1 | import { it, describe, expect } from 'vitest' 2 | import type { UserOptions } from '../src/types' 3 | import { buildVite } from './helper/build' 4 | 5 | const svgoConfigs: Record = { 6 | default: true, 7 | false: false, 8 | custom: { 9 | plugins: ['prefixIds'] 10 | } 11 | } 12 | 13 | describe('SVGO', () => { 14 | for (const key in svgoConfigs) { 15 | if (Object.prototype.hasOwnProperty.call(svgoConfigs, key)) { 16 | it(key, async () => { 17 | const svgo = svgoConfigs[key] 18 | const result = await buildVite({ svgo }) 19 | const asset = result.output.find( 20 | asset => 21 | asset.name?.startsWith('spritemap.') && asset.name.endsWith('.svg') 22 | ) 23 | 24 | expect(asset).toBeDefined() 25 | 26 | if (asset && 'source' in asset) { 27 | expect(asset.source).toMatchSnapshot() 28 | } 29 | }) 30 | } 31 | } 32 | }) 33 | -------------------------------------------------------------------------------- /src/svgs/amazon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/plastic-surgery.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/ebay.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/sign-language.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/svgs/usa-ca.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vite-plugins/svg-spritemap/src/types.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from 'svgo' 2 | 3 | export type Pattern = string[] | string 4 | 5 | export type StylesLang = 'less' | 'scss' | 'styl' | 'css' 6 | 7 | export interface UserOptions { 8 | svgo?: boolean | Config 9 | output?: 10 | | { filename: string; use?: boolean; view?: boolean } 11 | | string 12 | | boolean 13 | prefix?: string 14 | styles?: 15 | | { 16 | filename: string 17 | lang?: StylesLang 18 | }[] 19 | | string 20 | | false 21 | } 22 | 23 | export interface OptionsOutput { 24 | filename: string 25 | use: boolean 26 | view: boolean 27 | } 28 | 29 | export interface OptionsStyles { 30 | filename: string 31 | lang: StylesLang 32 | } 33 | 34 | export interface Options { 35 | svgo: Config | false 36 | styles: OptionsStyles[] | false 37 | output: OptionsOutput | false 38 | prefix: string 39 | } 40 | 41 | export interface SvgMapObject { 42 | width: number 43 | height: number 44 | viewBox: number[] 45 | source: string 46 | } 47 | --------------------------------------------------------------------------------