Skip to content

Commit ef9f8c1

Browse files
committed
Merge remote-tracking branch 'origin/main' into feat/concept-npm-requests
# Conflicts: # app/composables/useNpmRegistry.ts # app/utils/package-name.ts
2 parents 6f4c2e7 + d7ffd34 commit ef9f8c1

74 files changed

Lines changed: 1157 additions & 517 deletions

Some content is hidden

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

CONTRIBUTING.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -409,10 +409,10 @@ describe('featureName', () => {
409409
410410
### Component accessibility tests
411411

412-
All new components should have a basic accessibility test in `test/nuxt/components.spec.ts`. These tests use [axe-core](https://github.com/dequelabs/axe-core) to catch common accessibility violations.
412+
All Vue components should have accessibility tests in `test/nuxt/a11y.spec.ts`. These tests use [axe-core](https://github.com/dequelabs/axe-core) to catch common accessibility violations and run in a real browser environment via Playwright.
413413

414414
```typescript
415-
import MyComponent from '~/components/MyComponent.vue'
415+
import { MyComponent } from '#components'
416416

417417
describe('MyComponent', () => {
418418
it('should have no accessibility violations', async () => {
@@ -429,6 +429,8 @@ describe('MyComponent', () => {
429429

430430
The `runAxe` helper handles DOM isolation and disables page-level rules that don't apply to isolated component testing.
431431

432+
A coverage test in `test/unit/a11y-component-coverage.spec.ts` ensures all components are either tested or explicitly skipped with justification. When you add a new component, this test will fail until you add accessibility tests for it.
433+
432434
> [!IMPORTANT]
433435
> Just because axe-core doesn't find any obvious issues, it does not mean a component is accessible. Please do additional checks and use best practices.
434436

app/components/AppHeader.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ onKeyStroke(
138138
:class="{ 'hidden sm:flex': !isSearchExpanded }"
139139
>
140140
<!-- Search bar (hidden on mobile unless expanded) -->
141-
<SearchBox
141+
<HeaderSearchBox
142142
ref="searchBoxRef"
143143
:inputClass="isSearchExpanded ? 'w-full' : ''"
144144
:class="{ 'max-w-md': !isSearchExpanded }"
@@ -217,6 +217,6 @@ onKeyStroke(
217217
</nav>
218218

219219
<!-- Mobile menu -->
220-
<MobileMenu v-model:open="showMobileMenu" />
220+
<HeaderMobileMenu v-model:open="showMobileMenu" />
221221
</header>
222222
</template>

app/components/AuthButton.client.vue

Lines changed: 0 additions & 18 deletions
This file was deleted.

app/components/AuthButton.server.vue

Lines changed: 0 additions & 10 deletions
This file was deleted.

app/components/AuthButton.vue

Lines changed: 0 additions & 18 deletions
This file was deleted.

app/components/ColumnPicker.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ function handleReset() {
117117
<span class="text-sm text-fg-muted font-mono flex-1">
118118
{{ getColumnLabel(column.id) }}
119119
</span>
120-
<AppTooltip
120+
<TooltipApp
121121
v-if="column.disabled"
122122
:id="`${column.id}-disabled-reason`"
123123
class="text-fg-subtle"
@@ -127,7 +127,7 @@ function handleReset() {
127127
<span class="size-4 flex justify-center items-center text-xs border rounded-full"
128128
>i</span
129129
>
130-
</AppTooltip>
130+
</TooltipApp>
131131
</label>
132132
</div>
133133

0 commit comments

Comments
 (0)