@motir/design-system 0.10.0 → 0.11.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/dist/components/theme/StyleVignette.js +5 -2
- package/dist/components/theme/StyleVignette.js.map +1 -1
- package/dist/components/ui/Button.js +5 -2
- package/dist/components/ui/Button.js.map +1 -1
- package/dist/components/ui/Combobox.d.ts +32 -1
- package/dist/components/ui/Combobox.js +38 -11
- package/dist/components/ui/Combobox.js.map +1 -1
- package/dist/components/ui/ErrorState.js +5 -2
- package/dist/components/ui/ErrorState.js.map +1 -1
- package/dist/components/ui/Segmented.js +5 -2
- package/dist/components/ui/Segmented.js.map +1 -1
- package/dist/specimen/TokensSpecimen.d.ts +11 -3
- package/dist/specimen/TokensSpecimen.js +9 -290
- package/dist/specimen/TokensSpecimen.js.map +1 -1
- package/package.json +3 -1
- package/theme.css +29 -11
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@motir/design-system",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "Motir's 3-axis design system (colour · style · type): distributable token CSS, the axis registries, the theme-apply API, and framework-agnostic React primitives. Shared by motir-core and planner-scaffolded products.",
|
|
5
5
|
"license": "GPL-3.0-only",
|
|
6
6
|
"repository": {
|
|
@@ -59,9 +59,11 @@
|
|
|
59
59
|
}
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
+
"@testing-library/react": "^16.3.2",
|
|
62
63
|
"@types/node": "^22.19.19",
|
|
63
64
|
"@types/react": "^19",
|
|
64
65
|
"@types/react-dom": "^19",
|
|
66
|
+
"happy-dom": "^20.9.0",
|
|
65
67
|
"tsup": "^8.5.0",
|
|
66
68
|
"typescript": "^5",
|
|
67
69
|
"vitest": "^4.1.7"
|
package/theme.css
CHANGED
|
@@ -1984,7 +1984,24 @@
|
|
|
1984
1984
|
dividers inside a wavy card): the full-box `.border`, and the single-side
|
|
1985
1985
|
dividers `.border-b` / `.border-t` (table rows, section rules) — the latter
|
|
1986
1986
|
scoped INSIDE `[data-surface]` panels to bound the count to real surfaces (and
|
|
1987
|
-
their rows are virtualised, so only ~viewport-many overlays ever render).
|
|
1987
|
+
their rows are virtualised, so only ~viewport-many overlays ever render).
|
|
1988
|
+
|
|
1989
|
+
⚠️ THE INK IS AN `outline`, NOT A `border`, AND THE OVERLAY BOX NEVER LEAVES ITS
|
|
1990
|
+
HOST'S PADDING BOX (MOTIR-7693). The line has to straddle the host's padding
|
|
1991
|
+
edge — 1px out, 1px in — to sit on the real border it roughens. Drawn as a
|
|
1992
|
+
2px border on an overlay at `inset: -1px`, that put the overlay's BOX one
|
|
1993
|
+
pixel past its host on every side, and when the host is also a scroll
|
|
1994
|
+
container (`.border` + `overflow-*-auto`: framed tables, pickers, code blocks)
|
|
1995
|
+
its own `::after` is part of its scrollable overflow — `scrollWidth` /
|
|
1996
|
+
`scrollHeight` one past the client box, so the browser drew a vertical AND a
|
|
1997
|
+
horizontal scroll bar on content that fits. An outline is ink, not layout: it
|
|
1998
|
+
never counts toward scrollable overflow. So the overlay box sits at `inset: 0`
|
|
1999
|
+
and `outline-offset: -1px` puts the 2px line back on exactly the same pixels.
|
|
2000
|
+
The dividers are the same move — a 0-height box ON the edge, a 1px outline
|
|
2001
|
+
either side of it (the line it replaces was 2px straddling the edge), and
|
|
2002
|
+
`left`/`right: 1px` to cancel the outline's run past the box's ends; their
|
|
2003
|
+
`bottom: -1px` overflowed a scroller whose last row drops its real border.
|
|
2004
|
+
tests/e2e/hand-drawn-scroll-frame.spec.ts measures it in Chromium. */
|
|
1988
2005
|
@scope ([data-style='hand-drawn-indie']) to ([data-style]) {
|
|
1989
2006
|
.border {
|
|
1990
2007
|
border-width: 2px;
|
|
@@ -1999,9 +2016,10 @@
|
|
|
1999
2016
|
.border::after {
|
|
2000
2017
|
content: '';
|
|
2001
2018
|
position: absolute;
|
|
2002
|
-
inset:
|
|
2019
|
+
inset: 0;
|
|
2003
2020
|
pointer-events: none;
|
|
2004
|
-
|
|
2021
|
+
outline: 2px solid var(--el-border-strong);
|
|
2022
|
+
outline-offset: -1px;
|
|
2005
2023
|
border-radius: inherit;
|
|
2006
2024
|
filter: url(#hd-rough);
|
|
2007
2025
|
}
|
|
@@ -2020,12 +2038,12 @@
|
|
|
2020
2038
|
[data-surface] .border-b:not(.border)::after {
|
|
2021
2039
|
content: '';
|
|
2022
2040
|
position: absolute;
|
|
2023
|
-
left:
|
|
2024
|
-
right:
|
|
2025
|
-
bottom:
|
|
2041
|
+
left: 1px;
|
|
2042
|
+
right: 1px;
|
|
2043
|
+
bottom: 0;
|
|
2026
2044
|
height: 0;
|
|
2027
2045
|
pointer-events: none;
|
|
2028
|
-
|
|
2046
|
+
outline: 1px solid var(--el-border-strong);
|
|
2029
2047
|
filter: url(#hd-rough);
|
|
2030
2048
|
}
|
|
2031
2049
|
}
|
|
@@ -2033,12 +2051,12 @@
|
|
|
2033
2051
|
[data-surface] .border-t:not(.border)::after {
|
|
2034
2052
|
content: '';
|
|
2035
2053
|
position: absolute;
|
|
2036
|
-
left:
|
|
2037
|
-
right:
|
|
2038
|
-
top:
|
|
2054
|
+
left: 1px;
|
|
2055
|
+
right: 1px;
|
|
2056
|
+
top: 0;
|
|
2039
2057
|
height: 0;
|
|
2040
2058
|
pointer-events: none;
|
|
2041
|
-
|
|
2059
|
+
outline: 1px solid var(--el-border-strong);
|
|
2042
2060
|
filter: url(#hd-rough);
|
|
2043
2061
|
}
|
|
2044
2062
|
}
|