Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
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
4bd6527
Merge branch 'main' into use-setup-vp-instead
ghostdevv Mar 20, 2026
6a3eef0
Merge branch 'main' into use-setup-vp-instead
ghostdevv Mar 20, 2026
d5d2a8d
Merge branch 'main' into use-setup-vp-instead
fengmk2 Mar 21, 2026
1c1445d
Merge branch 'main' into use-setup-vp-instead
fengmk2 Mar 22, 2026
573b2b3
Merge branch 'main' into use-setup-vp-instead
fengmk2 Mar 23, 2026
25edaca
Merge branch 'main' into use-setup-vp-instead
ghostdevv Mar 23, 2026
e990bec
chore: update chromatic action
ghostdevv Mar 23, 2026
c8887e6
Merge branch 'main' into use-setup-vp-instead
fengmk2 Mar 24, 2026
18ddf9d
ci: install pnpm globally for Chromatic workflow
fengmk2 Mar 24, 2026
9a13625
ci: update setup-vp to latest commit a03302da
fengmk2 Mar 24, 2026
dcf45f2
Merge branch 'main' into use-setup-vp-instead
fengmk2 Mar 25, 2026
141d993
Merge branch 'main' into use-setup-vp-instead
fengmk2 Mar 26, 2026
a2fb4c9
Merge branch 'main' into use-setup-vp-instead
ghostdevv Mar 29, 2026
cdb2511
Merge branch 'main' into use-setup-vp-instead
fengmk2 Mar 31, 2026
934181b
chore(deps): update devdependency @vitest/coverage-v8 to v4.1.2 (#2322)
renovate[bot] Mar 31, 2026
5f20290
feat(i18n): update Indonesian localization (#2334)
alfonsusac Mar 31, 2026
2e0fb05
docs: update CONTRIBUTING i18n and lint docs (#2336)
alfonsusac Mar 31, 2026
b0d97ff
feat: add kawai logo in npmx.dev homepage (#2346)
alfonsusac Mar 31, 2026
f4061b3
fix(ui): flaw in previous version of the trans version (#2349)
alfonsusac Mar 31, 2026
8d9fa5c
fix: update tkawaii date (#2350)
alexdln Mar 31, 2026
2af4011
chore: disallow crawlers by default
danielroe Apr 1, 2026
2ca79ab
feat: apply April research results (#2353)
alexdln Apr 1, 2026
6b5b847
feat: add logo to OAuth metadata (#2355)
nicolo-ribaudo Apr 1, 2026
a28563b
feat(docs): add favicon (#2330)
trueberryless Apr 2, 2026
88e4db0
chore: use built-in vue-data-ui pattern component (#2359)
graphieros Apr 2, 2026
95c2aae
fix: package code page improvements (#2217)
alex-key Apr 2, 2026
d3f60cb
chore: restore color modes (#2361)
alexdln Apr 2, 2026
4991268
feat(i18n): add missing french translation (fr-FR) (#2368)
juliendargelos Apr 3, 2026
1d1f450
fix: correct code colors (#2362)
alexdln Apr 3, 2026
409014b
Merge branch 'main' into use-setup-vp-instead
fengmk2 Apr 3, 2026
4da792c
fix(i18n): update Czech translations (#2374)
VentyCZ Apr 4, 2026
b9300f4
refactor: replace fileURLToPath with import.meta.dirname (#2366)
trivikr Apr 4, 2026
b1595e8
chore(blog): remove boilerplate first blog post (#2376)
akadotsh Apr 4, 2026
8a36727
refactor(cli)!: use mkdtempDisposable and require node >=24.4 (#2365)
trivikr Apr 4, 2026
06d1eb0
feat(i18n): add Serbian Latin (sr-Latn-RS) translations (#2317)
miljkovic5 Apr 4, 2026
2eee0b5
refactor: use timers/promises setTimeout for async delays (#2377)
trivikr Apr 4, 2026
65d81bd
docs(ui): add stories for Privacy page (#2319)
cylewaitforit Apr 4, 2026
08bb984
fix(i18n): update missing Spanish translations (#2318)
aitorres Apr 4, 2026
ae16a6b
fix: relax devtools-specific security headers in dev (#2331)
RYGRIT Apr 4, 2026
23dc158
refactor: replace tinyglobby with Node.js built-in glob APIs (#2375)
trivikr Apr 4, 2026
775ffc5
Merge branch 'main' into use-setup-vp-instead
ghostdevv Apr 4, 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@a03302daa50cf2f017c8c7345730c2740df207d6 # 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
10 changes: 4 additions & 6 deletions .github/workflows/chromatic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,13 @@ jobs:
repository: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
ref: ${{ github.event.pull_request.head.sha || github.sha }}

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

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

- name: 📦 Install dependencies
run: pnpm install
- name: 🟧 Install pnpm globally
run: vp install -g pnpm

- name: 🧪 Run Chromatic Visual and Accessibility Tests
uses: chromaui/action@f191a0224b10e1a38b2091cefb7b7a2337009116 # v16.0.0
Expand Down
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@a03302daa50cf2f017c8c7345730c2740df207d6 # 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@a03302daa50cf2f017c8c7345730c2740df207d6 # 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@a03302daa50cf2f017c8c7345730c2740df207d6 # 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@a03302daa50cf2f017c8c7345730c2740df207d6 # 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@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6
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@a03302daa50cf2f017c8c7345730c2740df207d6 # 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@a03302daa50cf2f017c8c7345730c2740df207d6 # 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@a03302daa50cf2f017c8c7345730c2740df207d6 # 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@a03302daa50cf2f017c8c7345730c2740df207d6 # 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@a03302daa50cf2f017c8c7345730c2740df207d6 # 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@a03302daa50cf2f017c8c7345730c2740df207d6 # 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@a03302daa50cf2f017c8c7345730c2740df207d6 # 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@a03302daa50cf2f017c8c7345730c2740df207d6 # 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
20 changes: 20 additions & 0 deletions .storybook/decorators.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import AppFooter from '~/components/AppFooter.vue'
import AppHeader from '~/components/AppHeader.vue'

/**
* Wraps a page story with the standard site chrome: AppHeader, main content
* area, and AppFooter. Use this for any full-page story so the layout stays
* consistent and changes only need to be made in one place.
*/
export const pageDecorator = () => ({
components: { AppHeader, AppFooter },
template: `
<div class="min-h-screen flex flex-col bg-bg text-fg">
<AppHeader />
<div id="main-content" class="flex-1 flex flex-col" tabindex="-1">
<story />
</div>
<AppFooter />
</div>
`,
})
Loading
Loading