@ai-matrx/design-system 0.11.5 → 0.12.0
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 +81 -0
- package/dist/index.cjs +198 -57
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +43 -1
- package/dist/index.d.ts +43 -1
- package/dist/index.js +198 -57
- 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,86 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.12.0 — 2026-09-08
|
|
4
|
+
|
|
5
|
+
### `OrganizationPicker` — the ONE "which organization am I acting in" control
|
|
6
|
+
|
|
7
|
+
Three surfaces, three UIs for one fact: matrx-frontend had the full picker
|
|
8
|
+
(list with abbreviation tile, Personal badge, default star, active check, the
|
|
9
|
+
"Set as my default" switch, and the sentence naming the working organization);
|
|
10
|
+
Workflow Studio's sidebar and the admin dashboard's settings each had a bare
|
|
11
|
+
`<Select>` with different copy, different placement and no default control.
|
|
12
|
+
`OrganizationPicker` is the matrx-frontend panel ported verbatim
|
|
13
|
+
(`OrganizationPickerPanel` + `UserMenuOrgSection` + `DefaultOrgSwitch`), made
|
|
14
|
+
presentational: the host supplies memberships, the active id, the default id,
|
|
15
|
+
`onSelect` and (optionally) `onSetDefault`; it owns no fetch, storage or
|
|
16
|
+
resolution. Omit `onSetDefault` and the switch is not rendered — a host with no
|
|
17
|
+
write path must not show a control that does nothing. `OrganizationAbbreviation`
|
|
18
|
+
ships alongside (falls back to the name's first letter, so a tile is never
|
|
19
|
+
empty). Icons are package SVGs (C19: `StarIcon`, `Building2Icon` added
|
|
20
|
+
internally); the loading rows are this package's `Skeleton`; the default star
|
|
21
|
+
uses the semantic `warning` token — both caught by the package's own guards on
|
|
22
|
+
the first attempt. Adopted in the same session by matrx-frontend (user menu +
|
|
23
|
+
header nudge), workflow-studio (sidebar popover) and the admin dashboard
|
|
24
|
+
(Settings → Organization).
|
|
25
|
+
|
|
26
|
+
## 0.11.6 — 2026-09-08
|
|
27
|
+
|
|
28
|
+
**THE PATCH TO TAKE.** 0.11.3, 0.11.4 and 0.11.5 are all superseded; the
|
|
29
|
+
history of why is kept below because each one is a distinct, reusable finding
|
|
30
|
+
about shipping CSS from a package.
|
|
31
|
+
|
|
32
|
+
🚨 **THE GENERATION HAZARD** — the third and last of them, measured on
|
|
33
|
+
matrx-frontend's live stylesheet after adopting 0.11.5. That release spelled
|
|
34
|
+
the footer's bottom pad `pb-[var(--dialog-pad-bottom,0px)]` and the card
|
|
35
|
+
`[--dialog-pad-bottom:1.5rem]`. **Neither utility reached the consumer's
|
|
36
|
+
stylesheet**, while the pre-existing `px-[var(--dialog-pad,0px)]` on the same
|
|
37
|
+
element did — so the footer rendered with `padding-bottom: 0`. A consumer's
|
|
38
|
+
Tailwind generates utilities from what it SCANS, and **a class name this
|
|
39
|
+
package invents is not guaranteed to reach any consumer's sheet**. Silent, no
|
|
40
|
+
error: the C26 host contract again, one layer further out.
|
|
41
|
+
|
|
42
|
+
**So 0.11.6 invents no class name at all.** The footer's utilities are the
|
|
43
|
+
0.11.2 string minus exactly one token — the negative block margin that caused
|
|
44
|
+
the original defect:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
- mx-[…] mb-[calc(var(--dialog-pad,0px)*-1)] px-[…] pb-[var(--dialog-pad,0px)]
|
|
48
|
+
+ mx-[…] px-[…] pb-[var(--dialog-pad,0px)]
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Everything genuinely new lives in `styles.css`, which the package ships itself:
|
|
52
|
+
|
|
53
|
+
```css
|
|
54
|
+
.matrx-dialog-card:has(> [data-slot="dialog-footer"]),
|
|
55
|
+
.matrx-dialog-card:has(> [data-slot="alert-dialog-footer"]) { padding-bottom: 0 }
|
|
56
|
+
|
|
57
|
+
.matrx-mobile-sheet > [data-slot="dialog-footer"] {
|
|
58
|
+
padding-bottom: max(var(--dialog-pad, 0px), env(safe-area-inset-bottom, 0px));
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
The second rule restates the home-indicator floor the sheet's card used to buy
|
|
63
|
+
with `pb-safe`, since the reservation hands that padding to the footer. It is
|
|
64
|
+
the ONE place a shipped rule overrides a caller's footer padding, and it is a
|
|
65
|
+
safety floor rather than taste.
|
|
66
|
+
|
|
67
|
+
**Measured on the live app, 1280x800, after adoption** — every consequence
|
|
68
|
+
length, `overlapPx = -16` (a full `gap-4` of clearance where 0.11.2 had `+7.6`
|
|
69
|
+
of occlusion), footer padding `12/24/24/24px` identical to 0.11.2, footer bottom
|
|
70
|
+
flush to the card's inner edge, and the card's total height unchanged. Nothing
|
|
71
|
+
about the dialog changed except that the consequence is now fully visible.
|
|
72
|
+
|
|
73
|
+
**Guard added:** `sticky-footer-geometry.test.tsx` § "invents NO new Tailwind
|
|
74
|
+
class name". All 9 of its assertions and both `styles.test.ts` § THE PREFLIGHT
|
|
75
|
+
RULE assertions are proven RED on the pre-fix baseline and GREEN here.
|
|
76
|
+
|
|
77
|
+
### Consumer action (C28)
|
|
78
|
+
|
|
79
|
+
**Take 0.11.6.** No API change; the footer's rendered geometry is identical to
|
|
80
|
+
0.11.2 minus the occlusion, and every `DialogFooter` / `AlertDialogFooter`
|
|
81
|
+
`className` override behaves exactly as it did. Three older contracts also
|
|
82
|
+
start working for the first time — see § 0.11.4.
|
|
83
|
+
|
|
3
84
|
## 0.11.5 — 2026-09-08
|
|
4
85
|
|
|
5
86
|
**0.11.4's footer rule was correct and in the wrong place a second time — it
|