@tekyzinc/gsd-t 2.73.21 → 2.73.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  All notable changes to GSD-T are documented here. Updated with each release.
4
4
 
5
+ ## [2.73.22] - 2026-04-09
6
+
7
+ ### Added
8
+ - **Stack-level border-radius** — setting `borderRadius` on a flex/grid bar column container auto-sets `overflow: hidden` (so rounded corners clip child segments) and propagates to all sibling columns. One change rounds all stacked bars.
9
+
5
10
  ## [2.73.21] - 2026-04-09
6
11
 
7
12
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tekyzinc/gsd-t",
3
- "version": "2.73.21",
3
+ "version": "2.73.22",
4
4
  "description": "GSD-T: Contract-Driven Development for Claude Code — 56 slash commands with headless CI/CD mode, graph-powered code analysis, real-time agent dashboard, execution intelligence, task telemetry, doc-ripple enforcement, backlog management, impact analysis, test sync, milestone archival, and PRD generation",
5
5
  "author": "Tekyz, Inc.",
6
6
  "license": "MIT",
@@ -794,16 +794,24 @@
794
794
  const parentStyle = getComputedStyle(parent);
795
795
  const layoutProps = new Set(["gap", "row-gap", "column-gap"]);
796
796
 
797
- if (layoutProps.has(cssName)) {
798
- // Layout props on a flex/grid container: find all sibling containers with same structure
799
- // (e.g., all bar columns in a chart — same parent, same display type)
797
+ // Props that propagate across sibling containers (all bar columns)
798
+ const containerProps = new Set(["gap", "row-gap", "column-gap", "border-radius", "overflow"]);
799
+
800
+ if (containerProps.has(cssName)) {
800
801
  const elDisplay = elStyle.display;
801
802
  if (elDisplay === "flex" || elDisplay === "inline-flex" || elDisplay === "grid") {
803
+ // Auto-set overflow:hidden when border-radius is applied to a container
804
+ if (cssName === "border-radius" && msg.value && msg.value !== "0px" && msg.value !== "0") {
805
+ lockedEl.style.setProperty("overflow", "hidden", "important");
806
+ }
802
807
  for (const sib of parent.children) {
803
808
  if (sib === lockedEl || sib.tagName !== "DIV") continue;
804
809
  const sibStyle = getComputedStyle(sib);
805
810
  if (sibStyle.display === elDisplay) {
806
811
  sib.style.setProperty(cssName, msg.value, "important");
812
+ if (cssName === "border-radius" && msg.value && msg.value !== "0px" && msg.value !== "0") {
813
+ sib.style.setProperty("overflow", "hidden", "important");
814
+ }
807
815
  propagatedCount++;
808
816
  }
809
817
  }
@@ -826,7 +834,7 @@
826
834
  const tag = lockedEl.tagName.toLowerCase();
827
835
  const columnProps = new Set(["text-align", "width", "min-width", "max-width"]);
828
836
  const rowProps = new Set(["height", "min-height", "max-height"]);
829
- const layoutProps = new Set(["gap", "row-gap", "column-gap"]);
837
+ const containerPropsLabel = new Set(["gap", "row-gap", "column-gap", "border-radius", "overflow"]);
830
838
  if ((tag === "td" || tag === "th") && columnProps.has(cssName)) {
831
839
  const row = lockedEl.closest("tr");
832
840
  const colIdx = row ? Array.from(row.children).indexOf(lockedEl) + 1 : 0;
@@ -835,7 +843,7 @@
835
843
  propagateScope = "all rows";
836
844
  } else if (tag === "tr") {
837
845
  propagateScope = "all rows";
838
- } else if (layoutProps.has(cssName)) {
846
+ } else if (containerPropsLabel.has(cssName)) {
839
847
  propagateScope = "all columns";
840
848
  } else {
841
849
  propagateScope = "similar";