diff --git a/.github/workflows/lucide-svelte-5.yml b/.github/workflows/lucide-svelte-5.yml index 64863d714..556f44bfb 100644 --- a/.github/workflows/lucide-svelte-5.yml +++ b/.github/workflows/lucide-svelte-5.yml @@ -41,3 +41,19 @@ jobs: - name: Test run: pnpm --filter @lucide/svelte test + + typecheck: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v6 + with: + cache: 'pnpm' + node-version-file: 'package.json' + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Test + run: pnpm --filter @lucide/svelte typecheck diff --git a/README.md b/README.md index 1d2ea701c..ab0c51018 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,16 @@ Thank you to all the people who contributed to Lucide! DigitalOcean Referral Badge +[//]: <> (Open Collective backers) ### Awesome backers 🍺 -pdfme sponsor badge -Fina Money sponsor badge +pdfme – Open-source PDF generation library built with TypeScript and React. +Pax Historia – An alternate history sandbox game + +### Backers ☕ + +Fina Money – Modular Finance Tracker + +### Other contributors 💸 + +You can find all our past and non-recurring financial contributors at [our Open Collective page](https://opencollective.com/lucide-icons). diff --git a/docs/.vitepress/theme/components/base/Input.vue b/docs/.vitepress/theme/components/base/Input.vue index 33134c9b9..1bac147ba 100644 --- a/docs/.vitepress/theme/components/base/Input.vue +++ b/docs/.vitepress/theme/components/base/Input.vue @@ -35,6 +35,8 @@ const updateShortcutSpacing = () => { }); }; +const isMac = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform); + onMounted(updateShortcutSpacing); watch(() => props.shortcut, updateShortcutSpacing); @@ -73,6 +75,7 @@ defineExpose({ v-if="type === 'search' && modelValue" class="clear-button" aria-label="Clear input" + :style="{ right: isMac ? '50px' : '68px' }" > diff --git a/docs/public/sponsors/paxhistoria.svg b/docs/public/sponsors/paxhistoria.svg new file mode 100644 index 000000000..8ad7999ad --- /dev/null +++ b/docs/public/sponsors/paxhistoria.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/icons/printer-x.json b/icons/printer-x.json new file mode 100644 index 000000000..bcb10a91d --- /dev/null +++ b/icons/printer-x.json @@ -0,0 +1,22 @@ +{ + "$schema": "../icon.schema.json", + "contributors": [ + "colebemis", + "csandman", + "ericfennis", + "jguddas", + "lt25106" + ], + "tags": [ + "fax", + "office", + "device", + "cross", + "cancel", + "remove", + "error" + ], + "categories": [ + "devices" + ] +} diff --git a/icons/printer-x.svg b/icons/printer-x.svg new file mode 100644 index 000000000..557f314b7 --- /dev/null +++ b/icons/printer-x.svg @@ -0,0 +1,17 @@ + + + + + + + diff --git a/package.json b/package.json index 31b44d1fe..dc10fd703 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "addjsons": "node ./scripts/addMissingIconJsonFiles.mts", "checkIcons": "node ./scripts/checkIconsAndCategories.mts", "generate:changelog": "node ./scripts/generateChangelog.mts", + "generate:backers": "node scripts/updateOpenCollectiveBackers.mts", "generate:contributors": "node ./scripts/updateContributors.mts icons/*.svg", "generate:nextJSAliases": "node ./scripts/generateNextJSAliases.mts", "suggest:tags": "node ./scripts/suggestTags.mts", diff --git a/packages/astro/README.md b/packages/astro/README.md index e5dd39c64..ee104b6cb 100644 --- a/packages/astro/README.md +++ b/packages/astro/README.md @@ -68,7 +68,16 @@ Lucide is licensed under the ISC license. See [LICENSE](https://lucide.dev/licen DigitalOcean Referral Badge +[//]: <> (Open Collective backers) ### Awesome backers 🍺 -Scipress sponsor badge -pdfme sponsor badge +pdfme – Open-source PDF generation library built with TypeScript and React. +Pax Historia – An alternate history sandbox game + +### Backers ☕ + +Fina Money – Modular Finance Tracker + +### Other contributors 💸 + +You can find all our past and non-recurring financial contributors at [our Open Collective page](https://opencollective.com/lucide-icons). diff --git a/packages/lucide-angular/README.md b/packages/lucide-angular/README.md index 729588e2d..412ca7614 100644 --- a/packages/lucide-angular/README.md +++ b/packages/lucide-angular/README.md @@ -67,7 +67,16 @@ Lucide is licensed under the ISC license. See [LICENSE](https://lucide.dev/licen DigitalOcean Referral Badge +[//]: <> (Open Collective backers) ### Awesome backers 🍺 -Scipress sponsor badge -pdfme sponsor badge +pdfme – Open-source PDF generation library built with TypeScript and React. +Pax Historia – An alternate history sandbox game + +### Backers ☕ + +Fina Money – Modular Finance Tracker + +### Other contributors 💸 + +You can find all our past and non-recurring financial contributors at [our Open Collective page](https://opencollective.com/lucide-icons). diff --git a/packages/lucide-preact/README.md b/packages/lucide-preact/README.md index 0bca38c27..caaf88c9f 100644 --- a/packages/lucide-preact/README.md +++ b/packages/lucide-preact/README.md @@ -67,7 +67,16 @@ Lucide is licensed under the ISC license. See [LICENSE](https://lucide.dev/licen DigitalOcean Referral Badge +[//]: <> (Open Collective backers) ### Awesome backers 🍺 -Scipress sponsor badge -pdfme sponsor badge +pdfme – Open-source PDF generation library built with TypeScript and React. +Pax Historia – An alternate history sandbox game + +### Backers ☕ + +Fina Money – Modular Finance Tracker + +### Other contributors 💸 + +You can find all our past and non-recurring financial contributors at [our Open Collective page](https://opencollective.com/lucide-icons). diff --git a/packages/lucide-react-native/README.md b/packages/lucide-react-native/README.md index eef0a6322..33b43966d 100644 --- a/packages/lucide-react-native/README.md +++ b/packages/lucide-react-native/README.md @@ -67,7 +67,16 @@ Lucide is licensed under the ISC license. See [LICENSE](https://lucide.dev/licen DigitalOcean Referral Badge +[//]: <> (Open Collective backers) ### Awesome backers 🍺 -Scipress sponsor badge -pdfme sponsor badge +pdfme – Open-source PDF generation library built with TypeScript and React. +Pax Historia – An alternate history sandbox game + +### Backers ☕ + +Fina Money – Modular Finance Tracker + +### Other contributors 💸 + +You can find all our past and non-recurring financial contributors at [our Open Collective page](https://opencollective.com/lucide-icons). diff --git a/packages/lucide-react/README.md b/packages/lucide-react/README.md index 8d02efe96..b0a625a3f 100644 --- a/packages/lucide-react/README.md +++ b/packages/lucide-react/README.md @@ -67,7 +67,16 @@ Lucide is licensed under the ISC license. See [LICENSE](https://lucide.dev/licen DigitalOcean Referral Badge +[//]: <> (Open Collective backers) ### Awesome backers 🍺 -Scipress sponsor badge -pdfme sponsor badge +pdfme – Open-source PDF generation library built with TypeScript and React. +Pax Historia – An alternate history sandbox game + +### Backers ☕ + +Fina Money – Modular Finance Tracker + +### Other contributors 💸 + +You can find all our past and non-recurring financial contributors at [our Open Collective page](https://opencollective.com/lucide-icons). diff --git a/packages/lucide-solid/README.md b/packages/lucide-solid/README.md index 0c9a8a62f..9cbd6cf5e 100644 --- a/packages/lucide-solid/README.md +++ b/packages/lucide-solid/README.md @@ -67,7 +67,16 @@ Lucide is licensed under the ISC license. See [LICENSE](https://lucide.dev/licen DigitalOcean Referral Badge +[//]: <> (Open Collective backers) ### Awesome backers 🍺 -Scipress sponsor badge -pdfme sponsor badge +pdfme – Open-source PDF generation library built with TypeScript and React. +Pax Historia – An alternate history sandbox game + +### Backers ☕ + +Fina Money – Modular Finance Tracker + +### Other contributors 💸 + +You can find all our past and non-recurring financial contributors at [our Open Collective page](https://opencollective.com/lucide-icons). diff --git a/packages/lucide-static/README.md b/packages/lucide-static/README.md index 41f3434d2..9abb24382 100644 --- a/packages/lucide-static/README.md +++ b/packages/lucide-static/README.md @@ -81,7 +81,16 @@ Lucide is licensed under the ISC license. See [LICENSE](https://lucide.dev/licen DigitalOcean Referral Badge +[//]: <> (Open Collective backers) ### Awesome backers 🍺 -Scipress sponsor badge -pdfme sponsor badge +pdfme – Open-source PDF generation library built with TypeScript and React. +Pax Historia – An alternate history sandbox game + +### Backers ☕ + +Fina Money – Modular Finance Tracker + +### Other contributors 💸 + +You can find all our past and non-recurring financial contributors at [our Open Collective page](https://opencollective.com/lucide-icons). diff --git a/packages/lucide-svelte/README.md b/packages/lucide-svelte/README.md index 6ca96ea77..d9d6f79b5 100644 --- a/packages/lucide-svelte/README.md +++ b/packages/lucide-svelte/README.md @@ -67,7 +67,16 @@ Lucide is licensed under the ISC license. See [LICENSE](https://lucide.dev/licen DigitalOcean Referral Badge +[//]: <> (Open Collective backers) ### Awesome backers 🍺 -Scipress sponsor badge -pdfme sponsor badge +pdfme – Open-source PDF generation library built with TypeScript and React. +Pax Historia – An alternate history sandbox game + +### Backers ☕ + +Fina Money – Modular Finance Tracker + +### Other contributors 💸 + +You can find all our past and non-recurring financial contributors at [our Open Collective page](https://opencollective.com/lucide-icons). diff --git a/packages/lucide-vue-next/README.md b/packages/lucide-vue-next/README.md index ad4c3e7ed..782cd7b44 100644 --- a/packages/lucide-vue-next/README.md +++ b/packages/lucide-vue-next/README.md @@ -67,7 +67,16 @@ Lucide is licensed under the ISC license. See [LICENSE](https://lucide.dev/licen DigitalOcean Referral Badge +[//]: <> (Open Collective backers) ### Awesome backers 🍺 -Scipress sponsor badge -pdfme sponsor badge +pdfme – Open-source PDF generation library built with TypeScript and React. +Pax Historia – An alternate history sandbox game + +### Backers ☕ + +Fina Money – Modular Finance Tracker + +### Other contributors 💸 + +You can find all our past and non-recurring financial contributors at [our Open Collective page](https://opencollective.com/lucide-icons). diff --git a/packages/lucide-vue/README.md b/packages/lucide-vue/README.md index 447029d15..4a117bfa7 100644 --- a/packages/lucide-vue/README.md +++ b/packages/lucide-vue/README.md @@ -71,7 +71,16 @@ Lucide is licensed under the ISC license. See [LICENSE](https://lucide.dev/licen DigitalOcean Referral Badge +[//]: <> (Open Collective backers) ### Awesome backers 🍺 -Scipress sponsor badge -pdfme sponsor badge +pdfme – Open-source PDF generation library built with TypeScript and React. +Pax Historia – An alternate history sandbox game + +### Backers ☕ + +Fina Money – Modular Finance Tracker + +### Other contributors 💸 + +You can find all our past and non-recurring financial contributors at [our Open Collective page](https://opencollective.com/lucide-icons). diff --git a/packages/lucide/README.md b/packages/lucide/README.md index d034cd2c1..9ace2f6ff 100644 --- a/packages/lucide/README.md +++ b/packages/lucide/README.md @@ -77,7 +77,16 @@ Lucide is licensed under the ISC license. See [LICENSE](https://lucide.dev/licen DigitalOcean Referral Badge +[//]: <> (Open Collective backers) ### Awesome backers 🍺 -Scipress sponsor badge -pdfme sponsor badge +pdfme – Open-source PDF generation library built with TypeScript and React. +Pax Historia – An alternate history sandbox game + +### Backers ☕ + +Fina Money – Modular Finance Tracker + +### Other contributors 💸 + +You can find all our past and non-recurring financial contributors at [our Open Collective page](https://opencollective.com/lucide-icons). diff --git a/packages/svelte/README.md b/packages/svelte/README.md index 806eb3fa1..42c2a6736 100644 --- a/packages/svelte/README.md +++ b/packages/svelte/README.md @@ -67,7 +67,16 @@ Lucide is licensed under the ISC license. See [LICENSE](https://lucide.dev/licen DigitalOcean Referral Badge +[//]: <> (Open Collective backers) ### Awesome backers 🍺 -Scipress sponsor badge -pdfme sponsor badge +pdfme – Open-source PDF generation library built with TypeScript and React. +Pax Historia – An alternate history sandbox game + +### Backers ☕ + +Fina Money – Modular Finance Tracker + +### Other contributors 💸 + +You can find all our past and non-recurring financial contributors at [our Open Collective page](https://opencollective.com/lucide-icons). diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 6eac83f31..4472a6b9c 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -46,7 +46,7 @@ "dist" ], "scripts": { - "build": "pnpm clean && pnpm copy:license && pnpm build:icons && pnpm build:package && pnpm build:license", + "build": "pnpm clean && pnpm copy:license && pnpm copy:utils && pnpm build:icons && pnpm build:package && pnpm build:license", "copy:license": "cp ../../LICENSE ./LICENSE", "copy:utils": "mkdir -p ./src/utils && cp -rf ../../packages/shared/src/utils/hasA11yProp.ts ./src/utils/", "clean": "rm -rf dist stats ./src/icons/*.{ts,svelte} ./src/aliases/{aliases,prefixed,suffixed}.ts", @@ -55,6 +55,7 @@ "build:license": "node ./scripts/appendBlockComments.mts", "test": "pnpm copy:license && pnpm copy:utils && pnpm build:icons && vitest run", "test:watch": "vitest watch", + "typecheck": "pnpm copy:license && pnpm copy:utils && pnpm build:icons && svelte-check --tsconfig ./tsconfig.json", "version": "pnpm version --git-tag-version=false" }, "devDependencies": { @@ -68,7 +69,7 @@ "jest-serializer-html": "^7.1.0", "jsdom": "^20.0.3", "svelte": "^5.38.6", - "svelte-check": "^4.3.1", + "svelte-check": "^4.3.4", "svelte-preprocess": "^6.0.3", "typescript": "^5.8.3", "vite": "^6.3.6", diff --git a/packages/svelte/src/types.ts b/packages/svelte/src/types.ts index 0ba16d9f1..407c976fc 100644 --- a/packages/svelte/src/types.ts +++ b/packages/svelte/src/types.ts @@ -13,6 +13,7 @@ export interface IconProps extends Attrs { absoluteStrokeWidth?: boolean; iconNode?: IconNode; children?: Snippet; + title?: string; } export type IconEvents = { diff --git a/packages/svelte/tests/TestSlots.svelte b/packages/svelte/tests/TestSlots.svelte index a93f05991..b82f27827 100644 --- a/packages/svelte/tests/TestSlots.svelte +++ b/packages/svelte/tests/TestSlots.svelte @@ -1,7 +1,10 @@ - + Test diff --git a/packages/svelte/tests/TestSlotsTitle.svelte b/packages/svelte/tests/TestSlotsTitle.svelte index f6418004f..dd6122d41 100644 --- a/packages/svelte/tests/TestSlotsTitle.svelte +++ b/packages/svelte/tests/TestSlotsTitle.svelte @@ -1,7 +1,10 @@ - + Air conditioning diff --git a/packages/svelte/tsconfig.json b/packages/svelte/tsconfig.json index 8d1b2f88f..3ef7dda35 100644 --- a/packages/svelte/tsconfig.json +++ b/packages/svelte/tsconfig.json @@ -12,4 +12,5 @@ "types": ["@testing-library/jest-dom"], }, "include": ["src/**/*.d.ts", "src/**/*.ts", "src/**/*.js", "src/**/*.svelte", "tests/**/*.ts"], + "exclude": ["tests/setupVitest.ts"], } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c85b985d6..a98d268a6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -790,7 +790,7 @@ importers: specifier: ^5.38.6 version: 5.43.14 svelte-check: - specifier: ^4.3.1 + specifier: ^4.3.4 version: 4.3.4(picomatch@4.0.3)(svelte@5.43.14)(typescript@5.9.3) svelte-preprocess: specifier: ^6.0.3 diff --git a/scripts/updateOpenCollectiveBackers.mts b/scripts/updateOpenCollectiveBackers.mts new file mode 100644 index 000000000..f01b0fffd --- /dev/null +++ b/scripts/updateOpenCollectiveBackers.mts @@ -0,0 +1,34 @@ +import { readdirSync } from 'node:fs'; +import { join } from 'node:path'; +import { existsSync, readFileSync, writeFileSync } from 'fs'; + +function updateOpenCollectiveBackers() { + const packagesPath = join(import.meta.dirname, '../packages'); + const mainReadme = readFileSync(join(import.meta.dirname, '../README.md'), 'utf8'); + const awesomeRegex = /(\[\/\/]: <> \(Open Collective backers\).+)$/s; + const awesomeBlock = awesomeRegex.exec(mainReadme); + if (awesomeBlock?.[1]) { + const packageAwesomeBlock = awesomeBlock[1].replaceAll('src="docs/public/sponsors', 'src="https://lucide.dev/sponsors') + readdirSync(packagesPath).forEach((packagePath) => { + if (['lucide-figma', 'shared'].includes(packagePath) || packagePath.startsWith('.')) { + return; + } + const readmePath = join(packagesPath, packagePath, 'README.md'); + if (existsSync(readmePath)) { + const readmeContent = readFileSync(readmePath, 'utf8'); + if (awesomeRegex.test(readmeContent)) { + writeFileSync(readmePath, readmeContent.replace(awesomeRegex, packageAwesomeBlock)); + console.log(`Upgraded Awesome backers block in ${readmePath}`); + } else { + console.error(`Could not find Awesome backers block in ${readmePath}`) + } + } else { + console.warn(`No readme found at ${readmePath}`); + } + }) + } else { + console.error('Could not identify Awesome backers block') + } +} + +updateOpenCollectiveBackers();