Skip to content

Commit 1f8c4d4

Browse files
committed
Merge branch 'main' of https://github.com/alex-key/npmx.dev into fix/some-shortkeys-work-when-disabled-in-settings
2 parents 2aec902 + 3f867d9 commit 1f8c4d4

121 files changed

Lines changed: 7974 additions & 705 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/chromatic.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
with:
3131
node-version: lts/*
3232

33-
- uses: pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c # 1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
33+
- uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # 4e1c8eafbd745f64b1ef30a7d7ed7965034c486c
3434
name: 🟧 Install pnpm
3535
with:
3636
cache: true

.github/workflows/semantic-pull-requests.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ jobs:
2424
with:
2525
scopes: |
2626
a11y
27+
blog
2728
deps
2829
docs
2930
cli

.storybook/main.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,16 @@ const config = {
88
backgrounds: false,
99
},
1010
async viteFinal(config) {
11+
config.plugins ??= []
12+
13+
config.plugins.push({
14+
name: 'ignore-internals',
15+
transform(_, id) {
16+
if (id.includes('/app/pages/blog/') && id.endsWith('.md')) {
17+
return 'export default {}'
18+
}
19+
},
20+
})
1121
// Replace the built-in vue-docgen plugin with a fault-tolerant version.
1222
// vue-docgen-api can crash on components that import types from other
1323
// .vue files (it tries to parse the SFC with @babel/parser as plain TS).

CONTRIBUTING.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,11 @@ shared/ # Shared between app and server
179179
└── types/ # TypeScript type definitions
180180
181181
cli/ # Local connector CLI (separate workspace)
182+
182183
test/ # Vitest tests
183184
├── unit/ # Unit tests (*.spec.ts)
184-
── nuxt/ # Nuxt component tests
185-
tests/ # Playwright E2E tests
185+
── nuxt/ # Nuxt component tests
186+
└── e2e/ # Playwright E2E tests
186187
```
187188

188189
> [!TIP]
@@ -465,6 +466,7 @@ The following scripts help manage translation files. `en.json` is the reference
465466
| `pnpm i18n:check:fix [locale]` | Same as check, but adds missing keys to other locales with English placeholders. |
466467
| `pnpm i18n:report` | Audits translation keys against code usage in `.vue` and `.ts` files. Reports missing keys (used in code but not in locale), unused keys (in locale but not in code), and dynamic keys. |
467468
| `pnpm i18n:report:fix` | Removes unused keys from `en.json` and all other locale files. |
469+
| `pnpm i18n:schema` | Generates a JSON Schema from `en.json` at `i18n/schema.json`. Locale files reference this schema for IDE validation and autocompletion. |
468470

469471
### Adding a new locale
470472

@@ -1031,7 +1033,7 @@ Format: `type(scope): description`
10311033
10321034
**Types:** `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `build`, `ci`, `chore`, `revert`
10331035
1034-
**Scopes (optional):** `docs`, `i18n`, `deps`
1036+
**Scopes (optional):** `a11y`, `blog`, `deps`, `docs`, `cli`, `i18n`, `ui`
10351037
10361038
**Examples:**
10371039

app/app.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,10 @@ if (import.meta.client) {
129129

130130
<AppHeader :show-logo="!isHomepage" />
131131

132+
<NuxtRouteAnnouncer v-slot="{ message }">
133+
{{ route.name === 'search' ? `${$t('search.title_packages')} - npmx` : message }}
134+
</NuxtRouteAnnouncer>
135+
132136
<div id="main-content" class="flex-1 flex flex-col" tabindex="-1">
133137
<NuxtPage />
134138
</div>

app/assets/logos/sponsors/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export const SPONSORS = [
3737
dark: LogoVlt,
3838
light: LogoVltLight,
3939
},
40-
normalisingIndent: '0.25rem',
40+
normalisingIndent: '0.875rem',
4141
url: 'https://vlt.sh/',
4242
},
4343
]
Lines changed: 12 additions & 1 deletion
Loading

app/assets/logos/sponsors/vlt.svg

Lines changed: 12 additions & 1 deletion
Loading

app/components/AppFooter.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ const closeModal = () => modalRef.value?.close?.()
2525
<LinkBase :to="{ name: 'about' }">
2626
{{ $t('footer.about') }}
2727
</LinkBase>
28+
<LinkBase :to="{ name: 'blog' }">
29+
{{ $t('footer.blog') }}
30+
</LinkBase>
2831
<LinkBase :to="{ name: 'privacy' }">
2932
{{ $t('privacy_policy.title') }}
3033
</LinkBase>

app/components/AppHeader.vue

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,14 @@ const mobileLinks = computed<NavigationConfigWithGroups>(() => [
5959
external: false,
6060
iconClass: 'i-lucide:info',
6161
},
62+
{
63+
name: 'Blog',
64+
label: $t('footer.blog'),
65+
to: { name: 'blog' },
66+
type: 'link',
67+
external: false,
68+
iconClass: 'i-lucide:notebook-pen',
69+
},
6270
{
6371
name: 'Privacy Policy',
6472
label: $t('privacy_policy.title'),
@@ -205,9 +213,9 @@ onKeyStroke(
205213
v-if="!isSearchExpanded && !isOnHomePage"
206214
to="/"
207215
:aria-label="$t('header.home')"
208-
class="sm:hidden flex-shrink-0 font-mono text-lg font-medium text-fg hover:text-fg transition-colors duration-200 focus-ring"
216+
class="sm:hidden flex-shrink-0 font-mono text-lg font-medium text-fg hover:text-fg transition-colors duration-200 focus-ring me-4"
209217
>
210-
<AppLogo class="w-8 h-8 rounded-lg" />
218+
<AppMark class="w-6 h-auto" />
211219
</NuxtLink>
212220

213221
<!-- Desktop: Logo (navigates home) -->
@@ -216,13 +224,12 @@ onKeyStroke(
216224
:to="{ name: 'index' }"
217225
:aria-label="$t('header.home')"
218226
dir="ltr"
219-
class="relative inline-flex items-center gap-1 header-logo font-mono text-lg font-medium text-fg hover:text-fg/90 transition-colors duration-200 rounded"
227+
class="relative inline-flex items-center gap-1 py-2 header-logo font-mono text-lg font-medium text-fg hover:text-fg/90 transition-colors duration-200 me-4"
220228
>
221-
<AppLogo class="w-7 h-7 rounded-lg" />
222-
<span class="pb-0.5">npmx</span>
229+
<AppLogo class="h-4.5 w-auto" />
223230
<span
224231
aria-hidden="true"
225-
class="scale-35 transform-origin-br font-mono tracking-wide text-accent absolute bottom-0.5 -inset-ie-1"
232+
class="scale-35 transform-origin-br font-mono tracking-wide text-accent absolute bottom-0.75 -inset-ie-1"
226233
>
227234
{{ env === 'release' ? 'alpha' : env }}
228235
</span>

0 commit comments

Comments
 (0)