Skip to content

Commit f2145cb

Browse files
committed
feat(#3904): add release notes page
1 parent 01b2668 commit f2145cb

10 files changed

Lines changed: 1016 additions & 1 deletion

File tree

docs/src/components/ReleaseNotesFeed.tsx

Lines changed: 563 additions & 0 deletions
Large diffs are not rendered by default.

docs/src/components/search/quick-links.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export const quickLinks: QuickLink[] = [
2222
{ label: "Components", href: "/components", icon: "shapes" },
2323
{ label: "Design tokens", href: "/tokens", icon: "code-slash" },
2424
{ label: "Get support", href: "/support", icon: "help-circle" },
25-
{ label: "Release notes", href: "https://github.com/GovAlta/ui-components/releases", icon: "open" },
25+
{ label: "Release notes", href: "/release-notes", icon: "flag" },
2626
];
2727

2828
/**

docs/src/content/config.ts

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,11 +274,72 @@ const getStarted = defineCollection({
274274
}),
275275
});
276276

277+
/**
278+
* Release Notes Collection
279+
* One entry per coordinated release, date-spined (not per-package). Changes are
280+
* authored as title + detail (Claude/Notion changelog style), not grouped by
281+
* change-type. Affected package versions are quiet metadata, listed only for
282+
* the packages that actually changed. Reserved treatments (highlight card,
283+
* breaking callout) are opt-in per change via `major` / `breaking`, so the feed
284+
* stays calm and the emphasis means something.
285+
*
286+
* Deliberately loose, provisional schema for the v1 in-site mock (Brief 123).
287+
* A `data` collection (not MDX) so changes stay structured. Finalized schema,
288+
* history backfill, and GitHub scaffold automation are deferred to later PRs.
289+
*/
290+
const releaseNotes = defineCollection({
291+
type: "data",
292+
schema: z.object({
293+
// Date-spine: ISO date of the coordinated release (newest sorts first).
294+
date: z.string(),
295+
// Optional one-line intro/context Dustin sometimes adds.
296+
intro: z.string().optional(),
297+
// Packages that actually changed this release (quiet version line, not badges).
298+
versions: z.array(
299+
z.object({
300+
package: z.enum(["web-components", "react", "angular", "common"]),
301+
version: z.string(),
302+
}),
303+
),
304+
// Changes as title + detail. Plain text by default; major/breaking opt into
305+
// the reserved card/callout treatments.
306+
changes: z.array(
307+
z.object({
308+
title: z.string(),
309+
detail: z.string().optional(),
310+
// Optional sub-points (Claude/Notion-style bullets under a title).
311+
bullets: z.array(z.string()).optional(),
312+
// Component slug(s) this change touches -> quiet live links.
313+
components: z.array(z.string()).optional(),
314+
// Optional issue/PR reference for developers (number or URL).
315+
issue: z.string().optional(),
316+
// Doc / "learn more" links: internal docs (e.g. /get-started/...) or
317+
// external URLs. Internal links navigate in-place; external open in a tab.
318+
links: z
319+
.array(z.object({ label: z.string(), href: z.string() }))
320+
.optional(),
321+
// Reserved treatments: experimental -> low-emphasis information callout;
322+
// breaking -> low-emphasis emergency callout (+ migration).
323+
experimental: z.boolean().optional(),
324+
breaking: z.boolean().optional(),
325+
migration: z
326+
.object({
327+
before: z.string().optional(),
328+
after: z.string().optional(),
329+
link: z.string().optional(),
330+
})
331+
.optional(),
332+
}),
333+
),
334+
}),
335+
});
336+
277337
export const collections = {
278338
components,
279339
guidance,
280340
examples,
281341
foundations,
282342
productTypes,
283343
"get-started": getStarted,
344+
"release-notes": releaseNotes,
284345
};
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{
2+
"date": "2023-01-31",
3+
"versions": [
4+
{ "package": "react", "version": "4.5.0" },
5+
{ "package": "web-components", "version": "1.5.0" }
6+
],
7+
"changes": [
8+
{
9+
"title": "Stylesheet import path changed",
10+
"detail": "If you update web-components, your styles need a small change: remove @abgov/styles from your package.json, then point your stylesheet import at the web-components package instead.",
11+
"breaking": true,
12+
"migration": {
13+
"before": "@import \"@abgov/styles/styles.esm.css\";",
14+
"after": "@import \"@abgov/web-components/index.css\";"
15+
}
16+
},
17+
{
18+
"title": "Pagination component",
19+
"detail": "A new Pagination component is now available.",
20+
"components": ["pagination"]
21+
},
22+
{
23+
"title": "Design tokens across the system",
24+
"detail": "The whole design system now uses design tokens, so colour, font, and other value updates reach your team quickly and easily."
25+
},
26+
{
27+
"title": "Input background colour",
28+
"detail": "The background colour for input components is now white.",
29+
"components": ["input"]
30+
},
31+
{
32+
"title": "Dynamic dropdown items",
33+
"detail": "Items populated dynamically now update correctly in the dropdown.",
34+
"components": ["dropdown"]
35+
},
36+
{
37+
"title": "Documentation updates",
38+
"bullets": [
39+
"New Skeleton examples for line count and max width.",
40+
"Added documentation on our supported browsers."
41+
]
42+
}
43+
]
44+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"date": "2024-07-22",
3+
"versions": [
4+
{ "package": "web-components", "version": "1.23.1" }
5+
],
6+
"changes": [
7+
{
8+
"title": "App Header link alignment",
9+
"detail": "Active header links are now vertically centered.",
10+
"components": ["app-header"]
11+
}
12+
]
13+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"date": "2026-05-14",
3+
"versions": [
4+
{ "package": "web-components", "version": "2.1.2" },
5+
{ "package": "react", "version": "7.1.2" }
6+
],
7+
"changes": [
8+
{
9+
"title": "Tooltip clipping near scroll edges",
10+
"detail": "Tooltips no longer clip at the edge of a scrolling container.",
11+
"components": ["tooltip"]
12+
},
13+
{
14+
"title": "Dropdown keyboard navigation",
15+
"detail": "Arrow keys now move through filtered options in the correct order.",
16+
"components": ["dropdown"]
17+
}
18+
]
19+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
{
2+
"date": "2026-05-20",
3+
"versions": [
4+
{ "package": "web-components", "version": "2.2.0" },
5+
{ "package": "react", "version": "7.2.0" },
6+
{ "package": "angular", "version": "5.2.0" },
7+
{ "package": "common", "version": "2.2.0" }
8+
],
9+
"changes": [
10+
{
11+
"title": "Dark mode",
12+
"detail": "Components now support dark mode. This is experimental while we gather feedback. Try it in your service and share what you learn, it will help shape the production version.",
13+
"experimental": true,
14+
"issue": "3873",
15+
"links": [
16+
{ "label": "Designing for dark mode", "href": "/get-started/designers/designing-for-dark-mode" },
17+
{ "label": "Dark mode theme for developers", "href": "/get-started/developers/dark-mode-theme" }
18+
]
19+
},
20+
{
21+
"title": "Accordion actions slot and filled heading",
22+
"detail": "Added support for an actions slot in the Accordion header, plus a new headingType property that can be set to \"filled\".",
23+
"components": ["accordion"]
24+
},
25+
{
26+
"title": "Badges in the Work Side Menu Item",
27+
"detail": "Added a trailingContent slot so you can place badges in a work side menu item.",
28+
"components": ["work-side-menu-item"],
29+
"issue": "3814"
30+
},
31+
{
32+
"title": "Consistent file upload validation",
33+
"detail": "Invalid uploaded files now render consistently as FileUploadCard components, including their validation error states.",
34+
"components": ["file-upload-card"]
35+
},
36+
{
37+
"title": "Interactive components no longer close their parent",
38+
"detail": "Fixed bubbling close events, so using a popover, date picker, dropdown, or drawer inside a parent component no longer closes the parent.",
39+
"components": ["popover", "date-picker", "dropdown", "drawer"]
40+
},
41+
{
42+
"title": "Temporary Notification progress indicators",
43+
"detail": "Progress and indeterminate notification types now render their progress indicators correctly.",
44+
"components": ["temporary-notification"]
45+
},
46+
{
47+
"title": "Visual design refinements",
48+
"detail": "Container, Drawer, and Dropdown were updated to better match the latest visual design.",
49+
"components": ["container", "drawer", "dropdown"]
50+
},
51+
{
52+
"title": "Documentation updates",
53+
"bullets": [
54+
"Corrected all React and Angular property and event documentation.",
55+
"Added documentation for the Notification Panel component.",
56+
"Added a new \"Updating your product\" guide.",
57+
"Fixed the Work Side Menu \"with user profile\" example to include the profile menu."
58+
]
59+
}
60+
]
61+
}

0 commit comments

Comments
 (0)