Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
705b77b
feat(ui): add Phase 0 AI/agentic chat primitives
yyyyaaa Aug 1, 2026
e87e4a7
feat(ui): complete AI kit phases 1–2 with visual polish
yyyyaaa Aug 1, 2026
40810eb
feat(ai): DiffTable, ai-kit registry, and docs showcase
yyyyaaa Aug 1, 2026
1793cd3
chore(blocks): remove check-docs validation script
yyyyaaa Aug 1, 2026
db2a38b
docs(ai): add AI sidebar section with per-component pages
yyyyaaa Aug 1, 2026
8be7030
fix(docs): stop optimizing @constructive-io/ui package imports
yyyyaaa Aug 1, 2026
d2fce75
fix(docs): make AI a master sidebar group under Components
yyyyaaa Aug 1, 2026
6affcbf
fix(docs): make AI sidebar section collapsible
yyyyaaa Aug 1, 2026
bca3eab
fix(ui): center Steps timeline icons on the connector rail
yyyyaaa Aug 1, 2026
12fe307
fix(ui): align Steps markers with flex-column timeline rail
yyyyaaa Aug 1, 2026
c1d3583
fix(ui): run Steps connector through marker centers
yyyyaaa Aug 1, 2026
9ae6561
fix(ui): pixel-snap Steps timeline axis without transforms
yyyyaaa Aug 1, 2026
290c1f2
fix(ui): use solid disk markers on Steps timeline rail
yyyyaaa Aug 1, 2026
35eb8da
fix(ui): crisp Steps rail with calc(50% - 0.5px) connector
yyyyaaa Aug 1, 2026
8118417
fix(ui): polish Steps timeline and expand docs edge-case demos
yyyyaaa Aug 1, 2026
a205d95
feat(ui): add sugar-high CodeBlock highlighting, header, and collapse
yyyyaaa Aug 1, 2026
66b02b5
fix(ui): polish ScrollButton and consolidate chat docs layout
yyyyaaa Aug 1, 2026
be34b31
fix(ui): polish AI docs overview, ContextRing, and stream settle
yyyyaaa Aug 1, 2026
87e8e5a
chore: remove local artifacts screenshots
yyyyaaa Aug 1, 2026
fae324d
fix: harden AI registry delivery pipeline
yyyyaaa Aug 1, 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
70 changes: 38 additions & 32 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ on:

concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

permissions:
contents: read

jobs:
registry:
quality:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
Expand All @@ -42,15 +42,10 @@ jobs:
- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build shadcn registry
run: pnpm build:registry

- name: Verify migration registry installs
env:
SMOKE_CASE: org-chart,storage-browser,sheets,schema-builder,command-palette
run: pnpm --filter @constructive-io/registry smoke:install
- name: Check types and tests
run: pnpm check

packages:
delivery:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
Expand All @@ -74,30 +69,41 @@ jobs:
- name: Verify packed packages in clean consumers
run: pnpm pack:check

pages:
needs: packages
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout
uses: actions/checkout@v7
with:
persist-credentials: false
- name: Build shadcn registry
run: pnpm build:registry

- name: Setup pnpm
uses: pnpm/action-setup@v6
- name: Verify representative registry installs
env:
SMOKE_CASE: ai,schema-builder,command-palette
SMOKE_REUSE_PACKED_ARTIFACTS: '1'
run: pnpm --filter @constructive-io/registry smoke:install

- name: Setup Node.js
uses: actions/setup-node@v7
with:
node-version: '24'
cache: pnpm
- name: Build static Blocks site
run: pnpm --filter blocks build:pages

- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Assemble Pages artifact
run: pnpm pages:artifact

- name: Build Pages artifact
run: pnpm build:pages
- name: Upload Pages artifact
if: github.ref == 'refs/heads/main' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
uses: actions/upload-pages-artifact@v5
with:
path: .artifacts/pages

deploy:
if: github.ref == 'refs/heads/main' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
needs: [quality, delivery]
runs-on: ubuntu-latest
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy GitHub Pages
id: deployment
uses: actions/deploy-pages@v5

# npm releases are intentionally manual. Package tags build the registry and
# Pages artifact only; this workflow contains no publish credentials or job.
# Package tags validate publishable tarballs and Pages inputs, but npm
# publication remains a manual maintainer action.
60 changes: 0 additions & 60 deletions .github/workflows/pages.yml

This file was deleted.

3 changes: 1 addition & 2 deletions apps/blocks/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@ pnpm --filter blocks build:pages

`src/lib/base-primitives.ts`, `src/lib/billing-blocks.ts`, and
`src/lib/feature-packs.ts` are the documentation catalogs. `pnpm gen:check`
validates primitive distribution and keeps the feature-pack docs aligned with
their manifests, registry roots, and live previews.
regenerates (or checks) generated UI demo source used by the docs app.

From the repository root,
`pnpm --silent console-kit:inspect --item <registry-root>`
Expand Down
4 changes: 3 additions & 1 deletion apps/blocks/next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ const nextConfig: NextConfig = {
: {}),
transpilePackages: ['@constructive-io/ui'],
experimental: {
optimizePackageImports: ['@base-ui/react', '@constructive-io/ui', 'lucide-react'],
// Do not include @constructive-io/ui: subpath exports like /ai, /tabs, /button
// break under optimizePackageImports (client components resolve to undefined → blank page).
optimizePackageImports: ['@base-ui/react', 'lucide-react'],
},
turbopack: {
root: path.join(__dirname, '..', '..'),
Expand Down
12 changes: 5 additions & 7 deletions apps/blocks/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,18 @@
"version": "0.0.0",
"private": true,
"scripts": {
"gen": "tsx scripts/generate-ui-demo-source.ts && tsx scripts/check-docs.ts",
"gen:check": "tsx scripts/generate-ui-demo-source.ts --check && tsx scripts/check-docs.ts",
"build:registry": "pnpm --filter @constructive-io/registry build",
"check:flows": "pnpm gen:check",
"check:install-namespace": "pnpm gen:check",
"gen": "tsx scripts/generate-ui-demo-source.ts",
"gen:check": "tsx scripts/generate-ui-demo-source.ts --check",
"build:registry": "pnpm --workspace-root build:registry",
"check:generated": "pnpm gen:check",
"check:selections": "tsx scripts/check-mutation-selections.ts",
"predev": "pnpm gen:check",
"prebuild": "pnpm gen:check",
"dev": "next dev --turbopack --port 3005",
"build": "next build",
"build:pages": "BLOCKS_PAGES=1 next build",
"start": "next start --port 3005",
"lint:types": "tsc --noEmit && pnpm scripts:typecheck",
"scripts:typecheck": "tsc --noEmit -p tsconfig.scripts.json",
"lint:types": "tsc --noEmit",
"test": "vitest run && pnpm test:native-fixture",
"test:native-fixture": "tsx --test e2e-live/native-fixture.test.ts",
"test:watch": "vitest --watch",
Expand Down
Loading