Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
9faedee
feat: ⬆️ migrate to Qwik v2 beta (@qwik.dev/core / @qwik.dev/router)
Jun 16, 2026
d32138a
docs: 📝 add AI agent guides for Qwik v2 (AGENTS.md + pointers)
Jun 16, 2026
d1d04c1
chore: 🗑️ remove outdated cursor rules guidance
diecodev Jun 16, 2026
50a533a
build: ⬆️ migrate to Vite 8 and rework lib build (ESM-only)
diecodev Jun 16, 2026
c91beb2
feat!: 🔥 remove dompurify, render title/description as text/JSX
diecodev Jun 16, 2026
5dfac28
feat: ✨ expand headless toast core, types, icons, and styles
diecodev Jun 17, 2026
2d11c7d
test: ✅ expand e2e suite and update test/website demo harness
diecodev Jun 17, 2026
2218e79
build: 🔧 pnpm catalogs, migrate to oxlint/oxfmt, pin Vite 7
diecodev Jun 17, 2026
656cce4
build: 🔧 Qwik v2 toolchain, ESM-only lib build, pinned Vite 7
diecodev Jun 17, 2026
809c359
docs: 📝 rewrite agent guidance, README, and v2 backlog
diecodev Jun 17, 2026
74981ba
feat(website): ✨ migrate demo site to Qwik Router (v2)
diecodev Jun 17, 2026
733e906
test: ✅ port e2e harness to Qwik Router and expand suite
diecodev Jun 17, 2026
22e8abb
feat!: ✨ port toast core to Qwik v2 + sonner 2.0.7 parity
diecodev Jun 17, 2026
dac11f6
fix: 🐛 keep swiped toast sliding off-screen on dismiss
diecodev Jun 17, 2026
c724cf7
chore: 🔧 scope oxlint/oxfmt scripts to the whole repo
diecodev Jun 17, 2026
b1648dd
fix: 🐛 resolve oxlint errors in test and website workspaces
diecodev Jun 17, 2026
c1d2446
chore: 🔧 add oxc formatter and format-on-save editor settings
diecodev Jun 17, 2026
76e7fd0
chore: 🔧 enable oxlint file-list debug output in lint script
diecodev Jun 17, 2026
d9df00a
fix: 🐛 animate the first toast's enter transition
diecodev Jun 18, 2026
13a4e28
feat: ✨ add topLayer (Popover API) support to Toaster
diecodev Jun 18, 2026
334c050
test: ✅ cover topLayer rendering above native modals
diecodev Jun 18, 2026
f7a496f
fix: 🐛 use <span> inside copy buttons for valid button content
diecodev Jun 18, 2026
d3752b6
feat: ✨ accept Signals on Toaster position, theme, richColors & dir
diecodev Jun 18, 2026
59ab4ac
chore: 🔧 migrate website SSR entry to createRenderer
diecodev Jun 18, 2026
66d1622
docs: 📝 add documentation site
diecodev Jun 18, 2026
e6ebebe
feat: ✨ add installation commands and package manager selection to do…
diecodev Jun 18, 2026
d5d23e8
feat: ✨ enhance CodeBlock component to accept additional props for st…
diecodev Jun 18, 2026
b55b2fd
chore: 🔧 untrack todos.md (local-only)
diecodev Jun 18, 2026
744d9c4
ci: 👷 add shared setup action and full CI gate
diecodev Jun 18, 2026
40abd0d
ci: 🔒 gate release on CI and publish via Trusted Publishing
diecodev Jun 18, 2026
2e74620
ci: 🔥 remove unused website deploy workflow
diecodev Jun 18, 2026
f23dab4
ci: 🏷️ publish prereleases under their dist-tag
diecodev Jun 18, 2026
7d2ef2e
chore: release v2.0.0-beta.1
diecodev Jun 18, 2026
eb96343
fix: 🐛 drop @qwik.dev/router and SSR harness from the library
diecodev Jun 18, 2026
ad279cf
fix: 🐛 subscribe Toaster on qinit so toasts render in WebKit
diecodev Jun 18, 2026
310a91a
ci: 🐛 scope Playwright browser cache per matrix browser
diecodev Jun 18, 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
31 changes: 0 additions & 31 deletions .eslintignore

This file was deleted.

40 changes: 0 additions & 40 deletions .eslintrc.cjs

This file was deleted.

27 changes: 27 additions & 0 deletions .github/actions/setup/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Setup
description: Set up pnpm (pinned via packageManager), Node 22, and install dependencies frozen

inputs:
registry-url:
description: npm registry URL. Set this only in publish jobs so NODE_AUTH_TOKEN is wired up.
required: false
default: ""

runs:
using: composite
steps:
- name: Install pnpm
uses: pnpm/action-setup@v6
with:
version: 11

- name: Use Node.js 24
uses: actions/setup-node@v6
with:
node-version: 24
cache: pnpm
registry-url: ${{ inputs.registry-url }}

- name: Install dependencies
run: pnpm install --frozen-lockfile
shell: bash
86 changes: 86 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: CI

on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_call: # lets release.yml reuse this exact gate

concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
# cancel superseded PR runs, but never cancel pushes to main
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

permissions:
contents: read

jobs:
verify:
name: Lint, typecheck & build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup

- name: Lint
run: pnpm lint

- name: Build library (types + lib)
run: pnpm build.types && pnpm build.lib

- name: Typecheck website
run: pnpm build.types && pnpm lint
working-directory: website

- name: Typecheck test app
run: pnpm build.types && pnpm lint
working-directory: test

e2e:
name: Playwright (${{ matrix.browser }})
needs: verify
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
browser: [chromium, webkit]
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup

# The Playwright webServer runs `pnpm dev` in ./test, which imports the
# workspace-linked library from lib/, so the lib must be built first.
- name: Build library
run: pnpm build.types && pnpm build.lib

- name: Resolve Playwright version
id: pw
run: echo "version=$(node -p "require('@playwright/test/package.json').version")" >> "$GITHUB_OUTPUT"

- name: Cache Playwright browsers
id: pw-cache
uses: actions/cache@v5
with:
path: ~/.cache/ms-playwright
key: playwright-v2-${{ runner.os }}-${{ matrix.browser }}-${{ steps.pw.outputs.version }}

- name: Install Playwright (browser + system deps)
if: steps.pw-cache.outputs.cache-hit != 'true'
run: pnpm exec playwright install --with-deps ${{ matrix.browser }}

- name: Install Playwright system deps (cached browser)
if: steps.pw-cache.outputs.cache-hit == 'true'
run: pnpm exec playwright install-deps ${{ matrix.browser }}

- name: Run Playwright tests
run: pnpm exec playwright test --project=${{ matrix.browser }}

- name: Upload report
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v7
with:
name: playwright-report-${{ matrix.browser }}
path: playwright-report/
retention-days: 7
45 changes: 0 additions & 45 deletions .github/workflows/deploy.yml

This file was deleted.

90 changes: 58 additions & 32 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,51 +1,77 @@
name: Release

permissions:
contents: write

on:
push:
tags:
- "v*"

concurrency:
group: release-${{ github.ref }}
cancel-in-progress: false # never interrupt an in-flight publish

permissions:
contents: read

jobs:
npm_publish:
# Full quality gate (lint + typecheck + lib build + Playwright) before anything ships.
ci:
uses: ./.github/workflows/ci.yml

publish:
name: Publish to npm
needs: ci
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write # OIDC token for npm Trusted Publishing (no NPM_TOKEN needed)
steps:
- name: clone repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/checkout@v6
- uses: ./.github/actions/setup

- name: installing pnpm
uses: pnpm/action-setup@v4
with:
version: 9
- name: Build library
run: pnpm build.types && pnpm build.lib

- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: 20
cache: "pnpm"
registry-url: "https://registry.npmjs.org"
# Pack with pnpm so `catalog:`/`workspace:` specifiers are rewritten to real
# versions in the tarball, but publish with the npm CLI: pnpm publish does
# not yet support npm's OIDC Trusted Publishing (pnpm/pnpm#9812, #11513).
- name: Pack
run: pnpm pack --pack-destination .

- name: Building library
run: pnpm install --no-frozen-lockfile
# Trusted Publishing requires npm CLI >= 11.5.1.
- name: Ensure recent npm
run: npm install -g npm@latest

- run: npm publish --no-git-checks
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
# Prerelease versions (e.g. 2.0.0-beta.0) publish under their identifier
# tag (`beta`) so `latest` keeps pointing at the stable line; plain
# versions publish under `latest`.
- name: Resolve npm dist-tag
id: disttag
run: |
VERSION=$(node -p "require('./package.json').version")
if [[ "$VERSION" == *-* ]]; then
TAG="${VERSION#*-}"; TAG="${TAG%%.*}"
else
TAG="latest"
fi
echo "Publishing $VERSION under dist-tag '$TAG'"
echo "tag=$TAG" >> "$GITHUB_OUTPUT"

- name: Publish via Trusted Publishing (OIDC)
run: npm publish *.tgz --provenance --access public --tag ${{ steps.disttag.outputs.tag }}

gh_release:
needs: [npm_publish]
github_release:
name: GitHub release & changelog
needs: publish
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0

- uses: actions/setup-node@v4

- run: npx changelogithub # or changelogithub@0.12 if ensure the stable result
fetch-depth: 0 # changelogithub needs full history to diff tags
- uses: actions/setup-node@v6
with:
node-version: 22
- run: npx changelogithub
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
44 changes: 0 additions & 44 deletions .github/workflows/test.yml

This file was deleted.

3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,6 @@ bun.lockb
# Yarn
.yarn/*
!.yarn/releases

# Local-only notes
todos.md
Loading