Skip to content

Commit a7fa84e

Browse files
committed
DC-141 Merge: Main into feature/DC-141-fetch-household-data-via-phone-number-co-cbms
2 parents 0868e8a + 5280198 commit a7fa84e

53 files changed

Lines changed: 2358 additions & 684 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.adr-dir

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1+
12
docs/adr

.env.example

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,10 @@ MSSQL_DATABASE=SebtPortal
2020
MSSQL_USER=sa
2121
MSSQL_SERVER=mssql
2222
MSSQL_PORT=1433
23+
24+
# OIDC Step-up
25+
# Next.js reads these from .env.local; copy from src/SEBT.Portal.Web/.env.example
26+
# OIDC_STEP_UP_DISCOVERY_ENDPOINT=https://auth.pingone.com/YOUR_ENV_ID/as/.well-known/openid-configuration
27+
# OIDC_STEP_UP_CLIENT_ID=your_step_up_client_id
28+
# OIDC_STEP_UP_CLIENT_SECRET=your_step_up_client_secret
29+
# OIDC_STEP_UP_REDIRECT_URI=http://localhost:3000/callback

.github/workflows/playwright-e2e.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ jobs:
9494
STATE: dc
9595
NEXT_PUBLIC_STATE: dc
9696
ASPNETCORE_ENVIRONMENT: Development
97+
# Required at startup (AddPlugins); paths may be absent — MEF skips missing dirs and defaults apply.
98+
PluginAssemblyPaths__0: plugins-dc
9799
ConnectionStrings__DefaultConnection: "Server=localhost,1433;Database=SebtPortal;User Id=sa;Password=YourStrong@Passw0rd;TrustServerCertificate=True;"
98100
JwtSettings__SecretKey: "ci-e2e-jwt-secret-at-least-32-characters-long"
99101
IdentifierHasher__SecretKey: "ci-e2e-identifier-hasher-key-32chars"

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44
"private": true,
55
"description": "Summer EBT (SUN Bucks) Self-Service Portal - Root package for convenience scripts",
66
"scripts": {
7-
"dev": "concurrently -n \"API,Web\" -c \"blue,green\" \"pnpm api:dev\" \"pnpm web:dev\"",
7+
"dev": "pnpm dev:kill-port && concurrently -n \"API,Web\" -c \"blue,green\" \"pnpm api:dev\" \"pnpm web:dev\"",
8+
"dev:kill-port": "lsof -ti :5280 | xargs kill 2>/dev/null; sleep 2 || true",
89
"web:dev": "pnpm --filter @sebt/web dev",
9-
"api:dev": "ASPNETCORE_ENVIRONMENT=Development dotnet watch --project src/SEBT.Portal.Api",
10+
"api:dev": "ASPNETCORE_ENVIRONMENT=Development dotnet watch run --project src/SEBT.Portal.Api --launch-profile http",
1011
"api:build": "dotnet build",
1112
"api:test": "dotnet test",
1213
"api:restore": "dotnet restore",

packages/design-system/content/scripts/generate-locales.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,8 @@ const CONFIG = {
125125
'otp email message': 'login',
126126
// S2 - Log In Disclaimer (maps to login namespace)
127127
'log in disclaimer': 'login',
128+
// S8 - OIDC/MyColorado callback
129+
'callback': 'login',
128130
// S8 - Identity proofing
129131
'id proofing optional id info': 'idProofing',
130132
// S8 - Opt-in preferences
@@ -152,6 +154,7 @@ const CONFIG = {
152154
'otp confirm': 'verify',
153155
'otp email message': 'email',
154156
'co-loaded off-boarding': 'coLoaded',
157+
'callback': 'callback',
155158
},
156159
};
157160

packages/design-system/content/states/co.csv

Lines changed: 260 additions & 249 deletions
Large diffs are not rendered by default.

packages/design-system/content/states/dc.csv

Lines changed: 254 additions & 243 deletions
Large diffs are not rendered by default.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/* Info summary callout — uses CSS variables from USWDS/theme with fallbacks when unset. */
2+
.summaryBox {
3+
display: flex;
4+
padding: var(--usa-spacing-3, 24px);
5+
flex-direction: column;
6+
align-items: flex-start;
7+
gap: 8px;
8+
align-self: stretch;
9+
border-radius: 4px;
10+
border: 1px solid var(--Theme-Info-info, #00bde3);
11+
background: var(--Theme-Info-info-lighter, #e7f6f8);
12+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { render, screen } from '@testing-library/react'
2+
import { describe, expect, it } from 'vitest'
3+
4+
import { SummaryBox } from './SummaryBox'
5+
6+
describe('SummaryBox', () => {
7+
it('renders children', () => {
8+
render(
9+
<SummaryBox>
10+
<p>Summary content</p>
11+
</SummaryBox>
12+
)
13+
expect(screen.getByText('Summary content')).toBeInTheDocument()
14+
})
15+
})
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import type { HTMLAttributes, ReactNode } from 'react'
2+
3+
import styles from './SummaryBox.module.css'
4+
5+
export interface SummaryBoxProps extends HTMLAttributes<HTMLDivElement> {
6+
children: ReactNode
7+
}
8+
9+
/**
10+
* Bordered info panel for short supporting copy.
11+
*/
12+
export function SummaryBox({ children, className = '', ...rest }: SummaryBoxProps) {
13+
const combined = `${styles.summaryBox} ${className}`.trim()
14+
return (
15+
<div
16+
className={combined}
17+
{...rest}
18+
>
19+
{children}
20+
</div>
21+
)
22+
}

0 commit comments

Comments
 (0)