Skip to content

Commit 8dfc2d9

Browse files
committed
Merge remote-tracking branch 'origin/main' into feat/profile-page
2 parents 75db4ae + b6eb04f commit 8dfc2d9

63 files changed

Lines changed: 5319 additions & 205 deletions

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: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ jobs:
1717
chromatic:
1818
name: 📚 Chromatic
1919
runs-on: ubuntu-24.04-arm
20-
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
2120

2221
steps:
2322
- name: ☑️ Checkout
2423
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
2524
with:
2625
fetch-depth: 0
27-
ref: ${{ github.event.pull_request.head.ref || github.ref }}
26+
repository: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
27+
ref: ${{ github.event.pull_request.head.sha || github.sha }}
2828

2929
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
3030
with:
@@ -38,10 +38,8 @@ jobs:
3838
- name: 📦 Install dependencies
3939
run: pnpm install
4040

41-
- name: 🧪 Run Chromatic Visual Tests
41+
- name: 🧪 Run Chromatic Visual and Accessibility Tests
4242
uses: chromaui/action@a8ce9c58f59be5cc7090cadfc8f130fb08fcf0c3 # v15.1.0
43-
with:
44-
projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
4543
env:
4644
CHROMATIC_BRANCH: ${{ github.event.pull_request.head.ref || github.ref_name }}
4745
CHROMATIC_SHA: ${{ github.event.pull_request.head.sha || github.sha }}

app/assets/logos/sponsors/index.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,24 @@ import LogoVercel from './vercel.svg'
22
import LogoVercelLight from './vercel-light.svg'
33
import LogoVoidZero from './void-zero.svg'
44
import LogoVoidZeroLight from './void-zero-light.svg'
5+
import LogoVlt from './vlt.svg'
6+
import LogoVltLight from './vlt-light.svg'
57

68
// The list is used on the about page. To add, simply upload the logos nearby and add an entry here. Prefer SVGs.
79
// For logo src, specify a string or object with the light and dark theme variants.
810
// Prefer original assets from partner sites to keep their brand identity.
911
//
1012
// If there are no original assets and the logo is not universal, you can add only the dark theme variant
1113
// and specify 'auto' for the light one - this will grayscale the logo and invert it in light mode.
14+
// The normalisingIndent is the Y-axis space to visually stabilize favicon-only logos with logotypes that contain long name.
1215
export const SPONSORS = [
1316
{
1417
name: 'Vercel',
1518
logo: {
1619
dark: LogoVercel,
1720
light: LogoVercelLight,
1821
},
22+
normalisingIndent: '0.875rem',
1923
url: 'https://vercel.com/',
2024
},
2125
{
@@ -24,6 +28,16 @@ export const SPONSORS = [
2428
dark: LogoVoidZero,
2529
light: LogoVoidZeroLight,
2630
},
31+
normalisingIndent: '0.875rem',
2732
url: 'https://voidzero.dev/',
2833
},
34+
{
35+
name: 'vlt',
36+
logo: {
37+
dark: LogoVlt,
38+
light: LogoVltLight,
39+
},
40+
normalisingIndent: '0.25rem',
41+
url: 'https://vlt.sh/',
42+
},
2943
]
Lines changed: 1 addition & 0 deletions
Loading

app/assets/logos/sponsors/vlt.svg

Lines changed: 1 addition & 0 deletions
Loading

app/components/About/LogoImg.vue

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,30 @@ const props = defineProps<{
1111
</script>
1212
<template>
1313
<div v-if="typeof src === 'string'">
14-
<img :src="src" loading="lazy" height="36" class="w-auto block h-9" :alt="alt" />
14+
<img :src="src" loading="lazy" height="36" class="w-auto block h-full" :alt="alt" />
1515
</div>
16-
<div v-else-if="src.light === 'auto'">
16+
<div v-else-if="src.light === 'auto'" class="h-full">
1717
<img
1818
:src="src.dark"
1919
loading="lazy"
2020
height="36"
21-
class="w-auto block light:invert light:grayscale h-9"
21+
class="w-auto block light:invert light:grayscale h-full"
2222
:alt="alt"
2323
/>
2424
</div>
25-
<div v-else>
25+
<div v-else class="h-full">
2626
<img
2727
:src="src.dark"
2828
loading="lazy"
2929
height="36"
30-
class="w-auto block light:hidden h-9"
30+
class="w-auto block light:hidden h-full"
3131
:alt="alt"
3232
/>
3333
<img
3434
:src="src.light"
3535
loading="lazy"
3636
height="36"
37-
class="w-auto block hidden light:block h-9"
37+
class="w-auto block hidden light:block h-full"
3838
:alt="alt"
3939
/>
4040
</div>

app/components/About/LogoList.vue

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
type BaseItem = {
33
name: string
44
url: string
5+
normalisingIndent?: string
56
logo:
67
| string
78
| {
@@ -21,14 +22,15 @@ const props = defineProps<{
2122
</script>
2223

2324
<template>
24-
<ul class="flex items-center flex-wrap gap-4 md:gap-x-6 md:gap-y-4 list-none">
25+
<ul class="flex flex-wrap gap-4 md:gap-x-6 md:gap-y-4 list-none">
2526
<li v-for="item in list" :key="item.name">
2627
<a
2728
v-if="'logo' in item"
2829
:href="item.url"
2930
target="_blank"
3031
rel="noopener noreferrer"
31-
class="flex items-center justify-center h-full min-w-11 rounded-md hover:bg-fg/10 transition-colors p-1"
32+
class="relative flex items-center justify-center h-14 min-w-14 rounded-md hover:bg-fg/10 transition-colors p-1"
33+
:style="{ paddingBlock: item.normalisingIndent }"
3234
:aria-label="item.name"
3335
>
3436
<AboutLogoImg :src="item.logo" :alt="item.name" />
@@ -53,7 +55,8 @@ const props = defineProps<{
5355
:href="groupItem.url"
5456
target="_blank"
5557
rel="noopener noreferrer"
56-
class="flex items-center justify-center h-full min-w-10 rounded-md hover:bg-fg/10 transition-colors p-0.5"
58+
class="relative flex items-center justify-center h-10 min-w-10 rounded-md hover:bg-fg/10 transition-colors p-0.5"
59+
:style="{ paddingBlock: groupItem.normalisingIndent }"
5760
:aria-label="groupItem.name"
5861
>
5962
<AboutLogoImg :src="groupItem.logo" :alt="groupItem.name" />

app/components/Button/Base.stories.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export const Disabled: Story = {
3939
export const WithIcon: Story = {
4040
args: {
4141
default: 'Search',
42-
classicon: 'i-carbon:search',
42+
classicon: 'i-lucide:search',
4343
variant: 'secondary',
4444
},
4545
}

app/components/ColumnPicker.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ function handleReset() {
8585
v-if="isOpen"
8686
ref="menuRef"
8787
:id="menuId"
88-
class="absolute top-full inset-ie-0 sm:inset-is-auto sm:inset-ie-0 mt-2 w-60 bg-bg-subtle border border-border rounded-lg shadow-lg z-20"
88+
class="absolute top-full inset-is-auto sm:inset-ie-0 mt-2 w-60 bg-bg-subtle border border-border rounded-lg shadow-lg z-20"
8989
role="group"
9090
:aria-label="$t('filters.columns.show')"
9191
>

app/components/Compare/PackageSelector.vue

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -183,18 +183,12 @@ watch(highlightedIndex, index => {
183183
}
184184
})
185185
186-
const { start, stop } = useTimeoutFn(() => {
187-
isInputFocused.value = false
188-
}, 200)
189-
190-
function handleBlur() {
191-
start()
192-
}
186+
const containerRef = useTemplateRef('containerRef')
193187
194-
function handleFocus() {
195-
stop()
196-
isInputFocused.value = true
197-
}
188+
onClickOutside(containerRef, () => {
189+
isInputFocused.value = false
190+
highlightedIndex.value = -1
191+
})
198192
</script>
199193

200194
<template>
@@ -226,7 +220,7 @@ function handleFocus() {
226220
</div>
227221

228222
<!-- Add package input -->
229-
<div v-if="packages.length < maxPackages" class="relative">
223+
<div v-if="packages.length < maxPackages" ref="containerRef" class="relative">
230224
<div class="relative group flex items-center">
231225
<label for="package-search" class="sr-only">
232226
{{ $t('compare.selector.search_label') }}
@@ -249,8 +243,8 @@ function handleFocus() {
249243
size="medium"
250244
class="w-full min-w-25 ps-7"
251245
aria-autocomplete="list"
252-
@focus="handleFocus"
253-
@blur="handleBlur"
246+
ref="inputRef"
247+
@focus="isInputFocused = true"
254248
@keydown="handleKeydown"
255249
/>
256250
</div>

app/components/Package/ListToolbar.vue

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -157,11 +157,9 @@ function getSortKeyLabelKey(key: SortKey): string {
157157

158158
<div class="flex-1" />
159159

160-
<div
161-
class="flex flex-wrap items-center gap-3 sm:justify-end justify-between w-full sm:w-auto"
162-
>
160+
<div class="flex flex-col sm:flex-row items-start sm:items-center gap-3">
163161
<!-- Sort controls -->
164-
<div class="flex items-center gap-1 shrink-0 order-1 sm:order-1">
162+
<div class="flex items-center gap-1 shrink-0">
165163
<!-- Sort key dropdown -->
166164
<SelectField
167165
:label="$t('filters.sort.label')"
@@ -203,29 +201,15 @@ function getSortKeyLabelKey(key: SortKey): string {
203201
</div>
204202

205203
<!-- View mode toggle - mobile (left side, row 2) -->
206-
<div class="flex sm:hidden items-center gap-1 order-2">
207-
<ViewModeToggle v-model="viewMode" />
208-
</div>
209-
210-
<!-- Column picker - mobile (right side, row 2) -->
211-
<ColumnPicker
212-
v-if="viewMode === 'table'"
213-
class="flex sm:hidden order-3"
214-
:columns="columns"
215-
@toggle="emit('toggleColumn', $event)"
216-
@reset="emit('resetColumns')"
217-
/>
218-
219-
<!-- View mode toggle + Column picker - desktop (right side, row 1) -->
220-
<div class="hidden sm:flex items-center gap-1 order-2">
221-
<ViewModeToggle v-model="viewMode" />
222-
204+
<div class="flex flex-row-reverse sm:flex-row items-center gap-1">
223205
<ColumnPicker
224206
v-if="viewMode === 'table'"
225207
:columns="columns"
226208
@toggle="emit('toggleColumn', $event)"
227209
@reset="emit('resetColumns')"
228210
/>
211+
212+
<ViewModeToggle v-model="viewMode" />
229213
</div>
230214
</div>
231215
</div>

0 commit comments

Comments
 (0)