diff --git a/docs/nuxt.config.ts b/docs/nuxt.config.ts index f0b28e03fb..724017871e 100644 --- a/docs/nuxt.config.ts +++ b/docs/nuxt.config.ts @@ -356,6 +356,27 @@ export default defineNuxtConfig({ dir: resolve('./app/assets/icons') }], clientBundle: { + // `ProseCodeIcon` resolves through Nuxt UI's code icon map and falls back to + // `i-vscode-icons-file-type-{extension}`, and `ProsePrompt` hardcodes one logo per + // action. None of them appear in anything `scan` looks at, which is the layer roots, + // so they're left to runtime loading. That is currently broken during SSR + // (nuxt/icon#518), so bundle them by hand until nuxt/icon#527 lands. + icons: [ + 'simple-icons:claude', + 'simple-icons:cursor', + 'simple-icons:windsurf', + 'vscode-icons:file-type-bun', + 'vscode-icons:file-type-css', + 'vscode-icons:file-type-dotenv', + 'vscode-icons:file-type-edge', + 'vscode-icons:file-type-git', + 'vscode-icons:file-type-html', + 'vscode-icons:file-type-npm', + 'vscode-icons:file-type-php', + 'vscode-icons:file-type-pnpm', + 'vscode-icons:file-type-tsconfig', + 'vscode-icons:file-type-yarn' + ], scan: { // `ts` is added because the default glob skips JS/TS for perf, but nav icons // live in `app/composables/*.ts`. The explicit dot pattern is required because diff --git a/docs/package.json b/docs/package.json index 390ab98c3e..d3c941f7bf 100644 --- a/docs/package.json +++ b/docs/package.json @@ -15,7 +15,9 @@ "@comark/vue": "^0.6.2", "@iconify-json/logos": "^1.2.12", "@iconify-json/lucide": "^1.2.122", + "@iconify-json/ph": "^1.2.2", "@iconify-json/simple-icons": "^1.2.93", + "@iconify-json/tabler": "^1.2.38", "@iconify-json/vscode-icons": "^1.2.70", "@nuxt/content": "^3.15.2", "@nuxt/image": "^2.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fe505f95ec..afd48142f9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -339,9 +339,15 @@ importers: '@iconify-json/lucide': specifier: ^1.2.122 version: 1.2.122 + '@iconify-json/ph': + specifier: ^1.2.2 + version: 1.2.2 '@iconify-json/simple-icons': specifier: ^1.2.93 version: 1.2.93 + '@iconify-json/tabler': + specifier: ^1.2.38 + version: 1.2.38 '@iconify-json/vscode-icons': specifier: ^1.2.70 version: 1.2.70 @@ -1518,9 +1524,15 @@ packages: '@iconify-json/lucide@1.2.122': resolution: {integrity: sha512-Dpt+ZbYTyKZqyRkEHmxEcsSsRW9yRTmkaweT2A1hfH7zKHZZ7FKmcn5evTh93ZlkYq2Vpb1YZUBsjc9AxZlcUg==} + '@iconify-json/ph@1.2.2': + resolution: {integrity: sha512-PgkEZNtqa8hBGjHXQa4pMwZa93hmfu8FUSjs/nv4oUU6yLsgv+gh9nu28Kqi8Fz9CCVu4hj1MZs9/60J57IzFw==} + '@iconify-json/simple-icons@1.2.93': resolution: {integrity: sha512-/XhANjfGYOuqvSR3TmUnkQkINvQ4GVjVuukvymRbxtVFBvIq/yiXJqCDycKcQPT401OYT9H2vIY6ihAlz1QIAw==} + '@iconify-json/tabler@1.2.38': + resolution: {integrity: sha512-9v6ooRU/bKOK/Whv4w2aiK5gBnfCV9Ei+uD1iDDeLu2b+EnF3G3ZKkRKWEOOLG8bJyfKn6XEia6gUQ9oO7cF+Q==} + '@iconify-json/vscode-icons@1.2.70': resolution: {integrity: sha512-J5EnIWj9cCPvn0obl88giucgFtNalgBkhML3oHse5MBEU7H7fyezKHhVsfXOuxs7osSfTAoOcXtmbmWUD6rXqw==} @@ -10025,10 +10037,18 @@ snapshots: dependencies: '@iconify/types': 2.0.0 + '@iconify-json/ph@1.2.2': + dependencies: + '@iconify/types': 2.0.0 + '@iconify-json/simple-icons@1.2.93': dependencies: '@iconify/types': 2.0.0 + '@iconify-json/tabler@1.2.38': + dependencies: + '@iconify/types': 2.0.0 + '@iconify-json/vscode-icons@1.2.70': dependencies: '@iconify/types': 2.0.0 diff --git a/src/theme/prose/code-icon.ts b/src/theme/prose/code-icon.ts index a18ef356cb..d58e8b905a 100644 --- a/src/theme/prose/code-icon.ts +++ b/src/theme/prose/code-icon.ts @@ -1,67 +1,67 @@ export default { - 'package.json': 'i-vscode-icons-file-type-node', - 'tsconfig.json': 'i-vscode-icons-file-type-tsconfig', - '.npmrc': 'i-vscode-icons-file-type-npm', '.editorconfig': 'i-vscode-icons-file-type-editorconfig', + '.env': 'i-vscode-icons-file-type-dotenv', + '.env.example': 'i-vscode-icons-file-type-dotenv', + '.eslintignore': 'i-vscode-icons-file-type-eslint', '.eslintrc': 'i-vscode-icons-file-type-eslint', '.eslintrc.cjs': 'i-vscode-icons-file-type-eslint', - '.eslintignore': 'i-vscode-icons-file-type-eslint', - 'eslint.config.js': 'i-vscode-icons-file-type-eslint', - 'eslint.config.mjs': 'i-vscode-icons-file-type-eslint', - 'eslint.config.cjs': 'i-vscode-icons-file-type-eslint', '.gitignore': 'i-vscode-icons-file-type-git', - 'yarn.lock': 'i-vscode-icons-file-type-yarn', - '.env': 'i-vscode-icons-file-type-dotenv', - '.env.example': 'i-vscode-icons-file-type-dotenv', - '.vscode/settings.json': 'i-vscode-icons-file-type-vscode', - 'nuxt': 'i-vscode-icons-file-type-nuxt', - '.nuxtrc': 'i-vscode-icons-file-type-nuxt', + '.npmrc': 'i-vscode-icons-file-type-npm', '.nuxtignore': 'i-vscode-icons-file-type-nuxt', - 'nuxt.config.js': 'i-vscode-icons-file-type-nuxt', - 'nuxt.config.ts': 'i-vscode-icons-file-type-nuxt', - 'nuxt.schema.ts': 'i-vscode-icons-file-type-nuxt', - 'tailwind.config.js': 'i-vscode-icons-file-type-tailwind', - 'tailwind.config.ts': 'i-vscode-icons-file-type-tailwind', - 'vue': 'i-vscode-icons-file-type-vue', - 'ts': 'i-vscode-icons-file-type-typescript', - 'tsx': 'i-vscode-icons-file-type-typescript', - 'mjs': 'i-vscode-icons-file-type-js', + '.nuxtrc': 'i-vscode-icons-file-type-nuxt', + '.vscode/settings.json': 'i-vscode-icons-file-type-vscode', + 'asm': 'i-vscode-icons-file-type-assembly', + 'bicep': 'i-vscode-icons-file-type-bicep', + 'bicepparam': 'i-vscode-icons-file-type-bicep', + 'bun': 'i-vscode-icons-file-type-bun', 'cjs': 'i-vscode-icons-file-type-js', - 'js': 'i-vscode-icons-file-type-js', - 'jsx': 'i-vscode-icons-file-type-js', - 'md': 'i-vscode-icons-file-type-markdown', - 'py': 'i-vscode-icons-file-type-python', 'cs': 'i-vscode-icons-file-type-csharp', - 'asm': 'i-vscode-icons-file-type-assembly', + 'dart': 'i-vscode-icons-file-type-dartlang', + 'deno': 'i-vscode-icons-file-type-deno', + 'erl': 'i-vscode-icons-file-type-erlang', + 'eslint.config.cjs': 'i-vscode-icons-file-type-eslint', + 'eslint.config.js': 'i-vscode-icons-file-type-eslint', + 'eslint.config.mjs': 'i-vscode-icons-file-type-eslint', + 'exs': 'i-vscode-icons-file-type-elixir', 'f': 'i-vscode-icons-file-type-fortran', - 'hs': 'i-vscode-icons-file-type-haskell', 'fs': 'i-vscode-icons-file-type-fsharp', - 'kt': 'i-vscode-icons-file-type-kotlin', - 'rs': 'i-vscode-icons-file-type-rust', - 'rb': 'i-vscode-icons-file-type-ruby', - 'lsp': 'i-vscode-icons-file-type-lisp', - 'ps1': 'i-vscode-icons-file-type-powershell', - 'psd1': 'i-vscode-icons-file-type-powershell', - 'psm1': 'i-vscode-icons-file-type-powershell', - 'go': 'i-vscode-icons-file-type-go', 'gleam': 'i-vscode-icons-file-type-gleam', - 'bicep': 'i-vscode-icons-file-type-bicep', - 'bicepparam': 'i-vscode-icons-file-type-bicep', - 'exs': 'i-vscode-icons-file-type-elixir', - 'erl': 'i-vscode-icons-file-type-erlang', - 'sbt': 'i-vscode-icons-file-type-scala', + 'go': 'i-vscode-icons-file-type-go', 'h': 'i-vscode-icons-file-type-cppheader', + 'hs': 'i-vscode-icons-file-type-haskell', + 'ico': 'i-vscode-icons-file-type-favicon', 'ino': 'i-vscode-icons-file-type-arduino', - 'pl': 'i-vscode-icons-file-type-perl', 'jl': 'i-vscode-icons-file-type-julia', - 'dart': 'i-vscode-icons-file-type-dartlang', - 'ico': 'i-vscode-icons-file-type-favicon', + 'js': 'i-vscode-icons-file-type-js', + 'jsx': 'i-vscode-icons-file-type-js', + 'kt': 'i-vscode-icons-file-type-kotlin', + 'lsp': 'i-vscode-icons-file-type-lisp', + 'md': 'i-vscode-icons-file-type-markdown', + 'mjs': 'i-vscode-icons-file-type-js', 'npm': 'i-vscode-icons-file-type-npm', - 'pnpm': 'i-vscode-icons-file-type-pnpm', 'npx': 'i-vscode-icons-file-type-npm', + 'nuxt': 'i-vscode-icons-file-type-nuxt', + 'nuxt.config.js': 'i-vscode-icons-file-type-nuxt', + 'nuxt.config.ts': 'i-vscode-icons-file-type-nuxt', + 'nuxt.schema.ts': 'i-vscode-icons-file-type-nuxt', + 'package.json': 'i-vscode-icons-file-type-node', + 'pl': 'i-vscode-icons-file-type-perl', + 'pnpm': 'i-vscode-icons-file-type-pnpm', + 'ps1': 'i-vscode-icons-file-type-powershell', + 'psd1': 'i-vscode-icons-file-type-powershell', + 'psm1': 'i-vscode-icons-file-type-powershell', + 'py': 'i-vscode-icons-file-type-python', + 'rb': 'i-vscode-icons-file-type-ruby', + 'rs': 'i-vscode-icons-file-type-rust', + 'sbt': 'i-vscode-icons-file-type-scala', + 'tailwind.config.js': 'i-vscode-icons-file-type-tailwind', + 'tailwind.config.ts': 'i-vscode-icons-file-type-tailwind', + 'terminal': 'i-lucide-terminal', + 'ts': 'i-vscode-icons-file-type-typescript', + 'tsconfig.json': 'i-vscode-icons-file-type-tsconfig', + 'tsx': 'i-vscode-icons-file-type-typescript', + 'vue': 'i-vscode-icons-file-type-vue', 'yarn': 'i-vscode-icons-file-type-yarn', - 'bun': 'i-vscode-icons-file-type-bun', - 'deno': 'i-vscode-icons-file-type-deno', - 'yml': 'i-vscode-icons-file-type-yaml', - 'terminal': 'i-lucide-terminal' + 'yarn.lock': 'i-vscode-icons-file-type-yarn', + 'yml': 'i-vscode-icons-file-type-yaml' }