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/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 08f430475..d6d95462f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -793,7 +793,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