Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
db16a6b
feat(#3946): add team migration stories to website (#3990)
Spark450 Jun 15, 2026
4088a11
fix(#3837): prevent tab label horizontal shift on selection change (#…
Spark450 Jun 15, 2026
35c7b06
chore(deps): bump react-router and react-router-dom
dependabot[bot] Jun 4, 2026
0f88d32
chore(deps): bump shell-quote from 1.8.3 to 1.8.4
dependabot[bot] Jun 9, 2026
e74a559
chore(deps): bump esbuild and tsx in /docs
dependabot[bot] Jun 14, 2026
159e76a
chore: Updating release build to use built in GITHUB_TOKEN
ArakTaiRoth Jun 16, 2026
e202327
chore(deps): bump @angular/core from 21.2.6 to 21.2.17
dependabot[bot] Jun 15, 2026
d67a36b
chore(deps): bump @angular/common from 21.2.6 to 21.2.17
dependabot[bot] Jun 16, 2026
655a3ef
chore(deps): bump @angular/compiler from 21.2.6 to 21.2.17
dependabot[bot] Jun 16, 2026
ab69b3f
chore(deps): bump form-data from 4.0.5 to 4.0.6
dependabot[bot] Jun 15, 2026
8ff62a5
chore(deps): bump dompurify from 3.4.0 to 3.4.9
dependabot[bot] Jun 15, 2026
1d719dd
chore(deps-dev): bump @vitest/browser from 4.1.6 to 4.1.8
dependabot[bot] Jun 15, 2026
ad1381f
chore(deps-dev): bump hono from 4.12.18 to 4.12.25
dependabot[bot] Jun 16, 2026
ad566d7
chore(deps): bump tar and npm
dependabot[bot] Jun 16, 2026
c9d280a
chore(deps): bump launch-editor from 2.13.1 to 2.14.1
dependabot[bot] Jun 16, 2026
72add68
docs(#3742): add breakpoints to layout documentation (#4055)
Spark450 Jun 17, 2026
2642305
fix(#3741): make pagination example reproducible in Angular (#4060)
Spark450 Jun 17, 2026
475c03a
fix(#3665): prevent page jump when switching tabs (#4041)
Spark450 Jun 17, 2026
b5cb42e
Merge pull request #4072 from GovAlta/dependabot/npm_and_yarn/launch-…
willcodeforcoffee Jun 18, 2026
805afa9
chore(deps): bump dompurify from 3.4.9 to 3.4.11
dependabot[bot] Jun 18, 2026
950c18b
chore(deps): bump webpack-dev-server and @angular-devkit/build-angular
dependabot[bot] Jun 18, 2026
aa05ce7
fix(#3921): update segmented tab indicator on resize (#4073)
Spark450 Jun 19, 2026
9c6c124
chore: collapse generated docs files in PR diffs (linguist-generated)
twjeffery Jun 12, 2026
016689a
fix(#3964): mark Angular input/textarea as touched on blur only
Spark450 Jun 19, 2026
3ed2b97
fix(#4077): Add heading-2xl size support to Text component
twjeffery Jun 22, 2026
9d44cba
chore(#3943): release docs from main and add dev branch preview
vanessatran-ddi Jun 19, 2026
df673ce
feat(#3347): add workspace-layout and scroll panel components
vanessatran-ddi Jun 17, 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
5 changes: 5 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Generated docs files: collapse by default in GitHub PR diffs (linguist-generated).
# Deterministic build outputs (see docs/ARCHITECTURE.md). They stay fully diffable,
# searchable, and in history; this only hides them by default in the Files Changed tab.
docs/generated/** linguist-generated=true
docs/public/search-index.json linguist-generated=true
126 changes: 126 additions & 0 deletions .github/workflows/dev-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
name: Dev Release & Preview

on:
push:
branches: [dev]
workflow_dispatch:

concurrency:
group: dev-release
cancel-in-progress: false

permissions:
contents: write
id-token: write # Required for OIDC

jobs:
dev-release:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0

- uses: actions/setup-node@v6
with:
node-version: "24"
cache: "npm"
cache-dependency-path: |
package-lock.json
docs/package-lock.json

- name: Install npm 11
run: npm install -g npm@11

- name: Install dependencies
run: |
npm ci
cd docs && npm ci --legacy-peer-deps

# ---- Release libs to npm (dev prerelease channel) ----
- name: Get last successful commit
uses: nrwl/nx-set-shas@v4
id: last_successful_commit
with:
main-branch-name: ${{ github.ref_name }}

- name: Build libs
run: npm run build:prod

- name: Fix web-component lib README
run: cp libs/web-components/README.md dist/libs/web-components

- name: Release libs
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npx nx affected --target release --parallel=false --base=${{ steps.last_successful_commit.outputs.base }}

# ---- Build + deploy docs & playground previews to Pages ----
- name: Build docs
env:
PREVIEW_SITE: https://govalta.github.io
PREVIEW_BASE: /ui-components/dev/
run: npx nx run docs:build

- name: Build React playground
env:
PREVIEW_BASE_REACT: /ui-components/dev-react/
run: npx nx run react-prs:build:production

- name: Build Angular playground
env:
PREVIEW_BASE_ANGULAR: /ui-components/dev-angular/
run: npx nx run angular-prs:build:production --base-href=$PREVIEW_BASE_ANGULAR

# force: false => rebase onto the latest gh-pages instead of force-pushing,
# so a concurrent PR-preview deploy to a different folder is not clobbered.
# clean-exclude protects the sibling folders as a safety net.
- name: Deploy docs
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: gh-pages
folder: ./dist/docs
target-folder: dev
force: false
attempt-limit: 5
clean: true
clean-exclude: |
pr-preview
pr-preview-react
pr-preview-angular
dev-react
dev-angular

- name: Deploy React playground
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: gh-pages
folder: ./dist/apps/prs/react
target-folder: dev-react
force: false
attempt-limit: 5
clean: true
clean-exclude: |
pr-preview
pr-preview-react
pr-preview-angular
dev
dev-angular

- name: Deploy Angular playground
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: gh-pages
folder: ./dist/apps/prs/angular/browser
target-folder: dev-angular
force: false
attempt-limit: 5
clean: true
clean-exclude: |
pr-preview
pr-preview-react
pr-preview-angular
dev
dev-react
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
name: Release CI
name: Main Release

on:
push:
branches:
- main
- next
- dev

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
Expand Down Expand Up @@ -48,17 +46,14 @@ jobs:

- name: Release libs
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npx nx affected --target release --parallel=false --base=${{ steps.last_successful_commit.outputs.base }}

release-docs:
runs-on: ubuntu-latest
needs: build

# this will get changed to main in the future
if: github.ref == 'refs/heads/dev'

steps:
- uses: actions/checkout@v5
with:
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ on:
pull_request:
branches:
- main
- next
- dev

jobs:
Expand Down
4 changes: 0 additions & 4 deletions .releaserc.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@
"branches": [
"+([0-9])?(.{+([0-9]),x}).x",
"main",
{
"name": "next",
"prerelease": true
},
{
"name": "dev",
"prerelease": true
Expand Down
158 changes: 91 additions & 67 deletions apps/prs/angular/src/app/app.component.html
Original file line number Diff line number Diff line change
@@ -1,78 +1,102 @@
@if (!isFullPage) {
<div style="min-height: 100vh; display: flex; flex-direction: column">
<section slot="header" id="top" class="width" role="header" style="flex: 0 0 auto">
<goab-microsite-header type="alpha" version="UAT" />
<goab-app-header heading="Testing Playground" [url]="baseHref"></goab-app-header>
</section>
<ng-template #sideMenuTpl>
<goab-work-side-menu
heading="Testing Playground"
[url]="baseHref"
[open]="true"
(onNavigate)="handleNavigate($event)"
[primaryContent]="primaryTemplate"
[secondaryContent]="tokenToggleTemplate"
/>
</ng-template>
<ng-template #tokenToggleTemplate>
<goab-work-side-menu-item
[label]="'Switch to ' + (tokenMode === 'v1' ? 'V2' : 'V1') + ' tokens'"
icon="swap-horizontal"
[url]="tokenToggleUrl"
/>
<goab-work-side-menu-item
[icon]="theme.mode() === 'dark' ? 'sunny' : 'moon'"
[label]="theme.mode() === 'dark' ? 'Light mode' : 'Dark mode'"
url="#toggle-theme"
/>
</ng-template>

<div
style="display: flex; flex: 1 1 auto; min-height: calc(100vh - 10.1875rem)"
[style.--goa-work-side-menu-height]="workSideMenuHeight"
>
<goab-work-side-menu
heading="Testing Playground"
[url]="baseHref"
[open]="true"
(onNavigate)="handleNavigate($event)"
[primaryContent]="primaryTemplate"
[secondaryContent]="secondaryTemplate"
>
</goab-work-side-menu>

<ng-template #secondaryTemplate>
<ng-template #primaryTemplate>
<goab-work-side-menu-item
label="All Components"
[url]="baseHref + 'everything'"
icon="list"
/>
<goab-work-side-menu-group icon="alert-circle" heading="Bugs">
@for (route of bugRouteDefinitions; track route.path) {
<goab-work-side-menu-item
[label]="'Switch to ' + (tokenMode === 'v1' ? 'V2' : 'V1') + ' tokens'"
icon="swap-horizontal"
[url]="tokenToggleUrl"
></goab-work-side-menu-item>
[label]="route.id + ' - ' + route.title"
[url]="baseHref + route.path"
/>
}
</goab-work-side-menu-group>
<goab-work-side-menu-group icon="book" heading="Docs">
@for (route of docsRouteDefinitions; track route.path) {
<goab-work-side-menu-item [label]="route.title" [url]="baseHref + route.path" />
}
</goab-work-side-menu-group>
<goab-work-side-menu-group icon="star" heading="Features">
@for (route of featureRouteDefinitions; track route.path) {
<goab-work-side-menu-item
[icon]="theme.mode() === 'dark' ? 'sunny' : 'moon'"
[label]="theme.mode() === 'dark' ? 'Light mode' : 'Dark mode'"
url="#toggle-theme"
></goab-work-side-menu-item>
</ng-template>
[label]="route.id + ' - ' + route.title"
[url]="baseHref + route.path"
/>
}
</goab-work-side-menu-group>
</ng-template>

<ng-template #primaryTemplate>
<goab-work-side-menu-item
label="All Components"
[url]="baseHref + 'everything'"
icon="list"
></goab-work-side-menu-item>
<goab-work-side-menu-group icon="alert-circle" heading="Bugs">
@for (route of bugRouteDefinitions; track route.path) {
<goab-work-side-menu-item
[label]="route.id + ' - ' + route.title"
[url]="baseHref + route.path"
></goab-work-side-menu-item>
}
</goab-work-side-menu-group>
<goab-work-side-menu-group icon="book" heading="Docs">
@for (route of docsRouteDefinitions; track route.path) {
<goab-work-side-menu-item
[label]="route.title"
[url]="baseHref + route.path"
></goab-work-side-menu-item>
}
</goab-work-side-menu-group>
<goab-work-side-menu-group icon="star" heading="Features">
@for (route of featureRouteDefinitions; track route.path) {
<goab-work-side-menu-item
[label]="route.id + ' - ' + route.title"
[url]="baseHref + route.path"
></goab-work-side-menu-item>
}
</goab-work-side-menu-group>
</ng-template>
<section style="padding: 30px; width: 100%" role="main">
<router-outlet></router-outlet>
</section>
<ng-template #pageHeaderTpl>
<goab-app-header heading="Testing Playground" [url]="baseHref" />
</ng-template>
<ng-template #pageFooterTpl>
<goab-app-footer maxContentWidth="100%" />
</ng-template>

<ng-template #pushActionsTpl>
<goab-button-group alignment="end">
<goab-button type="secondary" (onClick)="closePushDrawer()">Cancel</goab-button>
<goab-button type="primary" (onClick)="closePushDrawer()">Save</goab-button>
</goab-button-group>
</ng-template>

<ng-template #pushDrawerTpl>
<goab-push-drawer
testId="push-drawer-v2"
heading="Push Drawer V2 test"
[open]="pushDrawerOpen()"
width="492px"
[actions]="pushActionsTpl"
(onClose)="closePushDrawer()"
>
@for (n of pushDrawerParagraphs; track n) {
<p>
Paragraph {{ n }} — Push Drawer V2 now uses goa-scroll-panel internally. Verify
header sticky + actions sticky + content scrolls + outer chrome morphs
(margins/radius/height) as scroll state changes between top / middle / bottom.
</p>
}
</goab-push-drawer>
</ng-template>

<goab-workspace-layout
[sideMenu]="sideMenuTpl"
[pageHeader]="pageHeaderTpl"
[pageFooter]="pageFooterTpl"
[pushDrawer]="isPushDrawerRoute ? pushDrawerTpl : undefined"
>
<div style="padding: 30px">
<router-outlet />
</div>
<section slot="footer" role="footer" style="flex: 0 0 auto">
<goab-app-footer maxContentWidth="100%" />
</section>
</div>
</goab-workspace-layout>
}

@if (isFullPage) {
<router-outlet></router-outlet>
<router-outlet />
}
Loading
Loading