Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
a0dd2a9
fix(i18n): update Simplified Chinese and Traditional Chinese translat…
wChenonly Mar 20, 2026
399f7f9
chore: migrate deprecated typescript.tsdk to js/ts.tsdk.path (#2160)
RYGRIT Mar 20, 2026
5f037b7
fix: lower z-index of file path header to prevent overlapping version…
RYGRIT Mar 20, 2026
a9d69ae
docs(ui): add stories for About page (#2149)
cylewaitforit Mar 20, 2026
5e2e09e
fix: tag sorting on package versions page (#2105)
ShroXd Mar 20, 2026
fea4400
docs(ui): add dark theme for storybook docs (#2062)
cylewaitforit Mar 20, 2026
f0ada7e
fix(i18n): add missing translations for zh-CN (#2084)
ShroXd Mar 20, 2026
2b2a47c
ci: use voidzero-dev/setup-vp instead of setup-node + pnpm/action-setup
fengmk2 Mar 19, 2026
9527d2f
ci: skip postinstall in check-only jobs with setup-vp
fengmk2 Mar 20, 2026
332e747
ci: disable cache for check-only jobs with partial install
fengmk2 Mar 20, 2026
25eec2f
ci: remove unnecessary cache option from check-only jobs
fengmk2 Mar 20, 2026
f87c32d
ci: update setup-vp to latest commit 73e69397
fengmk2 Mar 20, 2026
dea629f
Fixup
fengmk2 Mar 20, 2026
49f6411
Fixup
fengmk2 Mar 20, 2026
9ae5629
chore: revert "docs(ui): add dark theme for storybook docs (#2062)" (…
ghostdevv Mar 20, 2026
4bd6527
Merge branch 'main' into use-setup-vp-instead
ghostdevv Mar 20, 2026
4ad0679
feat(a11y): use seeded patterns in bar charts (#2157)
graphieros Mar 20, 2026
8ae65d5
test(ui): set static values for storybook (#2174)
cylewaitforit Mar 20, 2026
3f2b865
docs(ui): add dark theme for storybook docs v2 (#2172)
cylewaitforit Mar 20, 2026
1cd901f
docs(ui): use storybook-i18n addon for locale switching (#2125)
cylewaitforit Mar 20, 2026
6a3eef0
Merge branch 'main' into use-setup-vp-instead
ghostdevv Mar 20, 2026
882dcac
fix(blog): ui improvements and comment layout fix (#2139)
Adebesin-Cell Mar 21, 2026
d2b21b1
feat: improve i18n (lunaria) status page (#2064)
alex-key Mar 21, 2026
a697f15
fix: change readme md renderer behavior (#1776)
RYGRIT Mar 21, 2026
c17f0f5
docs(ui): add ButtonGroup stories to storybook (#1964)
cylewaitforit Mar 21, 2026
d5d2a8d
Merge branch 'main' into use-setup-vp-instead
fengmk2 Mar 21, 2026
49aba47
feat(ui): make version colors consistent (#2171)
MatteoGabriele Mar 21, 2026
171d446
feat: add WASM label (#2154)
gameroman Mar 21, 2026
c45e5ef
fix(ui): preview mode show the pr number (#2018)
btea Mar 21, 2026
291c22d
fix: don't diff install size with first version (#2175)
43081j Mar 21, 2026
8cd4074
feat: display yaml frontmatter as a table (#2166)
RYGRIT Mar 21, 2026
eea12a9
fix(ui): skeleton design not aligned between states (#2177)
MatteoGabriele Mar 21, 2026
7c1cea8
feat(ui): move fund to the package header (#2170)
MatteoGabriele Mar 21, 2026
2501b3c
feat(docs): add custom badge generator (#2152)
trueberryless Mar 21, 2026
b43cc0a
refactor: create a backbutton component (#2024)
epifaniofrancisco Mar 21, 2026
d86c9c4
fix(i18n): extract untranslated hardcoded strings (#2181)
serhalp Mar 21, 2026
fbe0b26
feat(docs): add links to advanced badges generator (#2183)
trueberryless Mar 21, 2026
fbf01bd
fix(ui): disambiguate the two "compare" links (#2180)
serhalp Mar 21, 2026
022d207
feat: add package download button (#1586)
Adebesin-Cell Mar 21, 2026
4294ada
feat: add animation to like button (#2082)
ShroXd Mar 21, 2026
5924009
chore: align base components size prop values (#2069)
antoineneff Mar 22, 2026
5dec2ef
fix(ui): remove install package command version for latest (#2039)
bluwy Mar 22, 2026
7f2fc1a
refactor: rename component folder names for consistency (#2019)
iiio2 Mar 22, 2026
1c1445d
Merge branch 'main' into use-setup-vp-instead
fengmk2 Mar 22, 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
17 changes: 6 additions & 11 deletions .github/workflows/autofix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,26 +20,21 @@ jobs:
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
- uses: voidzero-dev/setup-vp@73e69397a8b289de4b1d017ced18e18004183bb1 # v1
with:
node-version: lts/*

- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # 5e1c8eafbd745f64b1ef30a7d7ed7965034c486c
name: 🟧 Install pnpm

- name: 📦 Install dependencies
run: pnpm install
cache: true

- name: 🎨 Check for non-RTL/non-a11y CSS classes
run: pnpm vp run lint:css
run: vp run lint:css

- name: 🌐 Compare translations
run: pnpm vp run i18n:check
run: vp run i18n:check

- name: 🌍 Update lunaria data
run: pnpm vp run build:lunaria
run: vp run build:lunaria

- name: 🔠 Fix lint errors
run: pnpm vp run lint:fix
run: vp run lint:fix

- uses: autofix-ci/action@635ffb0c9798bd160680f18fd73371e355b85f27 # 635ffb0c9798bd160680f18fd73371e355b85f27
94 changes: 30 additions & 64 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,18 +28,16 @@ jobs:
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
- uses: voidzero-dev/setup-vp@73e69397a8b289de4b1d017ced18e18004183bb1 # v1
with:
node-version: lts/*

- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # 5e1c8eafbd745f64b1ef30a7d7ed7965034c486c
name: 🟧 Install pnpm
run-install: false

- name: 📦 Install dependencies (root only, no scripts)
run: pnpm install --filter . --ignore-scripts
run: vp install --filter . --ignore-scripts

- name: 🔠 Lint project
run: pnpm vp run lint
run: vp run lint

types:
name: 💪 Type check
Expand All @@ -48,18 +46,13 @@ jobs:
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
- uses: voidzero-dev/setup-vp@73e69397a8b289de4b1d017ced18e18004183bb1 # v1
with:
node-version: lts/*

- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # 5e1c8eafbd745f64b1ef30a7d7ed7965034c486c
name: 🟧 Install pnpm

- name: 📦 Install dependencies
run: pnpm install
cache: true

- name: 💪 Type check
run: pnpm vp run test:types
run: vp run test:types

unit:
name: 🧪 Unit tests
Expand All @@ -68,18 +61,13 @@ jobs:
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
- uses: voidzero-dev/setup-vp@73e69397a8b289de4b1d017ced18e18004183bb1 # v1
with:
node-version: lts/*

- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # 5e1c8eafbd745f64b1ef30a7d7ed7965034c486c
name: 🟧 Install pnpm

- name: 📦 Install dependencies
run: pnpm install
cache: true

- name: 🧪 Unit tests
run: pnpm vp test --project unit --coverage --reporter=default --reporter=junit --outputFile=test-report.junit.xml
run: vp test --project unit --coverage --reporter=default --reporter=junit --outputFile=test-report.junit.xml

- name: ⬆︎ Upload test results to Codecov
if: ${{ !cancelled() }}
Expand All @@ -94,21 +82,16 @@ jobs:
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
- uses: voidzero-dev/setup-vp@73e69397a8b289de4b1d017ced18e18004183bb1 # v1
with:
node-version: lts/*

- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # 5e1c8eafbd745f64b1ef30a7d7ed7965034c486c
name: 🟧 Install pnpm

- name: 📦 Install dependencies
run: pnpm install
cache: true

- name: 🌐 Install browser
run: pnpm vp exec playwright install chromium-headless-shell
run: vp exec playwright install chromium-headless-shell

- name: 🧪 Component tests
run: pnpm vp test --project nuxt --coverage --reporter=default --reporter=junit --outputFile=test-report.junit.xml
run: vp test --project nuxt --coverage --reporter=default --reporter=junit --outputFile=test-report.junit.xml

- name: ⬆︎ Upload coverage reports to Codecov
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5
Expand All @@ -131,23 +114,18 @@ jobs:
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
- uses: voidzero-dev/setup-vp@73e69397a8b289de4b1d017ced18e18004183bb1 # v1
with:
node-version: lts/*

- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # 5e1c8eafbd745f64b1ef30a7d7ed7965034c486c
name: 🟧 Install pnpm

- name: 📦 Install dependencies
run: pnpm install
cache: true

- name: 🏗️ Build project
run: pnpm vp run build:test
run: vp run build:test
env:
VALIDATE_HTML: true

- name: 🖥️ Test project (browser)
run: pnpm vp run test:browser:prebuilt
run: vp run test:browser:prebuilt

a11y:
name: ♿ Accessibility audit
Expand All @@ -159,21 +137,16 @@ jobs:
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
- uses: voidzero-dev/setup-vp@73e69397a8b289de4b1d017ced18e18004183bb1 # v1
with:
node-version: lts/*

- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # 5e1c8eafbd745f64b1ef30a7d7ed7965034c486c
name: 🟧 Install pnpm

- name: 📦 Install dependencies
run: pnpm install
cache: true

- name: 🏗️ Build project
run: pnpm vp run build:test
run: vp run build:test

- name: ♿ Accessibility audit (Lighthouse - ${{ matrix.mode }} mode)
run: pnpm vp run test:a11y:prebuilt
run: vp run test:a11y:prebuilt
env:
LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }}
LIGHTHOUSE_COLOR_MODE: ${{ matrix.mode }}
Expand All @@ -185,18 +158,13 @@ jobs:
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
- uses: voidzero-dev/setup-vp@73e69397a8b289de4b1d017ced18e18004183bb1 # v1
with:
node-version: lts/*

- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # 5e1c8eafbd745f64b1ef30a7d7ed7965034c486c
name: 🟧 Install pnpm

- name: 📦 Install dependencies
run: pnpm install
cache: true

- name: 🧹 Check for unused code
run: pnpm vp run knip
run: vp run knip

i18n:
name: 🌐 i18n validation
Expand All @@ -205,20 +173,18 @@ jobs:
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
- uses: voidzero-dev/setup-vp@73e69397a8b289de4b1d017ced18e18004183bb1 # v1
with:
node-version: lts/*

- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # 5e1c8eafbd745f64b1ef30a7d7ed7965034c486c
name: 🟧 Install pnpm
run-install: false

- name: 📦 Install dependencies (root only, no scripts)
run: pnpm install --filter . --ignore-scripts
run: vp install --filter . --ignore-scripts

- name: 🌐 Check for missing or dynamic i18n keys
run: pnpm vp run i18n:report
run: vp run i18n:report

- name: 🌐 Check i18n schema is up to date
run: |
pnpm vp run i18n:schema
vp run i18n:schema
git diff --exit-code i18n/schema.json
9 changes: 2 additions & 7 deletions .github/workflows/lunaria.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,10 @@ jobs:
# Makes the action clone the entire git history
fetch-depth: 0

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
- uses: voidzero-dev/setup-vp@73e69397a8b289de4b1d017ced18e18004183bb1 # v1
with:
node-version: lts/*

- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # 5e1c8eafbd745f64b1ef30a7d7ed7965034c486c
name: 🟧 Install pnpm

- name: 📦 Install dependencies
run: pnpm install
cache: true

- name: Generate Lunaria Overview
uses: lunariajs/action@4911ad0736d1e3b20af4cb70f5079aea2327ed8e # v1-prerelease
3 changes: 2 additions & 1 deletion .github/workflows/release-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,10 @@ jobs:
with:
fetch-depth: 0

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
- uses: voidzero-dev/setup-vp@73e69397a8b289de4b1d017ced18e18004183bb1 # v1
with:
node-version: lts/*
run-install: false

- name: 🔍 Check for unreleased commits
id: check
Expand Down
21 changes: 7 additions & 14 deletions .github/workflows/release-tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,10 @@ jobs:
with:
fetch-depth: 0

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
- uses: voidzero-dev/setup-vp@73e69397a8b289de4b1d017ced18e18004183bb1 # v1
with:
node-version: lts/*
run-install: false

- name: 🔢 Determine next version
id: version
Expand Down Expand Up @@ -58,13 +59,9 @@ jobs:
git tag -a "$VERSION" -m "Release $VERSION"
git push origin "$VERSION"

- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # 5e1c8eafbd745f64b1ef30a7d7ed7965034c486c
if: steps.check.outputs.skip == 'false'
name: 🟧 Install pnpm

- name: 📦 Install dependencies
if: steps.check.outputs.skip == 'false'
run: pnpm vp install --filter . --ignore-scripts
run: vp install --filter . --ignore-scripts

- name: 📝 Generate release notes
if: steps.check.outputs.skip == 'false'
Expand Down Expand Up @@ -98,18 +95,14 @@ jobs:
with:
ref: release

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
- uses: voidzero-dev/setup-vp@73e69397a8b289de4b1d017ced18e18004183bb1 # v1
with:
node-version: lts/*
registry-url: https://registry.npmjs.org

- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # 5e1c8eafbd745f64b1ef30a7d7ed7965034c486c
name: 🟧 Install pnpm
with:
cache: false
run-install: false

- name: 📦 Install dependencies
run: pnpm install --filter npmx-connector...
run: vp install --filter npmx-connector...

- name: 🔢 Set connector version
env:
Expand All @@ -122,7 +115,7 @@ jobs:
echo "Publishing npmx-connector@${PKG_VERSION}"

- name: 🏗️ Build connector
run: pnpm --filter npmx-connector build
run: vp run --filter npmx-connector build

- name: 📤 Publish to npm with provenance
# Uses OIDC trusted publishing — no NPM_TOKEN needed.
Expand Down
36 changes: 34 additions & 2 deletions .storybook/main.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
import type { StorybookConfig } from '@storybook-vue/nuxt'

const config = {
stories: ['../app/**/*.stories.@(js|ts)'],
addons: ['@storybook/addon-a11y', '@storybook/addon-docs', '@storybook/addon-themes'],
stories: ['../.storybook/*.mdx', '../app/**/*.stories.@(js|ts)'],
addons: [
'@storybook/addon-a11y',
'@storybook/addon-docs',
'@storybook/addon-themes',
'storybook-i18n',
],
framework: '@storybook-vue/nuxt',
staticDirs: ['./.public'],
features: {
Expand All @@ -11,6 +16,33 @@ const config = {
async viteFinal(newConfig) {
newConfig.plugins ??= []

// Bridge compatibility between Storybook v10 core and v9 @storybook-vue/nuxt
// v10 expects module federation globals that v9 doesn't provide
newConfig.plugins.push({
name: 'storybook-v10-compat',
transformIndexHtml: {
order: 'pre',
handler(html) {
const script = `
<script>
// Minimal shims for Storybook v10 module federation system
// These will be replaced when Storybook runtime loads
window.__STORYBOOK_MODULE_GLOBAL__ = { global: window };
window.__STORYBOOK_MODULE_CLIENT_LOGGER__ = {
deprecate: console.warn.bind(console, '[deprecated]'),
once: console.log.bind(console),
logger: console
};
window.__STORYBOOK_MODULE_CHANNELS__ = {
Channel: class { on() {} off() {} emit() {} once() {} },
createBrowserChannel: () => new window.__STORYBOOK_MODULE_CHANNELS__.Channel()
};
</script>`
return html.replace(/<script>/, script + '<script>')
},
},
})

newConfig.plugins.push({
name: 'ignore-internals',
transform(_, id) {
Expand Down
20 changes: 14 additions & 6 deletions .storybook/manager.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,19 @@
import { addons } from 'storybook/manager-api'
import { create } from 'storybook/theming'

const npmxTheme = create({
brandTitle: 'npmx Storybook',
brandImage: '/npmx-storybook.svg',
})
import npmxDark from './theme'

addons.setConfig({
theme: npmxTheme,
theme: npmxDark,
layoutCustomisations: {
showToolbar: (state, defaultValue) => {
if (state.viewMode === 'docs' && state.storyId) {
const story = state.index?.[state.storyId]
const tags = story?.tags || []
if (tags.includes('hide-toolbar')) {
return false
}
}
return defaultValue
},
},
})
6 changes: 6 additions & 0 deletions .storybook/preview-head.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<style>
/* Override docs story canvas background to match npmx theme */
.docs-story {
background-color: var(--bg, oklch(0.171 0 0)) !important;
}
</style>
Loading
Loading