@neuravision/construct 2.1.4 → 2.1.5
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 +14 -0
- package/components/card.css +6 -6
- package/components/modal.css +4 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,20 @@ All notable changes to `@neuravision/construct` will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.1.5] - 2026-07-17
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **Card & Modal: the 2.1.4 `[hidden]` slot guards are replaced with `:not(:has(*))`
|
|
13
|
+
empty-slot rules — update immediately if you are on 2.1.4.** The attribute guards
|
|
14
|
+
trusted the wrapper's projection detection; ng-construct's `AfCard`/`AfModal` detection
|
|
15
|
+
(`contentChild('[header]')` resolves a template reference name, never a CSS selector)
|
|
16
|
+
reports "empty" for every slot, so 2.1.4 blanked out populated card headers/footers and
|
|
17
|
+
every modal footer in consuming apps. The slots now decide visibility purely in CSS:
|
|
18
|
+
a header/footer wrapper with no projected element hides itself, one with content always
|
|
19
|
+
renders — regardless of what the wrapper's `hidden` attribute claims. The original
|
|
20
|
+
2.1.4 goal (no ghost divider under footerless cards/modals) is preserved.
|
|
21
|
+
|
|
8
22
|
## [2.1.4] - 2026-07-17
|
|
9
23
|
|
|
10
24
|
### Fixed
|
package/components/card.css
CHANGED
|
@@ -46,12 +46,12 @@
|
|
|
46
46
|
border-top: var(--border-thin) solid var(--color-border-subtle);
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
/*
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
.ct-card__header
|
|
54
|
-
.ct-card__footer
|
|
49
|
+
/* Slot wrappers render even when no content is projected into them (framework
|
|
50
|
+
wrappers cannot reliably detect projection, and the `hidden` attribute they
|
|
51
|
+
set is overridden by the display rules above). Hide slots without projected
|
|
52
|
+
content so an empty header/footer leaves no ghost spacing or divider. */
|
|
53
|
+
.ct-card__header:not(:has(*)),
|
|
54
|
+
.ct-card__footer:not(:has(*)) {
|
|
55
55
|
display: none;
|
|
56
56
|
}
|
|
57
57
|
|
package/components/modal.css
CHANGED
|
@@ -64,10 +64,10 @@
|
|
|
64
64
|
flex-wrap: wrap;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
/*
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
.ct-modal__footer
|
|
67
|
+
/* The footer wrapper renders even when no content is projected into it
|
|
68
|
+
(framework wrappers cannot reliably detect projection). Hide it when
|
|
69
|
+
empty so footerless modals leave no ghost divider behind. */
|
|
70
|
+
.ct-modal__footer:not(:has(*)) {
|
|
71
71
|
display: none;
|
|
72
72
|
}
|
|
73
73
|
|