@ai-matrx/design-system 0.11.5 → 0.11.6
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 +58 -0
- package/dist/index.cjs +4 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/styles.css +13 -19
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,63 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.11.6 — 2026-09-08
|
|
4
|
+
|
|
5
|
+
**THE PATCH TO TAKE.** 0.11.3, 0.11.4 and 0.11.5 are all superseded; the
|
|
6
|
+
history of why is kept below because each one is a distinct, reusable finding
|
|
7
|
+
about shipping CSS from a package.
|
|
8
|
+
|
|
9
|
+
🚨 **THE GENERATION HAZARD** — the third and last of them, measured on
|
|
10
|
+
matrx-frontend's live stylesheet after adopting 0.11.5. That release spelled
|
|
11
|
+
the footer's bottom pad `pb-[var(--dialog-pad-bottom,0px)]` and the card
|
|
12
|
+
`[--dialog-pad-bottom:1.5rem]`. **Neither utility reached the consumer's
|
|
13
|
+
stylesheet**, while the pre-existing `px-[var(--dialog-pad,0px)]` on the same
|
|
14
|
+
element did — so the footer rendered with `padding-bottom: 0`. A consumer's
|
|
15
|
+
Tailwind generates utilities from what it SCANS, and **a class name this
|
|
16
|
+
package invents is not guaranteed to reach any consumer's sheet**. Silent, no
|
|
17
|
+
error: the C26 host contract again, one layer further out.
|
|
18
|
+
|
|
19
|
+
**So 0.11.6 invents no class name at all.** The footer's utilities are the
|
|
20
|
+
0.11.2 string minus exactly one token — the negative block margin that caused
|
|
21
|
+
the original defect:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
- mx-[…] mb-[calc(var(--dialog-pad,0px)*-1)] px-[…] pb-[var(--dialog-pad,0px)]
|
|
25
|
+
+ mx-[…] px-[…] pb-[var(--dialog-pad,0px)]
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Everything genuinely new lives in `styles.css`, which the package ships itself:
|
|
29
|
+
|
|
30
|
+
```css
|
|
31
|
+
.matrx-dialog-card:has(> [data-slot="dialog-footer"]),
|
|
32
|
+
.matrx-dialog-card:has(> [data-slot="alert-dialog-footer"]) { padding-bottom: 0 }
|
|
33
|
+
|
|
34
|
+
.matrx-mobile-sheet > [data-slot="dialog-footer"] {
|
|
35
|
+
padding-bottom: max(var(--dialog-pad, 0px), env(safe-area-inset-bottom, 0px));
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
The second rule restates the home-indicator floor the sheet's card used to buy
|
|
40
|
+
with `pb-safe`, since the reservation hands that padding to the footer. It is
|
|
41
|
+
the ONE place a shipped rule overrides a caller's footer padding, and it is a
|
|
42
|
+
safety floor rather than taste.
|
|
43
|
+
|
|
44
|
+
**Measured on the live app, 1280x800, after adoption** — every consequence
|
|
45
|
+
length, `overlapPx = -16` (a full `gap-4` of clearance where 0.11.2 had `+7.6`
|
|
46
|
+
of occlusion), footer padding `12/24/24/24px` identical to 0.11.2, footer bottom
|
|
47
|
+
flush to the card's inner edge, and the card's total height unchanged. Nothing
|
|
48
|
+
about the dialog changed except that the consequence is now fully visible.
|
|
49
|
+
|
|
50
|
+
**Guard added:** `sticky-footer-geometry.test.tsx` § "invents NO new Tailwind
|
|
51
|
+
class name". All 9 of its assertions and both `styles.test.ts` § THE PREFLIGHT
|
|
52
|
+
RULE assertions are proven RED on the pre-fix baseline and GREEN here.
|
|
53
|
+
|
|
54
|
+
### Consumer action (C28)
|
|
55
|
+
|
|
56
|
+
**Take 0.11.6.** No API change; the footer's rendered geometry is identical to
|
|
57
|
+
0.11.2 minus the occlusion, and every `DialogFooter` / `AlertDialogFooter`
|
|
58
|
+
`className` override behaves exactly as it did. Three older contracts also
|
|
59
|
+
start working for the first time — see § 0.11.4.
|
|
60
|
+
|
|
3
61
|
## 0.11.5 — 2026-09-08
|
|
4
62
|
|
|
5
63
|
**0.11.4's footer rule was correct and in the wrong place a second time — it
|
package/dist/index.cjs
CHANGED
|
@@ -1067,7 +1067,7 @@ var AlertDialogContent = React7.forwardRef(({ className, children, container, an
|
|
|
1067
1067
|
// a sticky footer when there is one, so the footer's box matches the
|
|
1068
1068
|
// space the grid gave it and sticky never clamps it up over the
|
|
1069
1069
|
// consequence copy.
|
|
1070
|
-
"max-h-[85dvh] overflow-y-auto overscroll-contain [--dialog-pad:1.5rem]
|
|
1070
|
+
"max-h-[85dvh] overflow-y-auto overscroll-contain [--dialog-pad:1.5rem] overflow-x-clip [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full",
|
|
1071
1071
|
"sm:rounded-lg",
|
|
1072
1072
|
animated && MOTION_DIALOG,
|
|
1073
1073
|
className
|
|
@@ -1122,7 +1122,7 @@ var AlertDialogFooter = ({
|
|
|
1122
1122
|
// have to be unlayered to survive Tailwind preflight (§ THE PREFLIGHT
|
|
1123
1123
|
// RULE in styles.css) and would then override every caller's padding.
|
|
1124
1124
|
"sticky bottom-0 z-10 bg-background pt-3",
|
|
1125
|
-
"mx-[calc(var(--dialog-pad,0px)*-1)] px-[var(--dialog-pad,0px)] pb-[var(--dialog-pad
|
|
1125
|
+
"mx-[calc(var(--dialog-pad,0px)*-1)] px-[var(--dialog-pad,0px)] pb-[var(--dialog-pad,0px)]",
|
|
1126
1126
|
className
|
|
1127
1127
|
),
|
|
1128
1128
|
...props
|
|
@@ -2143,7 +2143,7 @@ var DialogContentPrimitive = React17.forwardRef((props, ref) => {
|
|
|
2143
2143
|
);
|
|
2144
2144
|
});
|
|
2145
2145
|
DialogContentPrimitive.displayName = "DialogContentPrimitive";
|
|
2146
|
-
var DIALOG_DESKTOP_CLASSES2 = `matrx-dialog-card fixed left-[50%] top-[50%] z-[10000] grid min-w-0 w-full max-w-lg ${CENTERED_DIALOG} gap-4 max-h-[85dvh] overflow-y-auto overscroll-contain [--dialog-pad:1.5rem]
|
|
2146
|
+
var DIALOG_DESKTOP_CLASSES2 = `matrx-dialog-card fixed left-[50%] top-[50%] z-[10000] grid min-w-0 w-full max-w-lg ${CENTERED_DIALOG} gap-4 max-h-[85dvh] overflow-y-auto overscroll-contain [--dialog-pad:1.5rem] overflow-x-clip border bg-background p-6 shadow-lg [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full sm:rounded-lg`;
|
|
2147
2147
|
var DIALOG_MOBILE_SHEET_CLASSES2 = "matrx-mobile-sheet matrx-dialog-card fixed inset-x-0 bottom-0 left-0 right-0 top-auto z-[10000] flex min-w-0 flex-col w-full max-w-full max-h-[90dvh] translate-x-0 translate-y-0 gap-4 [--dialog-pad:1rem] overflow-x-clip border-t bg-background p-4 pb-safe shadow-lg [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full rounded-t-2xl rounded-b-none overflow-y-auto overscroll-contain";
|
|
2148
2148
|
var DIALOG_MOBILE_SHEET_OVERRIDE2 = "inset-x-0 bottom-0 left-0 right-0 top-auto translate-x-0 translate-y-0 w-full max-w-full max-h-[90dvh] rounded-b-none rounded-t-2xl overflow-y-auto";
|
|
2149
2149
|
var DialogContent = React17.forwardRef(
|
|
@@ -2267,7 +2267,7 @@ var DialogFooter = ({
|
|
|
2267
2267
|
// have to be unlayered to survive Tailwind preflight (§ THE PREFLIGHT
|
|
2268
2268
|
// RULE in styles.css) and would then override every caller's padding.
|
|
2269
2269
|
"sticky bottom-0 z-10 bg-background pt-3",
|
|
2270
|
-
"mx-[calc(var(--dialog-pad,0px)*-1)] px-[var(--dialog-pad,0px)] pb-[var(--dialog-pad
|
|
2270
|
+
"mx-[calc(var(--dialog-pad,0px)*-1)] px-[var(--dialog-pad,0px)] pb-[var(--dialog-pad,0px)]",
|
|
2271
2271
|
className
|
|
2272
2272
|
),
|
|
2273
2273
|
...props
|