Skip to content

chore(v3): merge epic/v3 into reorg - #681

Merged
wesleyboar merged 102 commits into
TACC:epic/v3--reorgfrom
wesleyboar:chore/v3-reorg-merge-epic
Aug 6, 2026
Merged

chore(v3): merge epic/v3 into reorg#681
wesleyboar merged 102 commits into
TACC:epic/v3--reorgfrom
wesleyboar:chore/v3-reorg-merge-epic

Conversation

@wesleyboar

Copy link
Copy Markdown
Member

Overview

Syncs epic/v3--reorg with epic/v3's merge of main.

Related

Changes

  • merged epic/v3 (with main merged in) into epic/v3--reorg
  • placed new bootstrap4/content/typography-headings and tools/x-headings* files per the reorg's client-library directory structure
  • combined reorg's own portal headings variant with main's new cms-vs-bootstrap/docs-vs-bootstrap variants
  • combined reorg's footer Bootstrap4 side-effects caveat with main's newer footer note
  • removed headings--cms.hbs, superseded by the generic headings.hbs view

Testing

  1. npm run build - no errors
  2. npm run lint - No dist files found in source. Ready to publish.

UI

wesleyboar and others added 30 commits March 18, 2026 16:37
## Overview

Prepare for v2.54.0 release.
## Overview

Define `@mixin`s for `.align-*` classes.

<sup>So [TACC/Core-CMS](https://github.com/TACC/Core-) can use them to
align images that have such classes but are within an `<a>` or
`<figure>`.</sup>

## Related

- required by https://github.com/TACC/Core-CMS/pull/___

## Changes

- **adds** (and uses) simple mixins for simple classes

## Testing

1. `npm run build:css` has no change to `dist/`

## UI

Skipped.

<sup>The fact that `dist/` is unchanged on build means build output is
identical.</sup>
Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to
2.3.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/micromatch/picomatch/releases">picomatch's
releases</a>.</em></p>
<blockquote>
<h2>2.3.2</h2>
<p>This is a security release fixing several security relevant
issues.</p>
<h2>What's Changed</h2>
<ul>
<li>fix: exception when glob pattern contains constructor by <a
href="https://github.com/Jason3S"><code>@​Jason3S</code></a> in <a
href="https://redirect.github.com/micromatch/picomatch/pull/144">micromatch/picomatch#144</a></li>
<li>Fix for <a
href="https://github.com/micromatch/picomatch/security/advisories/GHSA-c2c7-rcm5-vvqj">CVE-2026-33671</a></li>
<li>Fix for <a
href="https://github.com/micromatch/picomatch/security/advisories/GHSA-3v7f-55p6-f55p">CVE-2026-33672</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2">https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md">picomatch's
changelog</a>.</em></p>
<blockquote>
<h1>Release history</h1>
<p><strong>All notable changes to this project will be documented in
this file.</strong></p>
<p>The format is based on <a
href="http://keepachangelog.com/en/1.0.0/">Keep a Changelog</a>
and this project adheres to <a
href="http://semver.org/spec/v2.0.0.html">Semantic Versioning</a>.</p>
<!-- raw HTML omitted -->
<ul>
<li>Changelogs are for humans, not machines.</li>
<li>There should be an entry for every single version.</li>
<li>The same types of changes should be grouped.</li>
<li>Versions and sections should be linkable.</li>
<li>The latest version comes first.</li>
<li>The release date of each versions is displayed.</li>
<li>Mention whether you follow Semantic Versioning.</li>
</ul>
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<p>Changelog entries are classified using the following labels <em>(from
<a href="http://keepachangelog.com/">keep-a-changelog</a></em>):</p>
<ul>
<li><code>Added</code> for new features.</li>
<li><code>Changed</code> for changes in existing functionality.</li>
<li><code>Deprecated</code> for soon-to-be removed features.</li>
<li><code>Removed</code> for now removed features.</li>
<li><code>Fixed</code> for any bug fixes.</li>
<li><code>Security</code> in case of vulnerabilities.</li>
</ul>
<!-- raw HTML omitted -->
<h2>4.0.0 (2024-02-07)</h2>
<h3>Fixes</h3>
<ul>
<li>Fix bad text values in parse <a
href="https://redirect.github.com/micromatch/picomatch/issues/126">#126</a>,
thanks to <a
href="https://github.com/connor4312"><code>@​connor4312</code></a></li>
</ul>
<h3>Changed</h3>
<ul>
<li>Remove process global to work outside of node <a
href="https://redirect.github.com/micromatch/picomatch/issues/129">#129</a>,
thanks to <a
href="https://github.com/styfle"><code>@​styfle</code></a></li>
<li>Add sideEffects to package.json <a
href="https://redirect.github.com/micromatch/picomatch/issues/128">#128</a>,
thanks to <a
href="https://github.com/frandiox"><code>@​frandiox</code></a></li>
<li>Removed <code>os</code>, make compatible browser environment. See <a
href="https://redirect.github.com/micromatch/picomatch/issues/124">#124</a>,
thanks to <a
href="https://github.com/gwsbhqt"><code>@​gwsbhqt</code></a></li>
</ul>
<h2>3.0.1</h2>
<h3>Fixes</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/micromatch/picomatch/commit/81cba8d4b767cab3cb29d26eb4f691eed75b73b2"><code>81cba8d</code></a>
Publish 2.3.2</li>
<li><a
href="https://github.com/micromatch/picomatch/commit/fc1f6b69006e9435caf8fb40d8aff378bc0b7bce"><code>fc1f6b6</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/micromatch/picomatch/commit/eec17aee5428a7249e9ca5adbb8a0d28fa29619b"><code>eec17ae</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/micromatch/picomatch/commit/78f8ca4362d9e66cadea97b93e292f10096452ed"><code>78f8ca4</code></a>
Merge pull request <a
href="https://redirect.github.com/micromatch/picomatch/issues/156">#156</a>
from micromatch/backport-144</li>
<li><a
href="https://github.com/micromatch/picomatch/commit/3f4f10eaa65bf3a52e8f2999674cd27e11fa3c9b"><code>3f4f10e</code></a>
Merge pull request <a
href="https://redirect.github.com/micromatch/picomatch/issues/144">#144</a>
from Jason3S/jdent-object-properties</li>
<li>See full diff in <a
href="https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=picomatch&package-manager=npm_and_yarn&previous-version=2.3.1&new-version=2.3.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/TACC/Core-Styles/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Overview / Changes

Use `@define-mixin` and `@mixin` for figure and blockquote mixins.

> [!TIP]
> Backwards-compatible.

## Related

- used by https://github.com/TACC/Core-CMS/pull/__

## Testing

1. `npm run build:css`
2. No _functional_ change to `/dist`.[^1]


[^1]: Diff of `/dist` is build-noise from mixin expansion + selector
de-grouping; behavior is unchanged; deprecated .x-figure* and
.x-blockquote* compatibility exists, just as separate rulesets. I
manually reviewed and suspected this. A.I. verified it independently.

## UI

Skipped.
## Overview

Fix caption text not legible on dark section cuz dark text was used.

## Related

- required by TACC/tup-ui#537

## Changes

- **changes** dark color tex to lower opacity text

## Testing

1. Compare caption on
http://localhost:3001/components/preview/html-elements--docs before and
after.
2. Verify color changes because of `opacity` not `color`.

## UI

| before | after |
| - | - |
| <img width="900" height="475" alt="Screenshot 2026-03-26 at 15 14 58"
src="https://github.com/user-attachments/assets/0175570c-93f3-4438-8280-733ed8ebfdd4"
/> | <img width="900" height="475" alt="Screenshot 2026-03-26 at 15 16
01"
src="https://github.com/user-attachments/assets/275dc3f5-440f-4d90-a4a9-095fa27fbd50"
/> |
## Overview

Restore `#222222` as value for `--global-color-primary--xx-dark`.

The `#000000` was an overcorrection, and is too stark.

## Related

- required by TACC/tup-ui#537
- reported in [2026-03-19 TUP Testing Session: Release v1.1.21
(-rc1)](https://tacc-main.atlassian.net/wiki/x/AQCbRg)

## Changes

- **changed** "Primitives/v2" `dark-2x` token back to `TACC#222` from `#000`

## Testing

TACC/tup-ui#537 will have me test colors again
on TUP client dev server.

## UI

Skipped. Simple token change. Diff shows what I expect.
## Overview

Prepare for v2.54.0-rc1 release.
- Changed "bin" from a string to an object to specify "core-styles" as the command.
- Updated "repository" field to use an object format with "type" and "url" properties.
## Overview

Prepare for v2.54.1-rc1 release.
## Overview

Allow publishing "release candidate" versions to NPM via script.

## Changes

- Changed the way version numbers are extracted and used in the script.
- Updated checks for published versions to use the new version number
variable.
- Added logic to handle release candidate tags during npm publish.

## Testing

This is how I published [`v2.54.1-rc1` on
NPM](https://www.npmjs.com/package/@tacc/core-styles/v/2.54.1-rc1).
## Overview

Feed list should not hide overflow, because:
- that crops focus outline
- the text can just wrap
    <sup>if editor makes it too long[^1]</sup>

[^1]: A pattern library's CSS is to style, not to stop ridiculous text
content from being used.

## Related

- found during [2026-03-19 TUP Testing Session: Release v1.1.21
(-rc1)](https://tacc-main.atlassian.net/wiki/pages/resumedraft.action?draftId=1184563201)
- mirrored by
TACC/tup-ui@6838ca0

## Changes

- **deletes** styles

## Testing & UI


https://github.com/user-attachments/assets/66c53e7a-4d1d-4dd4-b960-8c9b1ddea02a

| text can wrap |
| - |
| <img width="900" height="475" alt="text can wrap"
src="https://github.com/user-attachments/assets/90e677a2-a939-41bf-bffb-dc6c89c37b3a"
/> |
## Overview

Prepare to release `v2.54.1`.
Bumps [handlebars](https://github.com/handlebars-lang/handlebars.js)
from 4.7.8 to 4.7.9.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/handlebars-lang/handlebars.js/releases">handlebars's
releases</a>.</em></p>
<blockquote>
<h2>v4.7.9</h2>
<ul>
<li>fix: enable shell mode for spawn to resolve Windows EINVAL issue -
e0137c2</li>
<li>fix type &quot;RuntimeOptions&quot; also accepting string partials -
eab1d14</li>
<li>feat(types): set <code>hash</code> to be a <code>Record&lt;string,
any&gt;</code> - de4414d</li>
<li>fix non-contiguous program indices - 4512766</li>
<li>refactor: rename i to startPartIndex - e497a35</li>
<li>security: fix security issues - 68d8df5
<ul>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2w6w-674q-4c4q">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2w6w-674q-4c4q</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-3mfm-83xf-c92r">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-3mfm-83xf-c92r</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xhpv-hc6g-r9c6">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xhpv-hc6g-r9c6</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xjpj-3mr7-gcpf">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xjpj-3mr7-gcpf</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-9cx6-37pm-9jff">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-9cx6-37pm-9jff</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2qvq-rjwj-gvw9">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2qvq-rjwj-gvw9</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-7rx3-28cr-v5wh">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-7rx3-28cr-v5wh</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-442j-39wm-28r2">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-442j-39wm-28r2</a></li>
</ul>
</li>
</ul>
<p><a
href="https://github.com/handlebars-lang/handlebars.js/compare/v4.7.8...v4.7.9">Commits</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/handlebars-lang/handlebars.js/blob/v4.7.9/release-notes.md">handlebars's
changelog</a>.</em></p>
<blockquote>
<h2>v4.7.9 - March 26th, 2026</h2>
<ul>
<li>fix: enable shell mode for spawn to resolve Windows EINVAL issue -
e0137c2</li>
<li>fix type &quot;RuntimeOptions&quot; also accepting string partials -
eab1d14</li>
<li>feat(types): set <code>hash</code> to be a <code>Record&lt;string,
any&gt;</code> - de4414d</li>
<li>fix non-contiguous program indices - 4512766</li>
<li>refactor: rename i to startPartIndex - e497a35</li>
<li>security: fix security issues - 68d8df5</li>
</ul>
<p><a
href="https://github.com/handlebars-lang/handlebars.js/compare/v4.7.8...v4.7.9">Commits</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/dce542c9a660048d31f0981ac8a45c08b919bddb"><code>dce542c</code></a>
v4.7.9</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/8a41389ba5b2624b6f43a5463d8e2533b843a562"><code>8a41389</code></a>
Update release notes</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/68d8df5a88e0a26fe9e6084c5c6aaebe67b07da2"><code>68d8df5</code></a>
Fix security issues</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/b2a083136b11e1da9f0f47a11f749a9830a49328"><code>b2a0831</code></a>
Fix browser tests</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/9f98c1629834abf8de5a127caff8a2eab03d2c12"><code>9f98c16</code></a>
Fix release script</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/45443b4290475dfb7cec32a85d344f12ab345eb9"><code>45443b4</code></a>
Revert &quot;Improve partial indenting performance&quot;</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/8841a5f6d35096aee95d68e1e49636a4cb5c661e"><code>8841a5f</code></a>
Fix CI errors with linting</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/e0137c26f2202593bca7cc25184e733e87d54709"><code>e0137c2</code></a>
fix: enable shell mode for spawn to resolve Windows EINVAL issue</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/e914d6037ffb0dd371f7e4823cdb019732ae66d7"><code>e914d60</code></a>
Improve rendering performance</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/7de4b41c344a5d702edca93d1841b59642fa32bd"><code>7de4b41</code></a>
Upgrade GitHub Actions checkout and setup-node on 4.x branch</li>
<li>Additional commits viewable in <a
href="https://github.com/handlebars-lang/handlebars.js/compare/v4.7.8...v4.7.9">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=handlebars&package-manager=npm_and_yarn&previous-version=4.7.8&new-version=4.7.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/TACC/Core-Styles/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Overview

Adds a Bootstrap 4 extension for the [media
object](https://getbootstrap.com/docs/4.6/components/media-object/),
`.media-link` modifier which aligns thumbnail and body.

Demo has variant markup for Bootstrap and TACC.

## Related

- used by TACC/tup-ui#535

## Changes

- **added** stylesheet
- **added** demo

## Testing

1. Run `npm run build:css` and confirm `dist/core-styles.bootstrap4.css`
includes `.media-link`.
2. Run `npm start` (or `npm run build:demo`) and open the Bootstrap 3.
[**Media** pattern](http://localhost:3000/components/detail/media);
confirm examples match intended layout.

## UI

<img width="900" height="475" alt="boostrap media extended by tacc"
src="https://github.com/user-attachments/assets/100b5780-146c-4b71-91db-3dfb1e97c6fd"
/>
> [!IMPORTANT]
> This is the missing commit from TACC#620.
Not legible enough on white background.

Was legible enough on black background, and still is.
Explained the pull request template with additional comments.
## Overview

Adds an `o-section--style-accent` variant (pale blue band).

## Related

- required by TACC/Core-CMS-Custom#531

## Changes

- **added** accent style block `section…accent`
- **updated** template, config, readme
- **built** `dist/`

## Testing

1. `npm run build:css` — confirm `dist/objects/o-section.css` includes
accent selectors and warning tokens
2. `npm start` — open
[o-section--style-accent](http://localhost:3000/components/preview/o-section--style-accent)
and confirm it reads clearly next to default, muted, and nested variants

## UI

<img width="1783" height="5585"
alt="localhost_3000_components_preview_o-section--style-accent"
src="https://github.com/user-attachments/assets/415c7ec8-5ddb-44bb-8f44-475bb1d452f7"
/>

## Notes

Aggregated `dist/` edits (e.g. `core-styles.*.css`, `x-blockquote`,
`x-figure`, `html-elements.docs`) are from the shared CSS build picking
up selector list changes, not separate feature work.
## Overview

Restore borders between pairs of the same style section.

## Related

- lost at some point, dunno when

## Changes

- **added** border
- **changed** border colors (for sections)


## Testing

1. `npm run build:css`
2. `npm start`
3. Open:
    - http://localhost:3000/components/preview/o-section--style-light
    - http://localhost:3000/components/preview/o-section--style-muted
    - http://localhost:3000/components/preview/o-section--style-accent
    - http://localhost:3000/components/preview/o-section--style-dark

## UI

| Light | Muted |
| - | - |
| <img width="900" height="295" alt="light"
src="https://github.com/user-attachments/assets/6ac22a6d-cb70-47e5-a61c-efb720c1a40e"
/> | <img width="900" height="295" alt="muted"
src="https://github.com/user-attachments/assets/35b52820-a4ca-4758-b67c-53ec15509a1a"
/> |

| Dark | Accent |
| - | - |
| <img width="900" height="295" alt="dark"
src="https://github.com/user-attachments/assets/396caedc-d274-4dd1-a45d-d02571508910"
/> | <img width="900" height="295" alt="accent"
src="https://github.com/user-attachments/assets/305d99d0-e73d-40bb-a839-43103e8668f7"
/> |

<!--
## Notes

Optional: rollout, follow-ups, known limitations, unrelated dist churn.
-->
## Overview

Colors of headings in sections (besides light) had poor color contrast

## Related

- required by TACC/Core-CMS-Custom#531


## Changes

- **added** `h2` color overrides

## Testing

[Color contrast](https://webaim.org/resources/linkcontrastchecker/) of
heading passes AA:
- http://localhost:3000/components/preview/o-section--style-muted
- http://localhost:3000/components/preview/o-section--style-accent
- http://localhost:3000/components/preview/o-section--style-dark


## UI

<img width="900" height="470" alt="screenshot of section headings"
src="https://github.com/user-attachments/assets/0a4b9db2-241f-44a6-b382-2383ca25cde9"
/>

## Notes

Color contrast of heading with link is not great, but we don't create
headings with links inside them; the whole link might be a heading. If
we start doing link inside, I'll handle that case.
## Overview

Prepare for v2.55.0 release.
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.23 to 4.18.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/lodash/lodash/releases">lodash's
releases</a>.</em></p>
<blockquote>
<h2>4.18.1</h2>
<h2>Bugs</h2>
<p>Fixes a <code>ReferenceError</code> issue in <code>lodash</code>
<code>lodash-es</code> <code>lodash-amd</code> and
<code>lodash.template</code> when using the <code>template</code> and
<code>fromPairs</code> functions from the modular builds. See <a
href="https://redirect.github.com/lodash/lodash/issues/6167#issuecomment-4165269769">lodash/lodash#6167</a></p>
<p>These defects were related to how lodash distributions are built from
the main branch using <a
href="https://github.com/lodash-archive/lodash-cli">https://github.com/lodash-archive/lodash-cli</a>.
When internal dependencies change inside lodash functions, equivalent
updates need to be made to a mapping in the lodash-cli. (hey, it was
ahead of its time once upon a time!). We know this, but we missed it in
the last release. It's the kind of thing that passes in CI, but fails bc
the build is not the same thing you tested.</p>
<p>There is no diff on main for this, but you can see the diffs for each
of the npm packages on their respective branches:</p>
<ul>
<li><code>lodash</code>: <a
href="https://github.com/lodash/lodash/compare/4.18.0-npm...4.18.1-npm">https://github.com/lodash/lodash/compare/4.18.0-npm...4.18.1-npm</a></li>
<li><code>lodash-es</code>: <a
href="https://github.com/lodash/lodash/compare/4.18.0-es...4.18.1-es">https://github.com/lodash/lodash/compare/4.18.0-es...4.18.1-es</a></li>
<li><code>lodash-amd</code>: <a
href="https://github.com/lodash/lodash/compare/4.18.0-amd...4.18.1-amd">https://github.com/lodash/lodash/compare/4.18.0-amd...4.18.1-amd</a></li>
<li><code>lodash.template</code><a
href="https://github.com/lodash/lodash/compare/4.18.0-npm-packages...4.18.1-npm-packages">https://github.com/lodash/lodash/compare/4.18.0-npm-packages...4.18.1-npm-packages</a></li>
</ul>
<h2>4.18.0</h2>
<h2>v4.18.0</h2>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/lodash/lodash/compare/4.17.23...4.18.0">https://github.com/lodash/lodash/compare/4.17.23...4.18.0</a></p>
<h3>Security</h3>
<p><strong><code>_.unset</code> / <code>_.omit</code></strong>: Fixed
prototype pollution via <code>constructor</code>/<code>prototype</code>
path traversal (<a
href="https://github.com/lodash/lodash/security/advisories/GHSA-f23m-r3pf-42rh">GHSA-f23m-r3pf-42rh</a>,
<a
href="https://github.com/lodash/lodash/commit/fe8d32eda854377349a4f922ab7655c8e5df9a0b">fe8d32e</a>).
Previously, array-wrapped path segments and primitive roots could bypass
the existing guards, allowing deletion of properties from built-in
prototypes. Now <code>constructor</code> and <code>prototype</code> are
blocked unconditionally as non-terminal path keys, matching
<code>baseSet</code>. Calls that previously returned <code>true</code>
and deleted the property now return <code>false</code> and leave the
target untouched.</p>
<p><strong><code>_.template</code></strong>: Fixed code injection via
<code>imports</code> keys (<a
href="https://github.com/lodash/lodash/security/advisories/GHSA-r5fr-rjxr-66jc">GHSA-r5fr-rjxr-66jc</a>,
CVE-2026-4800, <a
href="https://github.com/lodash/lodash/commit/879aaa93132d78c2f8d20c60279da9f8b21576d6">879aaa9</a>).
Fixes an incomplete patch for CVE-2021-23337. The <code>variable</code>
option was validated against <code>reForbiddenIdentifierChars</code> but
<code>importsKeys</code> was left unguarded, allowing code injection via
the same <code>Function()</code> constructor sink. <code>imports</code>
keys containing forbidden identifier characters now throw
<code>&quot;Invalid imports option passed into
_.template&quot;</code>.</p>
<h3>Docs</h3>
<ul>
<li>Add security notice for <code>_.template</code> in threat model and
API docs (<a
href="https://redirect.github.com/lodash/lodash/pull/6099">#6099</a>)</li>
<li>Document <code>lower &gt; upper</code> behavior in
<code>_.random</code> (<a
href="https://redirect.github.com/lodash/lodash/pull/6115">#6115</a>)</li>
<li>Fix quotes in <code>_.compact</code> jsdoc (<a
href="https://redirect.github.com/lodash/lodash/pull/6090">#6090</a>)</li>
</ul>
<h3><code>lodash.*</code> modular packages</h3>
<p><a
href="https://redirect.github.com/lodash/lodash/pull/6157">Diff</a></p>
<p>We have also regenerated and published a select number of the
<code>lodash.*</code> modular packages.</p>
<p>These modular packages had fallen out of sync significantly from the
minor/patch updates to lodash. Specifically, we have brought the
following packages up to parity w/ the latest lodash release because
they have had CVEs on them in the past:</p>
<ul>
<li><a
href="https://www.npmjs.com/package/lodash.orderby">lodash.orderby</a></li>
<li><a
href="https://www.npmjs.com/package/lodash.tonumber">lodash.tonumber</a></li>
<li><a
href="https://www.npmjs.com/package/lodash.trim">lodash.trim</a></li>
<li><a
href="https://www.npmjs.com/package/lodash.trimend">lodash.trimend</a></li>
<li><a
href="https://www.npmjs.com/package/lodash.sortedindexby">lodash.sortedindexby</a></li>
<li><a
href="https://www.npmjs.com/package/lodash.zipobjectdeep">lodash.zipobjectdeep</a></li>
<li><a
href="https://www.npmjs.com/package/lodash.unset">lodash.unset</a></li>
<li><a
href="https://www.npmjs.com/package/lodash.omit">lodash.omit</a></li>
<li><a
href="https://www.npmjs.com/package/lodash.template">lodash.template</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/lodash/lodash/commit/cb0b9b9212521c08e3eafe7c8cb0af1b42b6649e"><code>cb0b9b9</code></a>
release(patch): bump main to 4.18.1 (<a
href="https://redirect.github.com/lodash/lodash/issues/6177">#6177</a>)</li>
<li><a
href="https://github.com/lodash/lodash/commit/75535f57883b7225adb96de1cfc1cd4169cfcb51"><code>75535f5</code></a>
chore: prune stale advisory refs (<a
href="https://redirect.github.com/lodash/lodash/issues/6170">#6170</a>)</li>
<li><a
href="https://github.com/lodash/lodash/commit/62e91bc6a39c98d85b9ada8c44d40593deaf82a4"><code>62e91bc</code></a>
docs: remove n_ Node.js &lt; 6 REPL note from README (<a
href="https://redirect.github.com/lodash/lodash/issues/6165">#6165</a>)</li>
<li><a
href="https://github.com/lodash/lodash/commit/59be2de61f8aa9461c7856533b51d31b7d8babc4"><code>59be2de</code></a>
release(minor): bump to 4.18.0 (<a
href="https://redirect.github.com/lodash/lodash/issues/6161">#6161</a>)</li>
<li><a
href="https://github.com/lodash/lodash/commit/af634573030f979194871da7c68f79420992f53d"><code>af63457</code></a>
fix: broken tests for _.template 879aaa9</li>
<li><a
href="https://github.com/lodash/lodash/commit/1073a7693e1727e0cf3641e5f71f75ddcf8de7c0"><code>1073a76</code></a>
fix: linting issues</li>
<li><a
href="https://github.com/lodash/lodash/commit/879aaa93132d78c2f8d20c60279da9f8b21576d6"><code>879aaa9</code></a>
fix: validate imports keys in _.template</li>
<li><a
href="https://github.com/lodash/lodash/commit/fe8d32eda854377349a4f922ab7655c8e5df9a0b"><code>fe8d32e</code></a>
fix: block prototype pollution in baseUnset via constructor/prototype
traversal</li>
<li><a
href="https://github.com/lodash/lodash/commit/18ba0a32f42fd02117f096b032f89c984173462d"><code>18ba0a3</code></a>
refactor(fromPairs): use baseAssignValue for consistent assignment (<a
href="https://redirect.github.com/lodash/lodash/issues/6153">#6153</a>)</li>
<li><a
href="https://github.com/lodash/lodash/commit/b8190803d48d60b8c80ad45d39125f32fa618cb2"><code>b819080</code></a>
ci: add dist sync validation workflow (<a
href="https://redirect.github.com/lodash/lodash/issues/6137">#6137</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/lodash/lodash/compare/4.17.23...4.18.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=lodash&package-manager=npm_and_yarn&previous-version=4.17.23&new-version=4.18.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/TACC/Core-Styles/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wesley B <62723358+wesleyboar@users.noreply.github.com>
## Overview

Add `--global-color-accent--light-alt` to color--cms.auto.css`.

## Related

- required by TACC/Core-CMS-Custom#531

## Changes

- **added** `--global-color-accent--light-alt` math

## Testing

Via TACC/Core-CMS-Custom#531, verify footer has
purple links.

## UI

| Before (Blue) | After (Purple) |
| - | - |
| <img width="350" height="240" alt="before"
src="https://github.com/user-attachments/assets/89d93673-6945-4646-86c5-7aaa0ab76d6e"
/> | <img width="350" height="240" alt="after"
src="https://github.com/user-attachments/assets/aebbf79b-2127-47f0-b88f-190671db1a0f"
/> |
## Overview / Changes

For dark section and the footer:
- fix color contrast
- make colors consistent

## Related

- required by TACC/Core-CMS-Custom#531

## Testing & UI

> [!WARNING]
> Undocumented.

I apply changes I tested on TACC and ECEP clients.
wesleyboar and others added 14 commits July 2, 2026 20:45
## Overview

Prepare for vv2.57.3-rc5 release.
Strips a leading `v` from the version input so typing `v2.57.3-rc5` or
`2.57.3-rc5` both produce the correct `v2.57.3-rc5` tag.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
## Overview

Prepare for v2.57.3 release.
Added guidelines for updating dependencies and formatting commits and pull requests.
…er (TACC#672)

Bumps [ws](https://github.com/websockets/ws),
[engine.io-client](https://github.com/socketio/socket.io),
[engine.io](https://github.com/socketio/socket.io) and
[socket.io-adapter](https://github.com/socketio/socket.io). These
dependencies needed to be updated together.
Updates `ws` from 8.18.3 to 8.21.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/websockets/ws/releases">ws's
releases</a>.</em></p>
<blockquote>
<h2>8.21.1</h2>
<h1>Bug fixes</h1>
<ul>
<li>Empty fragments are now counted toward the limit (a2f4e7c0).</li>
<li>The default values of the <code>maxBufferedChunks</code> and
<code>maxFragments</code> options have
been reduced (f197ac65).</li>
</ul>
<h2>8.21.0</h2>
<h1>Features</h1>
<ul>
<li>Introduced the <code>maxBufferedChunks</code> and
<code>maxFragments</code> options (2b2abd45).</li>
</ul>
<h1>Bug fixes</h1>
<ul>
<li>Fixed a remote memory exhaustion DoS vulnerability (2b2abd45).</li>
</ul>
<p>A high volume of tiny fragments and data chunks could be sent by a
peer, using
modest network traffic, to crash a <code>ws</code> server or client due
to OOM.</p>
<pre lang="js"><code>import { WebSocket, WebSocketServer } from 'ws';
<p>const wss = new WebSocketServer({ port: 0 }, function () {
const data = Buffer.alloc(1);
const options = { fin: false };
const { port } = wss.address();
const ws = new WebSocket(<code>ws://localhost:${port}</code>);</p>
<p>ws.on('open', function () {
(function send() {
ws.send(data, options, function (err) {
if (err) return;
send();
});
})();
});</p>
<p>ws.on('error', console.error);
ws.on('close', function (code, reason) {
console.log(<code>client close - code: ${code} reason:
${reason.toString()}</code>);
});
});</p>
<p>wss.on('connection', function (ws) {
ws.on('error', console.error);
ws.on('close', function (code, reason) {
console.log(<code>server close - code: ${code} reason:
${reason.toString()}</code>);
});
});
</code></pre></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/websockets/ws/commit/ae1de54330cef77e487548890fabfeb9aae1d83d"><code>ae1de54</code></a>
[dist] 8.21.1</li>
<li><a
href="https://github.com/websockets/ws/commit/8e9511b86b3fc6deebbd97dd9af7c9056deea8d1"><code>8e9511b</code></a>
[ci] Trust Coveralls Homebrew tap</li>
<li><a
href="https://github.com/websockets/ws/commit/f197ac65140920bdcecdab74bfc69c2d7858e55d"><code>f197ac6</code></a>
[fix] Lower default values of <code>maxBufferedChunks</code> and
<code>maxFragments</code></li>
<li><a
href="https://github.com/websockets/ws/commit/8df8265c2f63fd44af3193a98e23cf38888cd991"><code>8df8265</code></a>
[ci] Update actions/checkout action to v7</li>
<li><a
href="https://github.com/websockets/ws/commit/a2f4e7c046c2112bbce6fef39a083dac77d6f0d2"><code>a2f4e7c</code></a>
[fix] Count empty fragments toward the limit (<a
href="https://redirect.github.com/websockets/ws/issues/2329">#2329</a>)</li>
<li><a
href="https://github.com/websockets/ws/commit/e79f912cb3f492ae04c28feb9459a209e186b0ad"><code>e79f912</code></a>
[pkg] Approve install scripts for bufferutil and utf-8-validate</li>
<li><a
href="https://github.com/websockets/ws/commit/4ea355d6d3069394994f82ca1b6d38c32ba208fb"><code>4ea355d</code></a>
[doc] Document 32-bit signed integer coercion for option values</li>
<li><a
href="https://github.com/websockets/ws/commit/2120f4c8c625a76316792680a231496e1b615252"><code>2120f4c</code></a>
[example] Remove uuid dependency</li>
<li><a
href="https://github.com/websockets/ws/commit/4c534a6b8a5224a563af116e85c6ced7d4ca60cf"><code>4c534a6</code></a>
[security] Add latest vulnerability to SECURITY.md</li>
<li><a
href="https://github.com/websockets/ws/commit/bca91adf15677e47dbe4f959653452727be28b94"><code>bca91ad</code></a>
[dist] 8.21.0</li>
<li>Additional commits viewable in <a
href="https://github.com/websockets/ws/compare/8.18.3...8.21.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `engine.io-client` from 6.6.4 to 6.6.6
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/socketio/socket.io/releases">engine.io-client's
releases</a>.</em></p>
<blockquote>
<h2>engine.io-client@6.6.6</h2>
<p>The <code>ws</code> dependency was bumped to <code>~8.21.0</code>
following <a
href="https://github.com/advisories/GHSA-96hv-2xvq-fx4p">CVE-2026-48779</a>.</p>
<h3>Bug Fixes</h3>
<ul>
<li>preserve transport literal suggestions (<a
href="https://redirect.github.com/socketio/socket.io/issues/5469">#5469</a>)
(<a
href="https://github.com/socketio/socket.io/commit/d8f392eec724f9f6d78a9523f8ef7a383a807a6d">d8f392e</a>)</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li><a
href="https://github.com/websockets/ws/releases/tag/8.21.0"><code>ws@~8.21.0</code></a>
(<a
href="https://github.com/websockets/ws/compare/8.20.1...8.21.0">diff</a>)</li>
</ul>
<h2>engine.io-client@6.6.5</h2>
<p>The <code>ws</code> dependency was bumped to <code>~8.20.1</code>
following <a
href="https://github.com/advisories/GHSA-58qx-3vcg-4xpx">CVE-2026-45736</a>.</p>
<p>Note from the <code>ws</code> maintainers:</p>
<blockquote>
<p>Although the calculated CVSS severity is medium, the actual severity
is believed to be low, as the flaw is only exploitable through misuse
that is unlikely in practice.</p>
</blockquote>
<h3>Dependencies</h3>
<ul>
<li><a
href="https://github.com/websockets/ws/releases/tag/8.20.1"><code>ws@~8.20.1</code></a>
(<a
href="https://github.com/websockets/ws/compare/8.18.3...8.20.1">diff</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/socketio/socket.io/commit/22cc483786a5084b8c6d8595e46f7d99d1587fea"><code>22cc483</code></a>
chore(release): engine.io-client@6.6.6</li>
<li><a
href="https://github.com/socketio/socket.io/commit/9dbec8128fa76c3143e93cf41991e903adfdc6da"><code>9dbec81</code></a>
chore(release): engine.io@6.6.9</li>
<li><a
href="https://github.com/socketio/socket.io/commit/3ad4e1f2dcf0e8b7d1bb05892be5ede2ab100abf"><code>3ad4e1f</code></a>
docs: improve example with PM2</li>
<li><a
href="https://github.com/socketio/socket.io/commit/0e5afeeba45b1b3dc926584253ac93e9d0c9eae1"><code>0e5afee</code></a>
docs: add example with PM2</li>
<li><a
href="https://github.com/socketio/socket.io/commit/eab9623c8476308e735472ce1bf70e90eb3de604"><code>eab9623</code></a>
docs(eio): correct maxHttpBufferSize default in JSDoc (<a
href="https://redirect.github.com/socketio/socket.io/issues/5508">#5508</a>)</li>
<li><a
href="https://github.com/socketio/socket.io/commit/c17890c5e5bd3a2f2e40ca240059906c51156d49"><code>c17890c</code></a>
docs: add documentation about WebTransport</li>
<li><a
href="https://github.com/socketio/socket.io/commit/20df6ae561e379dabdceecbdf0532ac052994cc9"><code>20df6ae</code></a>
docs(examples): add client-side load balancing example</li>
<li><a
href="https://github.com/socketio/socket.io/commit/16d19236132293c415f511aa5631de558be9ab70"><code>16d1923</code></a>
ci(publish): enable staged publishing</li>
<li><a
href="https://github.com/socketio/socket.io/commit/ad48a9bac723303d8bde81c4394828822abe57e0"><code>ad48a9b</code></a>
docs(examples): add example with HTTP/2</li>
<li><a
href="https://github.com/socketio/socket.io/commit/190572d2459681a757e23e6010939ac5e53fdfcf"><code>190572d</code></a>
refactor(eio-client): remove XMLHttpRequest from the definition
file</li>
<li>Additional commits viewable in <a
href="https://github.com/socketio/socket.io/compare/engine.io-client@6.6.4...engine.io-client@6.6.6">compare
view</a></li>
</ul>
</details>
<br />

Updates `engine.io` from 6.6.5 to 6.6.9
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/socketio/socket.io/releases">engine.io's
releases</a>.</em></p>
<blockquote>
<h2>engine.io@6.6.9</h2>
<p>The <code>ws</code> dependency was bumped to <code>~8.21.0</code>
following <a
href="https://github.com/advisories/GHSA-96hv-2xvq-fx4p">CVE-2026-48779</a>.</p>
<h3>Dependencies</h3>
<ul>
<li><a
href="https://github.com/websockets/ws/releases/tag/8.21.0"><code>ws@~8.21.0</code></a>
(<a
href="https://github.com/websockets/ws/compare/8.20.1...8.21.0">diff</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/socketio/socket.io/commit/9dbec8128fa76c3143e93cf41991e903adfdc6da"><code>9dbec81</code></a>
chore(release): engine.io@6.6.9</li>
<li><a
href="https://github.com/socketio/socket.io/commit/3ad4e1f2dcf0e8b7d1bb05892be5ede2ab100abf"><code>3ad4e1f</code></a>
docs: improve example with PM2</li>
<li><a
href="https://github.com/socketio/socket.io/commit/0e5afeeba45b1b3dc926584253ac93e9d0c9eae1"><code>0e5afee</code></a>
docs: add example with PM2</li>
<li><a
href="https://github.com/socketio/socket.io/commit/eab9623c8476308e735472ce1bf70e90eb3de604"><code>eab9623</code></a>
docs(eio): correct maxHttpBufferSize default in JSDoc (<a
href="https://redirect.github.com/socketio/socket.io/issues/5508">#5508</a>)</li>
<li><a
href="https://github.com/socketio/socket.io/commit/c17890c5e5bd3a2f2e40ca240059906c51156d49"><code>c17890c</code></a>
docs: add documentation about WebTransport</li>
<li><a
href="https://github.com/socketio/socket.io/commit/20df6ae561e379dabdceecbdf0532ac052994cc9"><code>20df6ae</code></a>
docs(examples): add client-side load balancing example</li>
<li><a
href="https://github.com/socketio/socket.io/commit/16d19236132293c415f511aa5631de558be9ab70"><code>16d1923</code></a>
ci(publish): enable staged publishing</li>
<li><a
href="https://github.com/socketio/socket.io/commit/ad48a9bac723303d8bde81c4394828822abe57e0"><code>ad48a9b</code></a>
docs(examples): add example with HTTP/2</li>
<li><a
href="https://github.com/socketio/socket.io/commit/190572d2459681a757e23e6010939ac5e53fdfcf"><code>190572d</code></a>
refactor(eio-client): remove XMLHttpRequest from the definition
file</li>
<li><a
href="https://github.com/socketio/socket.io/commit/fad463c54d04799e1592361b0fd8344a5fab960d"><code>fad463c</code></a>
docs(examples): fix duplicate self messages (<a
href="https://redirect.github.com/socketio/socket.io/issues/5341">#5341</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/socketio/socket.io/compare/engine.io@6.6.5...engine.io@6.6.9">compare
view</a></li>
</ul>
</details>
<br />

Updates `socket.io-adapter` from 2.5.6 to 2.5.8
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/socketio/socket.io/releases">socket.io-adapter's
releases</a>.</em></p>
<blockquote>
<h2>socket.io-adapter@2.5.8</h2>
<p>The <code>ws</code> dependency was bumped to <code>~8.21.0</code>
following <a
href="https://github.com/advisories/GHSA-96hv-2xvq-fx4p">CVE-2026-48779</a>.</p>
<h2>socket.io-adapter@2.5.7</h2>
<p>The <code>ws</code> dependency was bumped to <code>~8.20.1</code>
following <a
href="https://github.com/advisories/GHSA-58qx-3vcg-4xpx">CVE-2026-45736</a>.</p>
<p>Note from the <code>ws</code> maintainers:</p>
<blockquote>
<p>Although the calculated CVSS severity is medium, the actual severity
is believed to be low, as the flaw is only exploitable through misuse
that is unlikely in practice.</p>
</blockquote>
<h3>Bug Fixes</h3>
<ul>
<li>do not skip local broadcast when publishAndReturnOffset throws (<a
href="https://redirect.github.com/socketio/socket/issues/5457">#5457</a>)
(<a
href="https://github.com/socketio/socket/commit/f6301588ca65de270ecfe22da9023d7ec79ba23a">f630158</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/socketio/socket.io/commit/ac83bfad2eb8bdd1ceddd46ddb1b4ee692d7262d"><code>ac83bfa</code></a>
chore(release): socket.io-adapter@2.5.8</li>
<li><a
href="https://github.com/socketio/socket.io/commit/22cc483786a5084b8c6d8595e46f7d99d1587fea"><code>22cc483</code></a>
chore(release): engine.io-client@6.6.6</li>
<li><a
href="https://github.com/socketio/socket.io/commit/9dbec8128fa76c3143e93cf41991e903adfdc6da"><code>9dbec81</code></a>
chore(release): engine.io@6.6.9</li>
<li><a
href="https://github.com/socketio/socket.io/commit/3ad4e1f2dcf0e8b7d1bb05892be5ede2ab100abf"><code>3ad4e1f</code></a>
docs: improve example with PM2</li>
<li><a
href="https://github.com/socketio/socket.io/commit/0e5afeeba45b1b3dc926584253ac93e9d0c9eae1"><code>0e5afee</code></a>
docs: add example with PM2</li>
<li><a
href="https://github.com/socketio/socket.io/commit/eab9623c8476308e735472ce1bf70e90eb3de604"><code>eab9623</code></a>
docs(eio): correct maxHttpBufferSize default in JSDoc (<a
href="https://redirect.github.com/socketio/socket.io/issues/5508">#5508</a>)</li>
<li><a
href="https://github.com/socketio/socket.io/commit/c17890c5e5bd3a2f2e40ca240059906c51156d49"><code>c17890c</code></a>
docs: add documentation about WebTransport</li>
<li><a
href="https://github.com/socketio/socket.io/commit/20df6ae561e379dabdceecbdf0532ac052994cc9"><code>20df6ae</code></a>
docs(examples): add client-side load balancing example</li>
<li><a
href="https://github.com/socketio/socket.io/commit/16d19236132293c415f511aa5631de558be9ab70"><code>16d1923</code></a>
ci(publish): enable staged publishing</li>
<li><a
href="https://github.com/socketio/socket.io/commit/ad48a9bac723303d8bde81c4394828822abe57e0"><code>ad48a9b</code></a>
docs(examples): add example with HTTP/2</li>
<li>Additional commits viewable in <a
href="https://github.com/socketio/socket.io/compare/socket.io-adapter@2.5.6...socket.io-adapter@2.5.8">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/TACC/Core-Styles/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Overview

Height of `<input type="file">` was cut short, cutting off its native
browser UI.

## Related

- mimicked by TACC/Core-CMS-Custom#544

## Changes

- **added** selector qualifier

## Testing & UI


https://github.com/user-attachments/assets/c3dde447-c247-4734-96fc-11d2b3e4f44a
Bumps [svgo](https://github.com/svg/svgo) from 2.8.2 to 2.8.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/svg/svgo/releases">svgo's
releases</a>.</em></p>
<blockquote>
<h2>v2.8.3</h2>
<h2>What's Changed</h2>
<h3>Security</h3>
<ul>
<li><a
href="https://svgo.dev/docs/plugins/removeScripts/">removeScriptElement</a>,
make <code>&lt;script&gt;</code> handling namespace aware. By <a
href="https://github.com/SethFalco"><code>@​SethFalco</code></a></li>
</ul>
<h2>Support</h2>
<p>SVGO v2 is not officially supported, please consider upgrading to
SVGO v4 instead. We've backported this fix as there are security
implications, but there is no commitment to do this for more complex
changes in future.</p>
<p>Consider reading our <a
href="https://svgo.dev/docs/migrations/migration-from-v2-to-v3/">Migration
Guide from v2 to v3</a> and <a
href="https://svgo.dev/docs/migrations/migration-from-v3-to-v4/">Migration
Guide from v3 to v4</a> which should ease the process.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/svg/svgo/commit/628e3bc7336625a30365d0a9b60185307d852466"><code>628e3bc</code></a>
Merge commit from fork</li>
<li>See full diff in <a
href="https://github.com/svg/svgo/compare/v2.8.2...v2.8.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=svgo&package-manager=npm_and_yarn&previous-version=2.8.2&new-version=2.8.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/TACC/Core-Styles/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Overview

Adds a demo section that combines `.container` directly on an
`.o-section`, to make the wide-viewport fake-background gap bug
reproducible in this repo's own component preview.

## Related

- Reproduction case for the fix in
[TACC#675](TACC#675)

## Changes

- **added** an "Accent Section (with `.container`)" demo variant
combining `.container` and `.o-section` classes on the same element

## Testing

1. `npm start`
2. Visit the `o-section` component preview
3. Zoom out (or use an ultra-wide viewport) past ~3160px effective width
4. Observe the gap in the fake background on the new "Accent Section
(with `.container`)" demo

## UI

| before | after |
| - | - |
| <img width="900" height="535" alt="before"
src="https://github.com/user-attachments/assets/c396a277-db7b-42a9-831d-5ca306238bbe"
/> | <img width="900" height="535" alt="after"
src="https://github.com/user-attachments/assets/88b85d2e-c6c2-48fd-b100-5b85b3332b51"
/> |
## Overview

Fixes gray background gaps (on wide screens) beside sections that use a
"fake" full-width background (`o-section--style`).

## Related

- similar to
[TACC/Core-CMS#1218](TACC/Core-CMS#1218)

## Changes

- **changed** `/src/**/o-section.css`

## Testing

1. `npm start`
2. View a demo with a styled `container o-section` at a wide viewport
(e.g. 1920px).
3. Verify the fake full-width background has no gaps.


| before | after |
| - | - |
| <img width="900" height="535" alt="before"
src="https://github.com/user-attachments/assets/c396a277-db7b-42a9-831d-5ca306238bbe"
/> | <img width="900" height="535" alt="after"
src="https://github.com/user-attachments/assets/88b85d2e-c6c2-48fd-b100-5b85b3332b51"
/> |
## Overview

Prepare for v2.57.4 release.
Bumps [socket.io-parser](https://github.com/socketio/socket.io) from
4.2.5 to 4.2.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/socketio/socket.io/releases">socket.io-parser's
releases</a>.</em></p>
<blockquote>
<h2>socket.io-parser@4.2.7</h2>
<h3>Bug Fixes</h3>
<ul>
<li>honor toJSON() when deconstructing a binary packet (<a
href="https://redirect.github.com/socketio/socket.io/issues/5518">#5518</a>)
(<a
href="https://github.com/socketio/socket.io/commit/57f111439513809c633f2554be2f3104e4ad432c">57f1114</a>)</li>
<li>reject binary packets with zero attachments (<a
href="https://github.com/socketio/socket.io/commit/7c6ef571a00656718e9e05e3b948fd1758b2a7b4">7c6ef57</a>)</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/spokodev"><code>@​spokodev</code></a>
made their first contribution in <a
href="https://redirect.github.com/socketio/socket.io/pull/5518">socketio/socket.io#5518</a></li>
</ul>
<h2>socket.io-parser@4.2.6</h2>
<p>This release includes a fix for <a
href="https://github.com/socketio/socket.io/security/advisories/GHSA-677m-j7p3-52f9">CVE-2026-33151</a>.
Please upgrade as soon as possible.</p>
<h3>Bug Fixes</h3>
<ul>
<li>add a limit to the number of binary attachments (<a
href="https://github.com/socketio/socket.io/commit/b25738c416c4e32fbff62ee182afa8f6d0dacf78">b25738c</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/socketio/socket.io/commit/4054894738817f5a2125e6e6b18e79d92c75ab33"><code>4054894</code></a>
chore(release): socket.io-parser@4.2.7</li>
<li><a
href="https://github.com/socketio/socket.io/commit/7c6ef571a00656718e9e05e3b948fd1758b2a7b4"><code>7c6ef57</code></a>
fix(parser): reject binary packets with zero attachments</li>
<li><a
href="https://github.com/socketio/socket.io/commit/57f111439513809c633f2554be2f3104e4ad432c"><code>57f1114</code></a>
fix(parser): honor toJSON() when deconstructing a binary packet (<a
href="https://redirect.github.com/socketio/socket.io/issues/5518">#5518</a>)</li>
<li><a
href="https://github.com/socketio/socket.io/commit/8d2e4f7b8671ed2c4fa1fca9ec6f68e5cf82266e"><code>8d2e4f7</code></a>
docs(security): add CVE-2026-59724 and CVE-2026-59725</li>
<li><a
href="https://github.com/socketio/socket.io/commit/d2d753fed4435015c2d83fe62e676b44e07fa3f7"><code>d2d753f</code></a>
refactor(sio): align client file matching in Node.js HTTP server</li>
<li><a
href="https://github.com/socketio/socket.io/commit/dfb5ab3b6a2f00d1ecb226939022ea56e5701124"><code>dfb5ab3</code></a>
fix(sio): prevent uWebSockets.js from serving missing client files</li>
<li><a
href="https://github.com/socketio/socket.io/commit/dcbd96154352dd84c189b41e5c0ec0df4b7fe6a5"><code>dcbd961</code></a>
perf(eio): optimize polling request body buffering</li>
<li><a
href="https://github.com/socketio/socket.io/commit/6bb2e7f5fb7c548f0776328b4a19719723e27efd"><code>6bb2e7f</code></a>
refactor(sio): internalize base64id dependency</li>
<li><a
href="https://github.com/socketio/socket.io/commit/a80711a8c3b11a3e75a84de567ac4d84820f4714"><code>a80711a</code></a>
refactor(eio): internalize base64id dependency</li>
<li><a
href="https://github.com/socketio/socket.io/commit/8bead0f4c6fba027996bb9eab02f05120f35513d"><code>8bead0f</code></a>
chore: upgrade to TypeScript 6</li>
<li>Additional commits viewable in <a
href="https://github.com/socketio/socket.io/compare/socket.io-parser@4.2.5...socket.io-parser@4.2.7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=socket.io-parser&package-manager=npm_and_yarn&previous-version=4.2.5&new-version=4.2.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/TACC/Core-Styles/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sync epic/v3 with 90 commits from main.

- resolved dist/* modify/delete conflicts by keeping v3's deletion (dist is not committed on v3)
- resolved 4 renamed source files (headings--cms, headings--docs, html-elements.docs, s-footer) using main's content with v3's .postcss import extensions
- renamed 5 new source files added by main (x-headings*, typography-headings--cms/docs) from .css to .postcss to match v3's source convention
- regenerated package-lock.json via npm install after keeping v3's package.json version
Sync epic/v3--reorg with epic/v3's merge of main.

- resolved add/add and file-location conflicts for new bootstrap4/content/typography-headings and tools/x-headings* files by placing them per the reorg's client-library directory structure
- resolved headings config.yml variants by combining reorg's own portal variant with main's new cms-vs-bootstrap/docs-vs-bootstrap variants
- resolved s-footer.postcss by keeping reorg's c-button import path and adding main's new media-queries import
- resolved s-footer.hbs by keeping main's newer isPortalOrCMS note and reorg's Bootstrap4 side-effects caveat
- removed headings--cms.hbs, superseded by the generic headings.hbs view
@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

chore(v3): consolidate release workflow and expand Bootstrap4 patterns

✨ Enhancement 📝 Documentation ⚙️ Configuration changes 🕐 40+ Minutes

Grey Divider

AI Description

• Consolidate release workflow into a single bin/release.sh script.
• Add/organize Bootstrap v4 patterns (alerts, media, heading classes) for CMS/Docs parity.
• Refactor shared typography/figure utilities into mixins and update footer/section styling
 variants.
Diagram

graph TD
  dev["Developer"] --> rel["bin/release.sh"] --> npm[("npm registry")]
  rel --> gh{{"GitHub (gh CLI)"}}
  imports["core-styles.bootstrap4.css"] --> bs4["Bootstrap4 patterns"] --> mixins["TACC mixins/tools"] --> pl["Fractality demos"]
  bs4 --> pl

  subgraph Legend
    direction LR
    _cmp["Component"] ~~~ _db[("External store")] ~~~ _ext{{"External tool"}}
  end
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. GitHub Actions release workflow
  • ➕ Eliminates local environment drift (npm/gh versions, auth state)
  • ➕ Auditable, repeatable releases with consistent logs/artifacts
  • ➕ Can enforce branch protections and required checks automatically
  • ➖ Requires CI permissions/secrets management for npm publish
  • ➖ More upfront setup and iteration to match current team process
  • ➖ Harder to support ad-hoc/manual interventions mid-release
2. Keep separate prepare + publish scripts
  • ➕ Clear separation of concerns (version/PR vs publish/release)
  • ➕ Easier to pause between steps for validation/coordination
  • ➖ More manual steps; easier to forget or perform out of order
  • ➖ Duplicated checks/logic across scripts
3. Adopt semantic-release/changesets
  • ➕ Automated versioning/changelog generation based on commits
  • ➕ Reduced human error around tagging/version bumps
  • ➖ Process/tooling adoption cost and team retraining
  • ➖ May be too heavyweight if releases remain infrequent/manual

Recommendation: The single bin/release.sh approach is reasonable for a small team that still wants a local, interactive release flow (with optional gh automation). If releases become more frequent or need stronger guarantees, consider migrating the publish/release steps into GitHub Actions while keeping a thin local “prepare” helper.

Files changed (68) +1305 / -300

Enhancement (30) +891 / -88
release.shIntroduce single scripted release flow (build → PR → publish → release) +161/-0

Introduce single scripted release flow (build → PR → publish → release)

• Adds a unified release script that validates prerequisites, bumps version, builds CSS, opens and auto-merges a PR (when 'gh' is available), publishes to npm (including 'rc' tag handling), and creates a GitHub release. Supersedes the previously separate prepare/publish scripts.

bin/release.sh

version.jsPrefix CLI version output with 'v' +1/-1

Prefix CLI version output with 'v'

• Changes the computed version string to include a 'v' prefix before the package version. Makes version formatting consistent with tag naming and release flows.

src/bin/version.js

headings-and-paragraphs.hbsAdd reusable headings+paragraphs demo partial +12/-0

Add reusable headings+paragraphs demo partial

• Introduces a partial rendering h1–h6 with body copy after each heading. Used to standardize heading demos across multiple views/sections.

src/lib/_imports/_partials/headings-and-paragraphs.hbs

alert.cssAdd Bootstrap4 Alert skin using message mixins +76/-0

Add Bootstrap4 Alert skin using message mixins

• Implements alert styling that intentionally undoes Bootstrap defaults and re-applies Core Styles message patterns. Adds dismissible spacing and link/heading tweaks for consistency.

src/lib/_imports/bootstrap4/components/alert.css

alert.hbsAdd Alert pattern markup for multiple variants +36/-0

Add Alert pattern markup for multiple variants

• Adds demo markup for grouped alert examples including basic, dismissible, and heading/hr variants. Supports Bootstrap class combinations and optional content.

src/lib/_imports/bootstrap4/components/alert/alert.hbs

media.cssAdd media-link layout tweaks +6/-0

Add media-link layout tweaks

• Introduces a 'media-link' helper to add gap and adjust top margin for non-body elements. Supports link-based media object layouts.

src/lib/_imports/bootstrap4/components/media.css

media.hbsAdd Media Object demos including link variants +41/-0

Add Media Object demos including link variants

• Adds example markup for Bootstrap '.media' with and without extra alignment classes and two link-based patterns. Demonstrates both HTML5 and HTML4-compatible markup structures.

src/lib/_imports/bootstrap4/components/media/media.hbs

typography-headings--cms.postcssImplement CMS-scoped .h1–.h6 via shared heading mixins +13/-0

Implement CMS-scoped .h1–.h6 via shared heading mixins

• Adds '.h1'–'.h6' styling for CMS context using the new shared 'x-headings' and CMS variant mixins. Ensures heading classes match semantic heading styling expectations.

src/lib/_imports/bootstrap4/content/typography-headings/typography-headings--cms.postcss

typography-headings--docs.postcssImplement Docs-scoped .h1–.h6 via shared heading mixins +13/-0

Implement Docs-scoped .h1–.h6 via shared heading mixins

• Adds '.h1'–'.h6' styling for Docs context using shared 'x-headings' and Docs variant mixins. Keeps Docs heading class behavior aligned with semantic heading styles.

src/lib/_imports/bootstrap4/content/typography-headings/typography-headings--docs.postcss

typography-headings.hbsAdd demo markup for Bootstrap heading classes +12/-0

Add demo markup for Bootstrap heading classes

• Adds an example view rendering '.h1'–'.h6' on paragraph tags with text between. Supports quick visual comparison across contexts.

src/lib/_imports/bootstrap4/content/typography-headings/typography-headings.hbs

c-callout.hbsAdd callout component demo variants +74/-0

Add callout component demo variants

• Introduces prototype markup examples for callouts: text-only, image+text, and link-wrapped callouts with images/figures. Establishes expected content ordering for linked callouts.

src/lib/_imports/components/c-callout/c-callout.hbs

c-button.selectors.postcssRe-map Bootstrap button classes into c-button selector groups +6/-6

Re-map Bootstrap button classes into c-button selector groups

• Expands selector groups to include '.btn-success' in primary and '.btn-warning'/'.btn-danger' in secondary while removing them from tertiary. Aligns Core button styling buckets with Bootstrap semantics.

src/lib/_imports/tacc/components/c-button/c-button.selectors.postcss

c-message--expanded.postcssApply expanded message padding to alerts and dismissibles +8/-1

Apply expanded message padding to alerts and dismissibles

• Extends expanded message padding to '.alert' and adjusts dismissible right padding to match expanded inline padding. Keeps Bootstrap alert layout consistent with Core message spacing.

src/lib/_imports/tacc/components/c-message/c-message--expanded.postcss

config.ymlAdd CMS/Docs vs Bootstrap heading comparison variants +14/-0

Add CMS/Docs vs Bootstrap heading comparison variants

• Adds 'cms-vs-bootstrap' and 'docs-vs-bootstrap' variants that render a comparison view. Enables side-by-side validation between semantic headings and '.hN' classes under different contexts.

src/lib/_imports/tacc/elements/headings/config.yml

headings--bootstrap.hbsAdd side-by-side semantic vs .hN heading comparison view +50/-0

Add side-by-side semantic vs .hN heading comparison view

• Introduces a view showing each heading level as a semantic tag vs a '.hN' class on a '<p>'. Supports review of Bootstrap heading class alignment with Core heading styles.

src/lib/_imports/tacc/elements/headings/headings--bootstrap.hbs

headings.hbsUpdate headings demo to show multiple section contexts +32/-12

Update headings demo to show multiple section contexts

• Replaces the flat heading list with a navigable demo across light/muted/dark/unstyled section styles. Uses the new shared 'headings-and-paragraphs' partial to avoid duplication.

src/lib/_imports/tacc/elements/headings/headings.hbs

html-elements.cms.postcssAdjust dt spacing for definition lists in CMS context +1/-1

Adjust dt spacing for definition lists in CMS context

• Changes 'dt' spacing from a single 'margin-bottom' to 'margin-block' with additional top spacing. Improves visual separation of definition terms from preceding content.

src/lib/_imports/tacc/elements/html-elements.cms.postcss

o-section.postcssAdd accent section style and improve full-width background behavior +32/-5

Add accent section style and improve full-width background behavior

• Adds a new accent section style and updates dark section colors and h2 coloring rules. Improves fake full-width background behavior (wider box-shadow + clip-path) and adds borders between adjacent same-style sections.

src/lib/_imports/tacc/objects/o-section.postcss

o-section.hbsUpdate o-section demos to include accent and nested accent sections +19/-3

Update o-section demos to include accent and nested accent sections

• Enhances the demo markup to show accent sections, container interactions, and nested accent usage. Updates explanatory text about footer adjacency to include the new accent style.

src/lib/_imports/tacc/objects/o-section/o-section.hbs

color--cms.auto.postcssAdd alternate accent light token for CMS +3/-0

Add alternate accent light token for CMS

• Adds '--global-color-accent--light-alt' derived via 'oklab()' mixing. Supports footer/link styling needs where a distinct light accent variant is required.

src/lib/_imports/tacc/settings/color--cms.auto.postcss

x-headings--cms.postcssAdd CMS heading level mixins +40/-0

Add CMS heading level mixins

• Defines reusable mixins for heading levels 1–6 in CMS context, including sizing, weights, margins, and transformations. Centralizes heading rules previously duplicated in element styles.

src/lib/_imports/tacc/tools/x-headings--cms.postcss

x-headings--docs.postcssAdd Docs heading level mixins +32/-0

Add Docs heading level mixins

• Defines reusable heading-level mixins for Docs context to standardize typography across semantic headings and Bootstrap heading classes. Mirrors the CMS approach with Docs-specific sizing and weights.

src/lib/_imports/tacc/tools/x-headings--docs.postcss

x-headings.postcssAdd shared heading base mixin +3/-0

Add shared heading base mixin

• Introduces a base 'heading' mixin for shared properties (e.g., line-height). Enables consistent application across CMS/Docs and class-based headings.

src/lib/_imports/tacc/tools/x-headings.postcss

s-footer.postcssRefactor footer styling and add fat-footer identity behavior +58/-9

Refactor footer styling and add fat-footer identity behavior

• Introduces a 'footer-link' mixin for consistent underline treatment and reorganizes base/modifier/element styles. Adds '.s-footer__identity' handling for multi-column footers and adjusts colors/spacing and hr border color.

src/lib/_imports/tacc/trumps/s-footer.postcss

s-footer.properties.postcssAdd vertical padding tokens for footer thickness +2/-0

Add vertical padding tokens for footer thickness

• Introduces '--pad-vert--thin' and '--pad-vert--thick' and keeps existing horizontal pad tokens. Enables consistent vertical sizing for thin vs fat footer variants.

src/lib/_imports/tacc/trumps/s-footer.properties.postcss

s-footer.hbsRefactor footer demo markup and add fat-footer layout example +63/-29

Refactor footer demo markup and add fat-footer layout example

• Restructures demo content rendering, adds CMS/Portal notes as a list, and supports new 'width'/'weight' modifiers. Adds an example multi-column fat footer with an '.s-footer__identity' prose column.

src/lib/_imports/tacc/trumps/s-footer/s-footer.hbs

s-header.postcssImprove logo sizing defaults and add AI button styling +75/-17

Improve logo sizing defaults and add AI button styling

• Reworks header sizing variables and adds default logo height behavior for images without explicit height attributes. Moves portal-logo-specific layout behavior into header context and adds styles for an AI chatbot button/link grouping.

src/lib/_imports/tacc/trumps/s-header.postcss

s-header--different-logos.hbsExpand logo demo to compare CMS vs Portal logo behavior +6/-2

Expand logo demo to compare CMS vs Portal logo behavior

• Updates headings and adds additional demo cases showing the same logos used as CMS logos vs Portal logos. Helps validate the portal-logo conditional logic and header sizing.

src/lib/_imports/tacc/trumps/s-header/s-header--different-logos.hbs

tokens.jsonAdjust neutral dark-2x token value +1/-1

Adjust neutral dark-2x token value

• Changes the neutral 'dark-2x' color token from pure black to '#222222'. Reduces contrast harshness and aligns with updated theme expectations.

src/lib/tokens.json

v2.jsonUpdate v2 token snapshot for dark-2x and formatting +1/-1

Update v2 token snapshot for dark-2x and formatting

• Updates the v2 token JSON to reflect the 'dark-2x' value change to '#222222' and normalizes file formatting/newline. Keeps v2 token export aligned with the main token source.

src/lib/tokens/v2.json

Bug fix (3) +9 / -6
links.postcssExclude alert links from global link styling +8/-3

Exclude alert links from global link styling

• Introduces an ':--exempt-link' selector grouping and excludes '.alert-link' from the default link mixins. Prevents alert-specific link styling from being overridden by global link rules.

src/lib/_imports/tacc/elements/links.postcss

x-feed-list.postcssRemove one-line truncation from feed list metadata +0/-2

Remove one-line truncation from feed list metadata

• Removes the 'truncate--one-line' application for feed list item metadata. Likely to allow wrapping and avoid clipped content in dense layouts.

src/lib/_imports/tacc/tools/x-feed-list.postcss

s-header.hbsMake portal-logo class conditional +1/-1

Make portal-logo class conditional

• Applies the 'portal-logo' class only when the 'forPortal' context flag is set. Enables CMS and Portal logo behaviors to diverge without duplicating templates.

src/lib/_imports/tacc/trumps/s-header/s-header.hbs

Refactor (7) +78 / -103
djangocms-picture-align.postcssRefactor align classes into reusable mixins +8/-5

Refactor align classes into reusable mixins

• Converts '.align-*' declarations into '@define-mixin' blocks and re-applies them to the existing classes. Enables reuse in edge-case selectors (e.g., nested within '<a>' or '<figure>').

src/lib/_imports/djangocms-picture/align/djangocms-picture-align.postcss

branding_logos.postcssRemove portal-logo selectors from branding logos +0/-9

Remove portal-logo selectors from branding logos

• Removes '.portal-logo' selector styling from the branding logos file. The portal logo handling is shifted to header-specific rules.

src/lib/_imports/tacc/branding_logos.postcss

headings--cms.postcssSwitch CMS headings to shared heading mixins (+ .h1–.h6 classes) +18/-42

Switch CMS headings to shared heading mixins (+ .h1–.h6 classes)

• Replaces inline heading structure/skin rules with shared 'x-headings' mixins for h1–h6. Adds '.h1'–'.h6' class styling to ensure Bootstrap heading classes match CMS heading styles.

src/lib/_imports/tacc/elements/headings--cms.postcss

headings--docs.postcssSwitch Docs headings to shared heading mixins (+ .h1–.h6 classes) +18/-32

Switch Docs headings to shared heading mixins (+ .h1–.h6 classes)

• Replaces inline Docs heading rules with shared 'x-headings' + Docs variant mixins. Adds '.h1'–'.h6' class styling so heading classes are consistent with semantic headings in Docs context.

src/lib/_imports/tacc/elements/headings--docs.postcss

html-elements.docs.postcssRefactor figure/blockquote utilities to mixins and tweak dt emphasis +15/-5

Refactor figure/blockquote utilities to mixins and tweak dt emphasis

• Adds stronger 'dt' emphasis via font weight in Docs context. Switches figure/figcaption/blockquote styling from '@extend' of deprecated classes to mixin usage.

src/lib/_imports/tacc/elements/html-elements.docs.postcss

x-blockquote.postcssConvert blockquote utilities to mixins (keep deprecated class aliases) +12/-7

Convert blockquote utilities to mixins (keep deprecated class aliases)

• Replaces '.x-blockquote' and '.x-blockquote-caption' definitions with '@define-mixin' equivalents, and keeps the original classes as deprecated wrappers. Aligns with the broader move from '@extend' to mixins.

src/lib/_imports/tacc/tools/x-blockquote.postcss

x-figure.postcssConvert figure utilities to mixins and tweak caption appearance +7/-3

Convert figure utilities to mixins and tweak caption appearance

• Introduces 'figure' and 'figure-caption' mixins and deprecates the old '.x-figure' class approach via wrapper classes. Adjusts caption styling from a fixed dark color to reduced opacity for better contrast across backgrounds.

src/lib/_imports/tacc/tools/x-figure.postcss

Documentation (12) +118 / -52
PULL_REQUEST_TEMPLATE.mdExpand PR template guidance and examples +41/-6

Expand PR template guidance and examples

• Adds inline instructions and concrete examples for overview, related links, change bullets, testing steps, and UI screenshots. Improves consistency and scan-ability of PR descriptions.

.github/PULL_REQUEST_TEMPLATE.md

release_template.mdSimplify release PR template to a single-line prompt +1/-27

Simplify release PR template to a single-line prompt

• Replaces the long multi-section template with a minimal release placeholder statement. Aligns release PRs with automated creation from the release script.

.github/PULL_REQUEST_TEMPLATE/release_template.md

AGENTS.mdDocument project build/release conventions for agents +40/-0

Document project build/release conventions for agents

• Adds a lightweight architecture note and practical guidance for builds, dependency updates, commit formatting, and PR expectations. Includes a container-based build fallback for environments without local npm.

AGENTS.md

PUBLISHING.mdUpdate publishing docs for unified release script +3/-18

Update publishing docs for unified release script

• Replaces the separate prepare/publish script instructions with a single './bin/release.sh' flow. Removes now-obsolete manual tag annotation guidance from the documented process.

PUBLISHING.md

README.mdAdd Core CMS Custom as a known client +2/-0

Add Core CMS Custom as a known client

• Updates the Known Clients section to include Core CMS Custom and adds a reference link. Improves documentation of downstream consumers.

README.md

readme.mdDocument Alert purpose and upstream Bootstrap reference +1/-0

Document Alert purpose and upstream Bootstrap reference

• Adds a short description linking to Bootstrap v4 alerts and clarifying the intended Django CMS plugin target. Serves as pattern documentation.

src/lib/_imports/bootstrap4/components/alert/readme.md

readme.mdDocument Media Object usage and add external-link helper +3/-0

Document Media Object usage and add external-link helper

• Adds a description linking to Bootstrap Media Object docs and includes the external-links helper script. Clarifies scope and intent of the skin.

src/lib/_imports/bootstrap4/components/media/readme.md

readme.mdDocument Bootstrap heading class skin target (.h1–.h6) +3/-0

Document Bootstrap heading class skin target (.h1–.h6)

• Adds documentation for the Bootstrap heading class pattern and includes the external-links helper. Clarifies that only heading classes are currently affected.

src/lib/_imports/bootstrap4/content/typography-headings/readme.md

readme.mdDocument callout usage and markup guidance +7/-0

Document callout usage and markup guidance

• Adds short documentation describing when to use 'aside' vs 'a' wrappers. Includes a reminder about content ordering for linked callouts.

src/lib/_imports/components/c-callout/readme.md

readme.mdDocument the new accent section style +1/-0

Document the new accent section style

• Adds '.o-section--style-accent' / '.section--accent' to the documentation table. Clarifies the intended emphasis level compared to other section styles.

src/lib/_imports/tacc/objects/o-section/readme.md

x-mailto-text-replace.postcssAdd accessibility warning to mailto text replacement tool +2/-0

Add accessibility warning to mailto text replacement tool

• Documents that the technique prevents keyboard tab navigation to the link, and marks it for deprecation or fix. Improves visibility of known a11y risk.

src/lib/_imports/tacc/tools/x-mailto-text-replace.postcss

readme.mdDocument s-footer__identity behavior for multi-column footers +14/-1

Document s-footer__identity behavior for multi-column footers

• Expands documentation describing when and why to use '.s-footer__identity', how link styling is scoped, and how appearance differs at larger breakpoints. Points reviewers to the Fat Footer demo variant.

src/lib/_imports/tacc/trumps/s-footer/readme.md

Other (16) +209 / -51
labels.ymlAdd accessibility label +4/-0

Add accessibility label

• Introduces an 'accessibility' label with color and description for tracking a11y regressions. Intended to be synced to GitHub labels via automation.

.github/labels.yml

.gitmessageAdd conventional commit message template +20/-0

Add conventional commit message template

• Adds a local git commit template describing type/scope/breaking-change conventions with examples. Supports consistent commit formatting across contributors.

.gitmessage

package-lock.jsonUpdate lockfile dependencies (engine.io/ws/etc.) +54/-43

Update lockfile dependencies (engine.io/ws/etc.)

• Bumps multiple transitive dependencies and introduces '@types/ws' as a dev dependency (via updated dependency tree). Includes security/compatibility upgrades such as 'picomatch' 2.3.2 and newer 'ws'.

package-lock.json

package.jsonRefine package metadata for bin and repository fields +7/-2

Refine package metadata for bin and repository fields

• Converts 'bin' into a named CLI mapping ('core-styles') and switches 'repository' to structured '{type,url}' form. Improves npm metadata correctness and CLI installation behavior.

package.json

config.ymlConfigure Alert pattern groups and context +29/-0

Configure Alert pattern groups and context

• Defines Fractality config for alert demos, enabling Bootstrap loading and providing sample content variants. Encodes different alert types and behaviors as data.

src/lib/_imports/bootstrap4/components/alert/config.yml

demo.cssAdd pattern-library-only spacing for alerts +5/-0

Add pattern-library-only spacing for alerts

• Adds demo-only margin to visually separate alert examples in the pattern library. Does not affect shipped styles beyond demos.

src/lib/_imports/bootstrap4/components/alert/demo.css

config.ymlConfigure Media pattern loading +3/-0

Configure Media pattern loading

• Adds minimal Fractality config for the Media pattern and ensures Bootstrap is loaded for demos. Prepares the component for inclusion in the library.

src/lib/_imports/bootstrap4/components/media/config.yml

demo.cssAdd demo-only layout styles for media examples +14/-0

Add demo-only layout styles for media examples

• Adds pattern-library-only styles to constrain images and format definition lists for readability. Intended only for Fractality previews.

src/lib/_imports/bootstrap4/components/media/demo.css

config.ymlAdd typography headings pattern with CMS/Docs variants +25/-0

Add typography headings pattern with CMS/Docs variants

• Defines a Bootstrap typography headings pattern with hidden default and WIP CMS/Docs variants. Each variant declares required support styles for the proper typography context.

src/lib/_imports/bootstrap4/content/typography-headings/config.yml

config.ymlMark callout component as prototype +1/-0

Mark callout component as prototype

• Adds minimal config setting the callout component status to prototype. Signals the component is not finalized.

src/lib/_imports/components/c-callout/config.yml

demo.cssAdd demo-only spacing for callout examples +5/-0

Add demo-only spacing for callout examples

• Adds pattern-library-only spacing between definition list groups. Improves readability in demos without changing shipped component behavior.

src/lib/_imports/components/c-callout/demo.css

core-styles.bootstrap4.cssWire new Bootstrap4 component skins into import bundle +2/-0

Wire new Bootstrap4 component skins into import bundle

• Adds imports for the new Bootstrap4 alert and media skins. Ensures they are included wherever the Bootstrap4 compatibility bundle is used.

src/lib/_imports/core-styles.bootstrap4.css

o-section.selectors.postcssAdd selectors for accent section variant +4/-0

Add selectors for accent section variant

• Extends the section selector set to include ':--o-section--accent' and includes it in the general style selector group. Enables consistent styling across '.o-section--style-*' variants.

src/lib/_imports/tacc/objects/o-section.selectors.postcss

config.ymlAdd accent section variant to pattern config +4/-0

Add accent section variant to pattern config

• Registers a 'style-accent' variant in the pattern library configuration. Makes the new accent section style discoverable in demos.

src/lib/_imports/tacc/objects/o-section/config.yml

config.ymlUpdate footer variants (thin/thick widths + new fat-footer demo) +24/-6

Update footer variants (thin/thick widths + new fat-footer demo)

• Renames variant inputs to 'width'/'weight' and adds a dedicated Fat Footer variant with identity column guidance and demo link. Marks portal/cms variants with shared context flags.

src/lib/_imports/tacc/trumps/s-footer/config.yml

demo.cssAdd narrow-screen demo override for footer identity column +8/-0

Add narrow-screen demo override for footer identity column

• Adds demo-only responsive styling to remove identity-column background and spacing on small screens. Demonstrates one approach for handling narrow layouts.

src/lib/_imports/tacc/trumps/s-footer/demo.css

@qodo-code-review

qodo-code-review Bot commented Aug 5, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (1) 📎 Requirement gaps (0) 🎨 UX issues (0) 🔗 Cross-repo conflicts (0) 📜 Skill insights (0)

Grey Divider


Action required

1. Root-level nested selector ✓ Resolved 🐞 Bug ≡ Correctness
Description
html-elements.docs.postcss introduces & dt at the file root without any enclosing selector,
which is invalid nesting syntax and can fail PostCSS nesting transforms or be dropped, preventing
the intended dt styling from applying. This file is imported by the docs entrypoint, so the issue
impacts docs CSS output.
Code

src/lib/_imports/tacc/elements/html-elements.docs.postcss[R8-10]

+& dt {
+  font-weight: var(--medium);
+}
Evidence
The docs html-elements file contains a root-level & dt while the established pattern in this repo
is to place &-nested rules inside a scope selector block (shown in the CMS version). The docs
entrypoint imports this file, so any invalid nesting affects docs CSS generation.

src/lib/_imports/tacc/elements/html-elements.docs.postcss[1-19]
src/lib/_imports/tacc/elements/html-elements.cms.postcss[1-78]
src/lib/_imports/tacc/elements/headings--docs.postcss[1-10]
src/lib/_imports/core-styles.docs.postcss[15-19]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`src/lib/_imports/tacc/elements/html-elements.docs.postcss` uses `& dt` at the top level (no parent selector). `&` requires a nesting context; without a wrapper selector, this is invalid and may cause PostCSS nesting to error or emit no/incorrect rule.

### Issue Context
- The CMS counterpart wraps `&`-nested rules inside `:where(:--main-content) { ... }`.
- The docs build imports this file via `core-styles.docs.postcss`.

### Fix
Choose one:
1) Reintroduce a scope wrapper (recommended for consistency), e.g.
  - add `@import url("../tools/selectors.postcss");`
  - wrap the rules in `:where(:--main-content, :not(:--portal-content)) { ... }` (or whichever scope is correct for docs)
  - keep the nested `& dt` inside that wrapper

2) Remove `&` and use an explicit selector that includes the intended scope.

### Fix Focus Areas
- src/lib/_imports/tacc/elements/html-elements.docs.postcss[1-19]
- src/lib/_imports/tacc/elements/html-elements.cms.postcss[1-78]
- src/lib/_imports/core-styles.docs.postcss[15-19]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Broken message mixin import ✓ Resolved 🐞 Bug ≡ Correctness
Description
bootstrap4/components/alert.css imports ../../tools/x-message.css, but the repo’s message mixins
live under tacc/tools/x-message.postcss; the import will fail and the subsequent @mixin message*
calls cannot resolve. This breaks consumers building core-styles.bootstrap4.css (which now imports
this alert stylesheet).
Code

src/lib/_imports/bootstrap4/components/alert.css[R1-2]

+@import url("../../tools/x-message.css");
+
Evidence
The new alert stylesheet imports a tools/x-message.css file and immediately uses message*
mixins. In this repo, those mixins are defined in tacc/tools/x-message.postcss, and the Bootstrap4
entrypoint now includes the alert stylesheet, so the bad import breaks Bootstrap4 processing.

src/lib/_imports/bootstrap4/components/alert.css[1-8]
src/lib/_imports/tacc/tools/x-message.postcss[1-17]
src/lib/_imports/core-styles.bootstrap4.css[1-8]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`src/lib/_imports/bootstrap4/components/alert.css` imports `../../tools/x-message.css`, but there is no such file in the repo; the message mixins are defined in `src/lib/_imports/tacc/tools/x-message.postcss`. Because the alert stylesheet immediately uses `@mixin message` and related mixins, the Bootstrap4 entrypoint will fail to build or will emit incorrect CSS.

### Issue Context
- `core-styles.bootstrap4.css` now imports `./bootstrap4/components/alert.css`, so this affects the Bootstrap4 build path.
- Other code imports the message mixins from `tacc/tools/x-message.postcss`.

### Fix
- Update the import to point to the actual mixin file (likely `@import url("../../tacc/tools/x-message.postcss");`).
- Verify the Bootstrap4 entrypoint can be processed with the expected PostCSS pipeline.

### Fix Focus Areas
- src/lib/_imports/bootstrap4/components/alert.css[1-8]
- src/lib/_imports/core-styles.bootstrap4.css[1-8]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

3. Missing dist/ rebuild artifacts 📘 Rule violation ☼ Reliability
Description
Files under src/lib/_imports/... were added/modified, but the PR does not include regenerated
dist/ build outputs as required. This can leave published build artifacts stale relative to source
changes.
Code

src/lib/_imports/core-styles.bootstrap4.css[R4-7]

+@import url("./bootstrap4/components/alert.css");
@import url("./bootstrap4/components/btn.css");
@import url("./bootstrap4/components/card.css");
+@import url("./bootstrap4/components/media.css");
Evidence
PR Compliance ID 1 requires regenerated dist/ outputs when src/lib/_imports/... changes. The
diff shows new imports added to src/lib/_imports/core-styles.bootstrap4.css, and the repo
configuration indicates dist is ignored, making it unlikely regenerated artifacts were included in
the PR.

AGENTS.md: Regenerate dist/ build artifacts when source CSS imports change
src/lib/_imports/core-styles.bootstrap4.css[4-7]
.gitignore[7-9]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Compliance requires regenerated `dist/` artifacts when files under `src/lib/_imports/...` change. This PR changes those imports but does not include updated `dist/` outputs.

## Issue Context
The PR adds new Bootstrap 4 component imports (e.g., `alert.css`, `media.css`) under `src/lib/_imports/...`, which should be reflected in generated build outputs.

## Fix Focus Areas
- src/lib/_imports/core-styles.bootstrap4.css[4-7]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


To customize comments, go to the Qodo configuration screen, or learn more in the docs.

Qodo Logo

Comment on lines +4 to +7
@import url("./bootstrap4/components/alert.css");
@import url("./bootstrap4/components/btn.css");
@import url("./bootstrap4/components/card.css");
@import url("./bootstrap4/components/media.css");

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remediation recommended

1. Missing dist/ rebuild artifacts 📘 Rule violation ☼ Reliability

Files under src/lib/_imports/... were added/modified, but the PR does not include regenerated
dist/ build outputs as required. This can leave published build artifacts stale relative to source
changes.
Agent Prompt
## Issue description
Compliance requires regenerated `dist/` artifacts when files under `src/lib/_imports/...` change. This PR changes those imports but does not include updated `dist/` outputs.

## Issue Context
The PR adds new Bootstrap 4 component imports (e.g., `alert.css`, `media.css`) under `src/lib/_imports/...`, which should be reflected in generated build outputs.

## Fix Focus Areas
- src/lib/_imports/core-styles.bootstrap4.css[4-7]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment thread src/lib/_imports/bootstrap4/components/alert.css Outdated
Comment thread src/lib/_imports/tacc/elements/html-elements.docs.postcss Outdated
wesleyboar and others added 10 commits August 5, 2026 19:20
- alert.css imported x-message.css, but v3 only has x-message.postcss
- html-elements.docs.postcss used top-level `& dt` with no enclosing selector

Relates-to TACC#680
The `& dt` rule had no enclosing selector, so `&` resolved to `:scope`
(i.e. the whole document) instead of scoping to main content like the
sibling element styles do.

Relates-to TACC#680 (discussion)
…instead

Superseded by merging TACC#682 in next commit, so the fix
is properly sourced from main rather than living only on this branch.
…' into chore/v3-merge-main

# Conflicts:
#	dist/core-styles.docs.css
#	dist/elements/html-elements.docs.css
#	src/lib/_imports/elements/html-elements.docs.postcss
Simpler than scoping to main content: the `&` was unnecessary since
the rule already applied everywhere via `:scope` (same net effect as
no `&` at all), so just drop it instead of adding new scoping.
…' into chore/v3-merge-main

# Conflicts:
#	dist/core-styles.docs.css
#	dist/elements/html-elements.docs.css
#	src/lib/_imports/elements/html-elements.docs.postcss
## Overview

Syncs `epic/v3` with `main` (90 commits behind).

> [!WARNING]
> Performed by AI, Claude Sonnet 5 (under my direction).

## Related

- updates TACC#454

## Changes

- **merged** `main` into `epic/v3`
- **resolved** `dist/*` modify/delete conflicts by keeping `epic/v3`'s
deletion (`dist/` is not committed on v3)
- **resolved** 4 renamed source files (`headings--cms`,
`headings--docs`, `html-elements.docs`, `s-footer`) using `main`'s
content with v3's `.postcss` import extensions
- **renamed** 5 new source files added by `main` (`x-headings*`,
`typography-headings--cms`/`docs`) from `.css` to `.postcss` to match
v3's source convention
- **regenerated** `package-lock.json` via `npm install`, keeping v3's
`package.json` version

## Testing

1. `npm run build` - no errors
2. `npm run lint` - `No dist files found in source. Ready to publish.`

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Garrett Edmonds <43251554+edmondsgarrett@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
epic/v3 was squash-merged for PR TACC#680, so this branch's history has
no shared ancestor with origin/epic/v3 even though the tree content
is already identical (verified via `git diff origin/epic/v3 <old-tip>`
showing zero differences). Using the 'ours' strategy to record this
branch as up to date with epic/v3 without re-resolving conflicts that
were already resolved via the (squashed) merge history.
@wesleyboar
wesleyboar merged commit 4767695 into TACC:epic/v3--reorg Aug 6, 2026
@wesleyboar
wesleyboar deleted the chore/v3-reorg-merge-epic branch August 6, 2026 19:22
wesleyboar added a commit that referenced this pull request Aug 6, 2026
epic/v3's content (incl. main, via #680/#682) was already applied to
epic/v3--reorg via #681's chain propagation, but #681 was squash-merged,
severing the ancestry link again (same issue as #680 on epic/v3).
Recording this merge with the 'ours' strategy (verified zero net
content change) so future `git merge epic/v3` (and transitively
`git merge main`) operations compute the correct merge-base.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants