Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
0b7e4a2
feat: add more patterns to unnecessary files hints (#3050)
gameroman Jul 17, 2026
019d923
fix(i18n): update nepali translations (#3059)
whoisanku Jul 19, 2026
51474c3
feat: persist timeline chart metric in URL (#3051)
graphieros Jul 19, 2026
1aba280
chore: upgrade to pnpm 11.15.0 (#3060)
serhalp Jul 19, 2026
7c506b5
refactor: replace semver with verkit (#3061)
sxzz Jul 19, 2026
3e7684f
fix(i18n): add missing translation key for noodles 404 (#3065)
igorskyflyer Jul 22, 2026
b9fa082
feat: add "create new account" button to PDS page (#3022)
ascorbic Jul 22, 2026
fdced36
feat(ui): add direct links to sponsorship tiers (#3036)
BittuBarnwal7479 Jul 22, 2026
356d93f
fix(ui): use clearer icon for indicating outdated deps (#2883)
typed-sigterm Jul 22, 2026
0762e7a
fix: avoid user package hydration mismatch (#2981)
liangmiQwQ Jul 22, 2026
32c00cd
fix: add likes leaderboard and noodles to robots.txt (#3054)
MaxwellCohen Jul 22, 2026
dcd0a76
feat: increase text and interactive elems contrast (#2621)
alexdln Jul 22, 2026
bde3efc
fix: support shorthand git provider URLs (#3068)
gameroman Jul 22, 2026
a64a929
chore: bump module-replacements (#3073)
43081j Jul 23, 2026
9da2735
feat: add noodle for national gif day (#3067)
MatteoGabriele Jul 24, 2026
048045a
chore: update coderrabit url (#3074)
patak-cat Jul 24, 2026
7a3d866
fix(ui): render only the selected terminal command (#3023)
juninhokaponne Jul 24, 2026
7c65c4f
fix: repo stars button should take you to repo homepage for now (#3071)
juninhokaponne Jul 24, 2026
cac7199
feat(ui): add easy way to copy package version (#3044)
WilhelmBerggren Jul 24, 2026
0690eef
refactor: make gif day noodle last 3 days (#3076)
MatteoGabriele Jul 25, 2026
2c78c40
fix(i18n): added missing RU translations (#3083)
nikelborm Jul 25, 2026
351b245
fix(ui): prevent facet label wrapping to fix info icon alignment (#3089)
coder-tejas Jul 28, 2026
33d3592
fix: use valid rule names in oxlint disable comments (#3086)
btea Jul 28, 2026
9d65f44
chore(deps): update verkit dependency to v0.3.1 (#3093)
gameroman Jul 29, 2026
939b59f
fix: pluralization of dependencies change alert message (#3097)
idkarn Jul 29, 2026
d0dafcf
fix: outdated dependencies icon not shown (#3099)
gameroman Jul 29, 2026
9ecfb1c
chore: remove unused version utils (#3096)
gameroman Jul 29, 2026
68b35fe
fix: use `arg_<index>` for anonymous doc parameters (#3087)
KazariAI Jul 30, 2026
5416b99
fix: clear modal input and error state on close (#3091)
iiio2 Jul 30, 2026
d727566
feat(ui): added support for Effect.ts playground links (#3082)
nikelborm Jul 30, 2026
d024e03
fix: user profile open graph image showing zero packages (#3085)
WilhelmBerggren Jul 31, 2026
32770c0
fix: docs tab repeats the package name twice in the header (#3101)
WilhelmBerggren Jul 31, 2026
190bafb
chore: add 'code.haverbeke.berlin' to forgejo hosts list (#3095)
WilcoSp Jul 31, 2026
f9c30c8
chore(deps): update actions/stale action to v11 (#3104)
renovate[bot] Jul 31, 2026
a468a65
fix: prioritize exact matches in Algolia search (#3103)
anilloutombam Jul 31, 2026
e951b5f
chore(deps): update all linters (#3105)
renovate[bot] Jul 31, 2026
0a6de95
chore: adopt `typescript-native-bridge` (#3088)
KazariAI Aug 2, 2026
657f8f3
fix: preserve search results during preference hydration (#3109)
anilloutombam Aug 2, 2026
a40f0ad
chore(deps): update all non-major dependencies (#3107)
renovate[bot] Aug 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/autofix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
runs-on: ubuntu-24.04-arm

steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/chromatic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:

steps:
- name: ☑️ Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
repository: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
Expand All @@ -34,7 +34,7 @@ jobs:
sfw: true

- name: 🧪 Run Chromatic Visual and Accessibility Tests
uses: chromaui/action@94713c544284a14195de3b50ef24301579f1877e # v18.0.1
uses: chromaui/action@14cfaef73576e69f95f47f60058063f46ca38719 # v18.1.0
with:
buildCommand: vp run build-storybook
outputDir: storybook-static
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
runs-on: ubuntu-24.04-arm

steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

Expand All @@ -46,7 +46,7 @@ jobs:
runs-on: ubuntu-24.04-arm

steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

Expand All @@ -64,7 +64,7 @@ jobs:
runs-on: ubuntu-24.04-arm

steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

Expand Down Expand Up @@ -103,7 +103,7 @@ jobs:
runs-on: ubuntu-24.04-arm

steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

Expand Down Expand Up @@ -144,10 +144,10 @@ jobs:
name: 🖥️ Browser tests
runs-on: ubuntu-24.04-arm
container:
image: mcr.microsoft.com/playwright:v1.61.1-noble@sha256:5b8f294aff9041b7191c34a4bab3ac270157a28774d4b0660e9743297b697e48
image: mcr.microsoft.com/playwright:v1.62.1-noble@sha256:dcc5531e97840b9b5e794f2814476b21571c5124a3fca2267d73041f56e7580e

steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

Expand Down Expand Up @@ -188,7 +188,7 @@ jobs:
mode: [dark, light]

steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

Expand All @@ -212,7 +212,7 @@ jobs:
runs-on: ubuntu-24.04-arm

steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

Expand All @@ -230,7 +230,7 @@ jobs:
runs-on: ubuntu-24.04-arm

steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dependency-diff.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
runs-on: ubuntu-slim

steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
persist-credentials: false
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy-canary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
name: 🚀 Deploy to canary (main.npmx.dev)
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
fetch-depth: 2
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lunaria.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
# Necessary for Lunaria to work properly
# Makes the action clone the entire git history
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/mirror-tangled.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
runs-on: ubuntu-24.04-arm

steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
persist-credentials: false
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
pull-requests: write # create or update the release pull request

steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
persist-credentials: false
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release-tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
skipped: ${{ steps.check.outputs.skip }}

steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
persist-credentials: true
Expand Down Expand Up @@ -100,7 +100,7 @@ jobs:
environment: npm-publish

steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
ref: release
persist-credentials: false
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
permissions:
issues: write # mark and close stale bug issues
steps:
- uses: actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899 # v10.3.0
- uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0
with:
days-before-issue-stale: 30
days-before-issue-close: 7
Expand All @@ -37,7 +37,7 @@ jobs:
permissions:
pull-requests: write # mark and close stale pull requests
steps:
- uses: actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899 # v10.3.0
- uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0
with:
days-before-issue-stale: -1
days-before-issue-close: -1
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/zizmor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ jobs:
contents: read # checkout repository

steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- uses: zizmorcore/zizmor-action@192e21d79ab29983730a13d1382995c2307fbcaa # v0.5.7
- uses: zizmorcore/zizmor-action@3dc1ecc9bcb9e94e9b2c709687979e1298497054 # v0.6.2
with:
persona: pedantic
# Use annotations instead of SARIF as this doesn't need special permissions
Expand Down
2 changes: 1 addition & 1 deletion app/assets/logos/sponsors/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ export const SPONSORS = {
light: LogoCodeRabbitLight,
},
normalisingIndent: '0.875rem',
url: 'https://www.coderabbit.ai',
url: 'https://coderabbit.link/npmx',
},
],
silver: [
Expand Down
58 changes: 49 additions & 9 deletions app/assets/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,14 @@

/* text colors */
--fg: oklch(0.982 0 0);
--fg-muted: oklch(0.749 0 0);
--fg-subtle: oklch(0.673 0 0);
--fg-muted: oklch(0.849 0 0);
--fg-subtle: oklch(0.773 0 0);

/* border, separator colors */
--border: oklch(0.269 0 0);
--border-subtle: oklch(0.239 0 0);
--border-hover: oklch(0.371 0 0);
--border-elevated: oklch(0.369 0 0);

/* accent color, set by user from settings */
--accent: var(--accent-color, oklch(0.787 0.128 230.318));
Expand Down Expand Up @@ -81,19 +82,38 @@
--bg-elevated: oklch(0.264 0 0);
}

:root[data-theme='dark'][data-fg-theme='contrast'] {
--fg: oklch(1 0 0);
--fg-muted: oklch(0.95 0 0);
--fg-subtle: oklch(0.9 0 0);
}

:root[data-theme='dark'][data-fg-theme='standard'] {
--fg: oklch(0.982 0 0);
--fg-muted: oklch(0.849 0 0);
--fg-subtle: oklch(0.773 0 0);
}

:root[data-theme='dark'][data-fg-theme='muted'] {
--fg: oklch(0.969 0 0);
--fg-muted: oklch(0.749 0 0);
--fg-subtle: oklch(0.673 0 0);
}

:root[data-theme='light'] {
--bg: var(--bg-color, oklch(1 0 0));
--bg-subtle: var(--bg-subtle-color, oklch(0.979 0.001 286.375));
--bg-muted: var(--bg-muted-color, oklch(0.955 0.001 286.76));
--bg-elevated: var(--bg-elevated-color, oklch(0.94 0.002 287.29));

--fg: oklch(0.146 0 0);
--fg-muted: oklch(0.398 0 0);
--fg-subtle: oklch(0.48 0 0);
--fg: oklch(0.046 0 0);
--fg-muted: oklch(0.198 0 0);
--fg-subtle: oklch(0.28 0 0);

--border: oklch(0.8514 0 0);
--border-subtle: oklch(0.922 0 0);
--border-hover: oklch(0.715 0 0);
--border-elevated: oklch(0.75 0 0);

--accent: var(--accent-color, oklch(0.5 0.16 247.27));
--accent-muted: var(--accent-color, oklch(0.205 0 0));
Expand Down Expand Up @@ -147,29 +167,49 @@
--bg-subtle: var(--bg-subtle-color, oklch(0.979 0 0));
}

:root[data-theme='light'][data-fg-theme='contrast'] {
--fg: oklch(0 0 0);
--fg-muted: oklch(0.1 0 0);
--fg-subtle: oklch(0.2 0 0);
}

:root[data-theme='light'][data-fg-theme='standard'] {
--fg: oklch(0.046 0 0);
--fg-muted: oklch(0.198 0 0);
--fg-subtle: oklch(0.28 0 0);
}

:root[data-theme='light'][data-fg-theme='muted'] {
--fg: oklch(0.146 0 0);
--fg-muted: oklch(0.398 0 0);
--fg-subtle: oklch(0.48 0 0);
}

@media (prefers-contrast: more) {
:root[data-theme='dark'] {
/* text colors */
--fg: oklch(1 0 0);
--fg-muted: oklch(0.769 0 0);
--fg-subtle: oklch(0.693 0 0);
--fg-muted: oklch(0.869 0 0);
--fg-subtle: oklch(0.793 0 0);

/* border, separator colors */
--border: oklch(0.769 0 0);
--border-subtle: oklch(0.739 0 0);
--border-hover: oklch(0.771 0 0);
--border-elevated: oklch(0.869 0 0);
}

:root[data-theme='light'] {
/* text colors */
--fg: oklch(0 0 0);
--fg-muted: oklch(0.329 0 0);
--fg-subtle: oklch(0.4 0 0);
--fg-muted: oklch(0.229 0 0);
--fg-subtle: oklch(0.3 0 0);

/* border, separator colors */
--border: oklch(0.3514 0 0);
--border-subtle: oklch(0.422 0 0);
--border-hover: oklch(0.315 0 0);
--border-elevated: oklch(0.25 0 0);
}
}

Expand Down
4 changes: 2 additions & 2 deletions app/components/Brand/Customize.vue
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,9 @@ async function downloadCustomPng() {

const img = new Image()
const loaded = new Promise<void>((resolve, reject) => {
// oxlint-disable-next-line eslint-plugin-unicorn(prefer-add-event-listener)
// oxlint-disable-next-line unicorn/prefer-add-event-listener
img.onload = () => resolve()
// oxlint-disable-next-line eslint-plugin-unicorn(prefer-add-event-listener)
// oxlint-disable-next-line unicorn/prefer-add-event-listener
img.onerror = () => reject(new Error('Failed to load custom SVG'))
})
img.src = url
Expand Down
4 changes: 2 additions & 2 deletions app/components/Button/Base.vue
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ defineExpose({
<template>
<button
ref="el"
class="group gap-x-1 items-center justify-center font-mono border border-border rounded-md transition-all duration-200 cursor-pointer disabled:(opacity-40 cursor-not-allowed border-transparent)"
class="group gap-x-1 items-center justify-center font-mono border border-border-elevated/60 rounded-md transition-all duration-200 cursor-pointer disabled:(opacity-40 cursor-not-allowed border-transparent)"
:class="{
'inline-flex': !block,
'flex': block,
Expand All @@ -60,7 +60,7 @@ defineExpose({
'text-xs p-0.5': size === 'sm' && !!iconOnly,
'px-2': size === 'sm' && !classicon && !iconOnly,
'ps-1.5 pe-2': size === 'sm' && !!classicon && !iconOnly,
'bg-transparent text-fg hover:enabled:(bg-fg/10) focus-visible:enabled:(bg-fg/10) aria-pressed:(bg-fg/10 border-fg/20 hover:enabled:(bg-fg/20 text-fg/50))':
'bg-transparent text-fg hover:enabled:(bg-bg-elevated) focus-visible:enabled:(bg-bg-elevated) aria-pressed:(bg-bg-muted border-border-hover hover:enabled:(bg-bg-muted text-fg/50))':
variant === 'secondary',
'text-bg bg-fg hover:enabled:(bg-fg/50) focus-visible:enabled:(bg-fg/50) aria-pressed:(bg-fg text-bg border-fg hover:enabled:(text-bg/50))':
variant === 'primary',
Expand Down
4 changes: 3 additions & 1 deletion app/components/Compare/FacetRow.vue
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,9 @@ function isCellLoading(index: number): boolean {
<div
class="comparison-label relative bg-bg flex items-center gap-1.5 px-4 py-3 border-b border-border"
>
<span class="text-xs text-fg-muted uppercase tracking-wider">{{ label }}</span>
<span class="text-xs text-fg-muted uppercase tracking-wide whitespace-nowrap">{{
label
}}</span>
<TooltipApp v-if="description" :text="description" position="top">
<span class="i-lucide:info w-3 h-3 text-fg-subtle cursor-help" aria-hidden="true" />
</TooltipApp>
Expand Down
13 changes: 12 additions & 1 deletion app/components/Header/AuthModal.client.vue
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,12 @@ async function handleLogin() {
}
}

/** Reset the login form so a stale handle/error isn't shown when reopening. */
function handleModalClose() {
handleInput.value = ''
errorMessage.value = ''
}

watch(handleInput, newHandleInput => {
errorMessage.value = ''
if (!newHandleInput) return
Expand All @@ -64,7 +70,12 @@ watch(user, async newUser => {

<template>
<!-- Modal -->
<Modal :modalTitle="$t('auth.modal.title')" class="max-w-lg" id="auth-modal">
<Modal
:modalTitle="$t('auth.modal.title')"
class="max-w-lg"
id="auth-modal"
@close="handleModalClose"
>
<div v-if="user?.handle" class="space-y-4">
<div class="flex items-center gap-3 p-4 bg-bg-subtle border border-border rounded-lg">
<span class="w-3 h-3 rounded-full bg-green-500" aria-hidden="true" />
Expand Down
Loading
Loading