Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 5 additions & 0 deletions .changeset/fix-cli-scaffold-smoke-test.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@stackwright/cli": patch
---

Fix scaffold smoke-test TypeError by excluding _font-links.json from static page generation
11 changes: 11 additions & 0 deletions .changeset/fix-dark-mode.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
"@stackwright/core": patch
---

Fixed dark mode text colors and background handling for improved demo/hackathon quality:

- **#252**: Verified ThemeProvider toggle updates correctly (no code changes needed)
- **#251**: Added dark overlay for background images to ensure text contrast
- **Alert component**: Added dark-mode-aware accent colors
- **CodeBlock component**: Added dark mode syntax highlighting palette
- **useSafeTheme hook**: Added `useSafeColorMode` hook for safe color mode access
14 changes: 0 additions & 14 deletions .changeset/fix-perf-benchmark-port-conflict.md

This file was deleted.

12 changes: 9 additions & 3 deletions .changeset/pre.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,30 @@
"launch-stackwright": "0.1.0",
"@stackwright/maplibre": "0.0.0",
"stackwright-docs": "0.1.0",
"@stackwright/otters": "0.1.0"
"@stackwright/otters": "0.1.0",
"@stackwright/sbom-generator": "0.0.0",
"@stackwright/scaffold-core": "0.1.0-alpha.0"
},
"changesets": [
"add-code2-layout-icons",
"bright-otters-glow",
"built-in-search-feature",
"compose-site-atomic",
"declarative-entry-pages",
"fix-cli-scaffold-smoke-test",
"fix-dark-mode-bugs",
"fix-perf-benchmark-port-conflict",
"fix-dark-mode",
"integrations-config",
"launch-stackwright-package",
"map-adapter-phases-1-2",
"nav-sidebar-override",
"otters-as-package",
"remove-hello-example",
"otters-postinstall",
"resolve-background-utility",
"sbom-generator-addition",
"sbom-hooks-addition",
"scaffold-bundled-default",
"scaffold-hooks-system",
"scaffold-pin-versions",
"text-block-feature",
"video-media-type",
Expand Down
10 changes: 0 additions & 10 deletions .changeset/remove-hello-example.md

This file was deleted.

7 changes: 7 additions & 0 deletions .changeset/scaffold-hooks-system.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@stackwright/scaffold-core": minor
"@stackwright/cli": minor
"launch-stackwright": minor
---

Add scaffold hooks system for extensible post-scaffold processing. Pro packages can now register hooks at lifecycle points (preScaffold, preInstall, postInstall, postScaffold) to inject dependencies, configure MCP servers, and add custom setup.
50 changes: 50 additions & 0 deletions .github/actions/setup-stackwright/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: "Setup Stackwright"
description: "Standardized pnpm/Node setup for Stackwright monorepo"

inputs:
build:
description: "Whether to run pnpm build after install"
required: false
default: "false"
relink-bins:
description: "Whether to re-link bins after build (needed for CLI tools)"
required: false
default: "false"

runs:
using: "composite"
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup pnpm
uses: pnpm/action-setup@v3
with:
version: 10

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: "pnpm"

- name: Install dependencies
run: |
if [ "${{ github.event_name }}" = "pull_request" ]; then
echo "PR detected: allowing lockfile updates..."
pnpm install
else
echo "Branch push detected: using frozen lockfile..."
pnpm install --frozen-lockfile
fi
shell: bash

- name: Build packages
if: inputs.build == 'true'
run: pnpm build
shell: bash

- name: Relink bins
if: inputs.relink-bins == 'true'
run: pnpm install
shell: bash
25 changes: 4 additions & 21 deletions .github/workflows/accessibility.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,28 +16,11 @@ jobs:
timeout-minutes: 20

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup pnpm
uses: pnpm/action-setup@v3
with:
version: 10

- name: Setup Node.js
uses: actions/setup-node@v4
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-stackwright
with:
node-version: 22
cache: 'pnpm'

- name: Install dependencies
run: pnpm install

- name: Build packages
run: pnpm build

- name: Re-link bins after build
run: pnpm install
build: true
relink-bins: true

- name: Install Playwright browsers
run: pnpm --filter @stackwright/e2e exec playwright install --with-deps chromium
Expand Down
13 changes: 2 additions & 11 deletions .github/workflows/check-changeset.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,9 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-depth: 0

- uses: pnpm/action-setup@v3
with:
version: 10

- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'

- run: pnpm install
- uses: ./.github/actions/setup-stackwright

- name: Validate Changeset Presence
run: node .github/scripts/check-for-changeset.js
103 changes: 30 additions & 73 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,77 +3,53 @@ name: CI
on:
push:
branches: [main, dev]
paths:
- 'packages/**'
- 'examples/**'
- 'scripts/**'
- '!examples/stackwright-docs/content/**'
pull_request:
paths:
- 'packages/**'
- 'examples/**'
- 'scripts/**'
- '!examples/stackwright-docs/content/**'

permissions:
contents: read

jobs:
format:
lint-and-format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
with:
version: 10
- uses: actions/setup-node@v4
with:
node-version: 22
cache: 'pnpm'

- run: pnpm install
- uses: ./.github/actions/setup-stackwright
- run: pnpm format:check

lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
with:
version: 10
- uses: actions/setup-node@v4
with:
node-version: 22
cache: 'pnpm'

- run: pnpm install
- run: pnpm lint

test:
runs-on: ubuntu-latest
needs: [lint-and-format]
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
- uses: ./.github/actions/setup-stackwright
with:
version: 10
- uses: actions/setup-node@v4
with:
node-version: 22
cache: 'pnpm'

- run: pnpm install
- run: pnpm build
build: true
- run: pnpm test

scaffold-smoke-test:
runs-on: ubuntu-latest
needs: [lint-and-format]
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
with:
version: 10
- uses: actions/setup-node@v4
- uses: ./.github/actions/setup-stackwright
with:
node-version: 22
cache: 'pnpm'

- run: pnpm install
- run: pnpm build
build: true

- name: Pack workspace packages as tarballs
run: |
mkdir -p /tmp/stackwright-tarballs
for pkg in types themes icons collections core nextjs build-scripts ui-shadcn cli; do
for pkg in types themes icons collections core nextjs build-scripts ui-shadcn cli sbom-generator; do
pnpm --filter "@stackwright/$pkg" pack --pack-destination /tmp/stackwright-tarballs
done

Expand All @@ -86,7 +62,7 @@ jobs:
const fs = require('fs');
const pkg = JSON.parse(fs.readFileSync('./package.json', 'utf8'));
const tarballs = fs.readdirSync('/tmp/stackwright-tarballs');
const names = ['types','themes','icons','collections','core','nextjs','build-scripts','ui-shadcn','cli'];
const names = ['types','themes','icons','collections','core','nextjs','build-scripts','ui-shadcn','cli','sbom-generator'];
const overrides = {};
for (const name of names) {
const tarball = tarballs.find(t => t.startsWith('stackwright-' + name + '-'));
Expand All @@ -112,18 +88,12 @@ jobs:

check-agent-docs:
runs-on: ubuntu-latest
needs: [lint-and-format]
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
with:
version: 10
- uses: actions/setup-node@v4
- uses: ./.github/actions/setup-stackwright
with:
node-version: 22
cache: 'pnpm'

- run: pnpm install
- run: pnpm build
build: true

- name: Regenerate AGENTS.md tables
run: node packages/cli/dist/cli.js generate-agent-docs
Expand All @@ -135,20 +105,13 @@ jobs:

e2e:
runs-on: ubuntu-latest
needs: [lint-and-format]
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
with:
version: 10
- uses: actions/setup-node@v4
- uses: ./.github/actions/setup-stackwright
with:
node-version: 22
cache: 'pnpm'

- run: pnpm install
- run: pnpm build
- run: pnpm install
name: Re-link bins after build
build: true
relink-bins: true

- name: Install Playwright browsers
run: pnpm --filter @stackwright/e2e exec playwright install --with-deps chromium
Expand Down Expand Up @@ -182,18 +145,12 @@ jobs:

check-schemas:
runs-on: ubuntu-latest
needs: [lint-and-format]
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
- uses: ./.github/actions/setup-stackwright
with:
version: 10
- uses: actions/setup-node@v4
with:
node-version: 22
cache: 'pnpm'

- run: pnpm install
- run: pnpm build
build: true

- name: Regenerate JSON schemas
run: cd packages/types && pnpm generate-schemas
Expand Down
21 changes: 3 additions & 18 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,25 +16,10 @@ jobs:
timeout-minutes: 15

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup pnpm
uses: pnpm/action-setup@v3
with:
version: 10

- name: Setup Node.js
uses: actions/setup-node@v4
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-stackwright
with:
node-version: 22
cache: 'pnpm'

- name: Install dependencies
run: pnpm install

- name: Build packages
run: pnpm build
build: true

- name: Run tests with coverage
run: pnpm test:coverage
Expand Down
Loading
Loading