@webority/theme 0.107.0 → 0.108.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/README.md +2 -2
- package/dist/purge-safelist.json +60 -59
- package/dist/webority-theme.css +1 -1
- package/package.json +2 -2
- package/scss/_bootstrap.generated.scss +1 -1
- package/scss/_tokens.generated.scss +1 -1
- package/scss/_wui-components.scss +6 -1
- package/scss/_wui-core.scss +6 -1
- package/scss/wui/_avatar-picker.scss +22 -21
- package/scss/wui/_choice.scss +5 -6
- package/scss/wui/_compare-table.scss +201 -0
- package/scss/wui/_controls.scss +1 -1
- package/scss/wui/_data.scss +2 -302
- package/scss/wui/_dialog-motion.scss +34 -0
- package/scss/wui/_disclosure.scss +27 -27
- package/scss/wui/_display.scss +70 -118
- package/scss/wui/_drawer.scss +97 -64
- package/scss/wui/_empty-state.scss +124 -0
- package/scss/wui/_illustration.scss +3 -3
- package/scss/wui/_image-crop.scss +1 -1
- package/scss/wui/_interaction.scss +2 -4
- package/scss/wui/_media.scss +50 -50
- package/scss/wui/_navigation.scss +0 -45
- package/scss/wui/_notification-center.scss +4 -0
- package/scss/wui/_overlays.scss +4 -5
- package/scss/wui/_pagination.scss +168 -0
- package/scss/wui/_section-lead-capture.scss +31 -0
- package/scss/wui/_shortcuts.scss +10 -1
- package/scss/wui/_table-server.scss +1 -1
- package/scss/wui/_whats-new.scss +17 -0
- package/scss/wui/_menubar.scss +0 -110
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webority/theme",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.108.0",
|
|
4
4
|
"description": "Webority shared design system — Bootstrap 5.3 SCSS overrides, --wui-* tokens, and shared component CSS. The single source of brand chrome for React portals and Razor sites.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"publishConfig": {
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"country-flag-icons": "^1.6.20",
|
|
52
52
|
"sass-embedded": "^1.97.0",
|
|
53
53
|
"vite": "^8.0.12",
|
|
54
|
-
"@webority/tokens": "0.
|
|
54
|
+
"@webority/tokens": "0.108.0"
|
|
55
55
|
},
|
|
56
56
|
"scripts": {
|
|
57
57
|
"tokens": "node ../tokens/dist/webority.js brand --library --out ../tokens/dist --web scss/_tokens.generated.scss",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Generated by @webority/tokens 0.
|
|
1
|
+
// Generated by @webority/tokens 0.108.0 from its token source. Do not edit; run webority brand --library.
|
|
2
2
|
$body-color: #252f4a !default;
|
|
3
3
|
$body-secondary-color: #4b5675 !default;
|
|
4
4
|
$body-tertiary-color: #626a82 !default;
|
|
@@ -36,7 +36,9 @@
|
|
|
36
36
|
@import "wui/navigation";
|
|
37
37
|
@import "wui/nav-list";
|
|
38
38
|
@import "wui/card";
|
|
39
|
+
@import "wui/empty-state";
|
|
39
40
|
@import "wui/data";
|
|
41
|
+
@import "wui/pagination";
|
|
40
42
|
@import "wui/illustration";
|
|
41
43
|
@import "wui/table-server";
|
|
42
44
|
@import "wui/kanban";
|
|
@@ -50,9 +52,11 @@
|
|
|
50
52
|
@import "wui/typography";
|
|
51
53
|
@import "wui/disclosure";
|
|
52
54
|
@import "wui/display";
|
|
55
|
+
@import "wui/compare-table";
|
|
53
56
|
@import "wui/flow";
|
|
54
57
|
// After `flow`: the pricing section extends its `.plan-grid` rules.
|
|
55
58
|
@import "wui/sections";
|
|
59
|
+
@import "wui/section-lead-capture";
|
|
56
60
|
@import "wui/chart";
|
|
57
61
|
@import "wui/chart-card";
|
|
58
62
|
@import "wui/calendar";
|
|
@@ -102,7 +106,6 @@
|
|
|
102
106
|
// After `overlays`: anchors the shared modal shell to the top when it holds the palette card.
|
|
103
107
|
@import "wui/command-palette";
|
|
104
108
|
@import "wui/context-menu";
|
|
105
|
-
@import "wui/menubar";
|
|
106
109
|
@import "wui/navigation-menu";
|
|
107
110
|
@import "wui/tour";
|
|
108
111
|
@import "wui/hover-card";
|
|
@@ -114,3 +117,5 @@
|
|
|
114
117
|
@import "wui/interaction";
|
|
115
118
|
// Last: restates the settled state of menus other partials style, so it must win.
|
|
116
119
|
@import "wui/menu-motion";
|
|
120
|
+
// After menu-motion: reuses its zoom keyframes and must win over the overlay partials' modal rules.
|
|
121
|
+
@import "wui/dialog-motion";
|
package/scss/_wui-core.scss
CHANGED
|
@@ -28,7 +28,9 @@
|
|
|
28
28
|
@import "wui/navigation";
|
|
29
29
|
@import "wui/nav-list";
|
|
30
30
|
@import "wui/card";
|
|
31
|
+
@import "wui/empty-state";
|
|
31
32
|
@import "wui/data";
|
|
33
|
+
@import "wui/pagination";
|
|
32
34
|
@import "wui/illustration";
|
|
33
35
|
@import "wui/table-server";
|
|
34
36
|
@import "wui/inline-edit";
|
|
@@ -41,9 +43,11 @@
|
|
|
41
43
|
@import "wui/typography";
|
|
42
44
|
@import "wui/disclosure";
|
|
43
45
|
@import "wui/display";
|
|
46
|
+
@import "wui/compare-table";
|
|
44
47
|
@import "wui/flow";
|
|
45
48
|
// After `flow`: the pricing section extends its `.plan-grid` rules.
|
|
46
49
|
@import "wui/sections";
|
|
50
|
+
@import "wui/section-lead-capture";
|
|
47
51
|
@import "wui/chart";
|
|
48
52
|
@import "wui/chart-card";
|
|
49
53
|
@import "wui/markdown";
|
|
@@ -82,7 +86,6 @@
|
|
|
82
86
|
@import "wui/floating";
|
|
83
87
|
@import "wui/code-block";
|
|
84
88
|
@import "wui/context-menu";
|
|
85
|
-
@import "wui/menubar";
|
|
86
89
|
@import "wui/navigation-menu";
|
|
87
90
|
@import "wui/hover-card";
|
|
88
91
|
@import "wui/notification-center";
|
|
@@ -93,3 +96,5 @@
|
|
|
93
96
|
@import "wui/interaction";
|
|
94
97
|
// Last: restates the settled state of menus other partials style, so it must win.
|
|
95
98
|
@import "wui/menu-motion";
|
|
99
|
+
// After menu-motion: reuses its zoom keyframes and must win over the overlay partials' modal rules.
|
|
100
|
+
@import "wui/dialog-motion";
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
// ──
|
|
2
|
-
//
|
|
3
|
-
// that change it. The crop dialog it opens is <wui-image-crop>
|
|
4
|
-
// comes from --wui-avatar-size on .wui-
|
|
1
|
+
// ── Image picker, buttons look ──
|
|
2
|
+
// AppImagePicker with controls="buttons" (and <app-image-picker controls="buttons">): a profile photo
|
|
3
|
+
// (or its placeholder) beside the actions that change it. The crop dialog it opens is <wui-image-crop>
|
|
4
|
+
// (_image-crop.scss). The diameter comes from --wui-avatar-size on .wui-image-picker-buttons, which
|
|
5
|
+
// both wrappers set from `size`.
|
|
5
6
|
// Every colour is a theme token, so dark mode follows the token flip.
|
|
6
7
|
//
|
|
7
8
|
// Part of the wui-components layer, see _wui-components.scss for load order.
|
|
8
9
|
|
|
9
|
-
.wui-
|
|
10
|
+
.wui-image-picker-buttons {
|
|
10
11
|
// The md diameter; both wrappers set their own size inline, which wins.
|
|
11
12
|
--wui-avatar-size: 96px;
|
|
12
13
|
display: flex;
|
|
@@ -15,7 +16,7 @@
|
|
|
15
16
|
gap: 16px;
|
|
16
17
|
}
|
|
17
18
|
|
|
18
|
-
.wui-
|
|
19
|
+
.wui-image-picker-buttons-face {
|
|
19
20
|
position: relative;
|
|
20
21
|
display: grid;
|
|
21
22
|
flex: none;
|
|
@@ -30,29 +31,29 @@
|
|
|
30
31
|
font: inherit;
|
|
31
32
|
cursor: pointer;
|
|
32
33
|
}
|
|
33
|
-
.wui-
|
|
34
|
+
.wui-image-picker-buttons-face:disabled {
|
|
34
35
|
cursor: default;
|
|
35
36
|
}
|
|
36
|
-
.wui-
|
|
37
|
+
.wui-image-picker-buttons-face[aria-busy="true"] {
|
|
37
38
|
cursor: progress;
|
|
38
39
|
}
|
|
39
|
-
.wui-
|
|
40
|
+
.wui-image-picker-buttons-face:focus-visible {
|
|
40
41
|
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
41
42
|
outline-offset: 3px;
|
|
42
43
|
}
|
|
43
44
|
// A file held over the photo: the ring says it can be dropped there.
|
|
44
|
-
.wui-
|
|
45
|
+
.wui-image-picker-buttons.is-dragging .wui-image-picker-buttons-face {
|
|
45
46
|
outline: 2px dashed var(--color-primary);
|
|
46
47
|
outline-offset: 3px;
|
|
47
48
|
}
|
|
48
49
|
|
|
49
|
-
.wui-
|
|
50
|
+
.wui-image-picker-buttons-img {
|
|
50
51
|
width: 100%;
|
|
51
52
|
height: 100%;
|
|
52
53
|
border-radius: 50%;
|
|
53
54
|
object-fit: cover;
|
|
54
55
|
}
|
|
55
|
-
.wui-
|
|
56
|
+
.wui-image-picker-buttons-placeholder {
|
|
56
57
|
display: grid;
|
|
57
58
|
place-items: center;
|
|
58
59
|
font-size: calc(var(--wui-avatar-size) * 0.36);
|
|
@@ -62,7 +63,7 @@
|
|
|
62
63
|
}
|
|
63
64
|
|
|
64
65
|
// The camera mark on the ring's edge, so the photo reads as something you can change.
|
|
65
|
-
.wui-
|
|
66
|
+
.wui-image-picker-buttons-badge {
|
|
66
67
|
position: absolute;
|
|
67
68
|
right: 0;
|
|
68
69
|
bottom: 0;
|
|
@@ -75,41 +76,41 @@
|
|
|
75
76
|
background: var(--color-primary);
|
|
76
77
|
color: var(--color-on-primary);
|
|
77
78
|
}
|
|
78
|
-
.wui-
|
|
79
|
+
.wui-image-picker-buttons-face:disabled:not([aria-busy="true"]) .wui-image-picker-buttons-badge {
|
|
79
80
|
display: none;
|
|
80
81
|
}
|
|
81
82
|
|
|
82
|
-
.wui-
|
|
83
|
+
.wui-image-picker-buttons-actions {
|
|
83
84
|
display: flex;
|
|
84
85
|
flex-wrap: wrap;
|
|
85
86
|
align-items: center;
|
|
86
87
|
gap: 8px;
|
|
87
88
|
}
|
|
88
|
-
.wui-
|
|
89
|
+
.wui-image-picker-buttons-actions .btn {
|
|
89
90
|
display: inline-flex;
|
|
90
91
|
align-items: center;
|
|
91
92
|
gap: 6px;
|
|
92
93
|
}
|
|
93
|
-
.wui-
|
|
94
|
+
.wui-image-picker-buttons-actions [hidden] {
|
|
94
95
|
display: none;
|
|
95
96
|
}
|
|
96
97
|
|
|
97
98
|
// "Take photo" opens the front camera, which only a phone or tablet has: it shows on touch screens.
|
|
98
|
-
.wui-
|
|
99
|
+
.wui-image-picker-buttons-actions .wui-image-picker-buttons-camera {
|
|
99
100
|
display: none;
|
|
100
101
|
}
|
|
101
102
|
@media (pointer: coarse) {
|
|
102
|
-
.wui-
|
|
103
|
+
.wui-image-picker-buttons-actions .wui-image-picker-buttons-camera:not([hidden]) {
|
|
103
104
|
display: inline-flex;
|
|
104
105
|
}
|
|
105
|
-
.wui-
|
|
106
|
+
.wui-image-picker-buttons-actions .btn {
|
|
106
107
|
min-height: 44px;
|
|
107
108
|
}
|
|
108
109
|
}
|
|
109
110
|
|
|
110
111
|
// On a phone the actions sit under the photo, full width, so each is an easy target.
|
|
111
112
|
@media (max-width: 575.98px) {
|
|
112
|
-
.wui-
|
|
113
|
+
.wui-image-picker-buttons {
|
|
113
114
|
flex-direction: column;
|
|
114
115
|
align-items: flex-start;
|
|
115
116
|
}
|
package/scss/wui/_choice.scss
CHANGED
|
@@ -349,7 +349,7 @@
|
|
|
349
349
|
.search-select-lg .search-select-multi {
|
|
350
350
|
height: auto;
|
|
351
351
|
}
|
|
352
|
-
//
|
|
352
|
+
// AppSelect compact is <wui-select compact>: sm sits on the 32px sm rung, lg one rung below the lg
|
|
353
353
|
// field, never under 32px. The compound selector outranks both the plain size rule and the compact rule.
|
|
354
354
|
.search-select-compact.search-select-sm .search-select-control {
|
|
355
355
|
height: var(--wui-control-sm);
|
|
@@ -417,12 +417,11 @@
|
|
|
417
417
|
height: 15px;
|
|
418
418
|
}
|
|
419
419
|
|
|
420
|
-
//
|
|
421
|
-
//
|
|
420
|
+
// AppSelect compact (page size, a range switch, a toolbar picker). It shares every behaviour
|
|
421
|
+
// with the full select and differs only in metrics.
|
|
422
422
|
//
|
|
423
|
-
// <wui-select compact> emitted this class and NOTHING styled it, so
|
|
424
|
-
// byte-identical to a full-size select on both surfaces
|
|
425
|
-
// reach for it when they wanted something compact, and got a full-height control. It was invisible
|
|
423
|
+
// <wui-select compact> emitted this class and NOTHING styled it, so a compact picker rendered
|
|
424
|
+
// byte-identical to a full-size select on both surfaces. It was invisible
|
|
426
425
|
// to every gate because the class check only ever scanned the Razor tag helpers, never the
|
|
427
426
|
// elements package that actually emits it.
|
|
428
427
|
//
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
// Feature-comparison table.
|
|
2
|
+
//
|
|
3
|
+
// Part of the wui-components layer; imported right after _display.scss. Order within the layer is load-bearing (see _wui-components.scss).
|
|
4
|
+
|
|
5
|
+
// ============================================================================
|
|
6
|
+
// Feature-comparison table. The highlighted column is tinted so the reader's eye
|
|
7
|
+
// lands on it without a legend. The root is a size container so the phone stack
|
|
8
|
+
// follows the table's own width, not the viewport.
|
|
9
|
+
// ============================================================================
|
|
10
|
+
.compare-table {
|
|
11
|
+
position: relative;
|
|
12
|
+
container-type: inline-size;
|
|
13
|
+
overflow: clip;
|
|
14
|
+
border: 1px solid var(--color-border);
|
|
15
|
+
border-radius: var(--wui-radius-lg);
|
|
16
|
+
corner-shape: squircle;
|
|
17
|
+
background: var(--color-surface);
|
|
18
|
+
}
|
|
19
|
+
.compare-table table {
|
|
20
|
+
width: 100%;
|
|
21
|
+
border-collapse: collapse;
|
|
22
|
+
}
|
|
23
|
+
.compare-table th,
|
|
24
|
+
.compare-table td {
|
|
25
|
+
padding: var(--wui-space-lg) var(--wui-space-lg);
|
|
26
|
+
text-align: left;
|
|
27
|
+
border-bottom: 1px solid var(--color-border);
|
|
28
|
+
font-size: var(--wui-fs-sm);
|
|
29
|
+
}
|
|
30
|
+
.compare-table tr:last-child td {
|
|
31
|
+
border-bottom: none;
|
|
32
|
+
}
|
|
33
|
+
.compare-table th {
|
|
34
|
+
background: var(--color-bg-subtle);
|
|
35
|
+
font-size: var(--wui-fs-xs);
|
|
36
|
+
font-weight: var(--wui-fw-semibold);
|
|
37
|
+
color: var(--color-text);
|
|
38
|
+
}
|
|
39
|
+
.compare-table th.is-highlight {
|
|
40
|
+
background: var(--color-primary-soft);
|
|
41
|
+
color: var(--color-primary-text);
|
|
42
|
+
}
|
|
43
|
+
.compare-table td.is-highlight {
|
|
44
|
+
background: color-mix(in srgb, var(--color-primary) 4%, var(--color-surface));
|
|
45
|
+
font-weight: var(--wui-fw-medium);
|
|
46
|
+
}
|
|
47
|
+
.compare-table .wui-compare-center {
|
|
48
|
+
text-align: center;
|
|
49
|
+
}
|
|
50
|
+
.compare-table .wui-compare-nowrap {
|
|
51
|
+
white-space: nowrap;
|
|
52
|
+
}
|
|
53
|
+
.compare-table th[scope="row"] {
|
|
54
|
+
font-weight: var(--wui-fw-semibold);
|
|
55
|
+
font-size: var(--wui-fs-sm);
|
|
56
|
+
color: var(--color-text);
|
|
57
|
+
}
|
|
58
|
+
.compare-table .wui-compare-group {
|
|
59
|
+
background: var(--color-bg-subtle);
|
|
60
|
+
color: var(--color-text);
|
|
61
|
+
font-weight: var(--wui-fw-semibold);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// Relaxed density: a 16px body and 32px side padding, for marketing tables that read as prose.
|
|
65
|
+
.compare-table.wui-compare-relaxed th,
|
|
66
|
+
.compare-table.wui-compare-relaxed td {
|
|
67
|
+
padding-inline: var(--wui-space-2xl);
|
|
68
|
+
padding-block: var(--wui-space-lg);
|
|
69
|
+
}
|
|
70
|
+
.compare-table.wui-compare-relaxed td {
|
|
71
|
+
font-size: var(--wui-fs-base);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Sticky header: the header sticks to the viewport because the root clips rather than scrolls.
|
|
75
|
+
.compare-table.wui-compare-sticky-head thead th {
|
|
76
|
+
position: sticky;
|
|
77
|
+
top: var(--wui-compare-table-top, 0);
|
|
78
|
+
z-index: 1;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.compare-yes {
|
|
82
|
+
color: var(--color-success-text);
|
|
83
|
+
}
|
|
84
|
+
.compare-no {
|
|
85
|
+
color: var(--color-text-subtle);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.wui-compare-state {
|
|
89
|
+
display: inline-flex;
|
|
90
|
+
align-items: baseline;
|
|
91
|
+
gap: var(--wui-space-xs);
|
|
92
|
+
}
|
|
93
|
+
.wui-compare-state .wui-icon {
|
|
94
|
+
align-self: center;
|
|
95
|
+
flex: none;
|
|
96
|
+
}
|
|
97
|
+
.wui-compare-state-yes {
|
|
98
|
+
color: var(--color-success-text);
|
|
99
|
+
}
|
|
100
|
+
.wui-compare-state-no {
|
|
101
|
+
color: var(--color-danger-text);
|
|
102
|
+
}
|
|
103
|
+
.wui-compare-state-warn {
|
|
104
|
+
color: var(--color-warning-text);
|
|
105
|
+
}
|
|
106
|
+
.wui-compare-state-partial {
|
|
107
|
+
color: var(--color-text-subtle);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.wui-compare-code {
|
|
111
|
+
font-weight: var(--wui-fw-semibold);
|
|
112
|
+
white-space: nowrap;
|
|
113
|
+
color: var(--color-primary-text);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Phone stack: under 576px of table width each row is a card, its label the title, each cell
|
|
117
|
+
// a "column name: answer" line. The header stays in the DOM, visually hidden, for screen readers.
|
|
118
|
+
@container (max-width: 575px) {
|
|
119
|
+
.compare-table[data-mobile="stack"] thead {
|
|
120
|
+
position: absolute;
|
|
121
|
+
width: 1px;
|
|
122
|
+
height: 1px;
|
|
123
|
+
overflow: hidden;
|
|
124
|
+
clip-path: inset(50%);
|
|
125
|
+
white-space: nowrap;
|
|
126
|
+
}
|
|
127
|
+
.compare-table[data-mobile="stack"] table,
|
|
128
|
+
.compare-table[data-mobile="stack"] tbody,
|
|
129
|
+
.compare-table[data-mobile="stack"] tr {
|
|
130
|
+
display: block;
|
|
131
|
+
width: 100%;
|
|
132
|
+
}
|
|
133
|
+
.compare-table[data-mobile="stack"] tbody > tr {
|
|
134
|
+
margin-block-end: var(--wui-space-md);
|
|
135
|
+
padding: var(--wui-space-md) var(--wui-space-lg);
|
|
136
|
+
border: 1px solid var(--color-border);
|
|
137
|
+
border-radius: var(--wui-radius-lg);
|
|
138
|
+
}
|
|
139
|
+
.compare-table[data-mobile="stack"] tbody > tr.wui-compare-group-row {
|
|
140
|
+
margin-block-end: 0;
|
|
141
|
+
padding: 0;
|
|
142
|
+
border: 0;
|
|
143
|
+
background: none;
|
|
144
|
+
}
|
|
145
|
+
.compare-table[data-mobile="stack"] th,
|
|
146
|
+
.compare-table[data-mobile="stack"] td {
|
|
147
|
+
display: block;
|
|
148
|
+
border: 0;
|
|
149
|
+
}
|
|
150
|
+
.compare-table[data-mobile="stack"] th[scope="row"] {
|
|
151
|
+
padding: 0 0 var(--wui-space-xs);
|
|
152
|
+
font-size: var(--wui-fs-base);
|
|
153
|
+
font-weight: var(--wui-fw-semibold);
|
|
154
|
+
}
|
|
155
|
+
.compare-table[data-mobile="stack"] td {
|
|
156
|
+
display: flex;
|
|
157
|
+
justify-content: space-between;
|
|
158
|
+
align-items: center;
|
|
159
|
+
gap: var(--wui-space-md);
|
|
160
|
+
padding: var(--wui-space-xs) 0;
|
|
161
|
+
text-align: right;
|
|
162
|
+
font-size: var(--wui-fs-sm);
|
|
163
|
+
}
|
|
164
|
+
.compare-table[data-mobile="stack"] td::before {
|
|
165
|
+
content: attr(data-label);
|
|
166
|
+
flex: none;
|
|
167
|
+
font-size: var(--wui-fs-xs);
|
|
168
|
+
font-weight: var(--wui-fw-medium);
|
|
169
|
+
color: var(--color-text-subtle);
|
|
170
|
+
text-align: left;
|
|
171
|
+
}
|
|
172
|
+
.compare-table[data-mobile="stack"] td.is-highlight {
|
|
173
|
+
padding-inline: var(--wui-space-xs);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
// Phone scroll: the table keeps its columns and scrolls sideways in a focusable region.
|
|
178
|
+
.wui-compare-scroll {
|
|
179
|
+
overflow-x: auto;
|
|
180
|
+
overscroll-behavior-x: contain;
|
|
181
|
+
}
|
|
182
|
+
.wui-compare-scroll:focus-visible {
|
|
183
|
+
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
184
|
+
outline-offset: var(--wui-focus-ring-inset);
|
|
185
|
+
}
|
|
186
|
+
.wui-compare-scroll[data-more="end"] {
|
|
187
|
+
mask-image: linear-gradient(to right, black calc(100% - var(--wui-space-2xl)), transparent);
|
|
188
|
+
}
|
|
189
|
+
.compare-table table.wui-compare-scroll-table {
|
|
190
|
+
min-width: 36rem;
|
|
191
|
+
}
|
|
192
|
+
.compare-table table.wui-compare-sticky-first th:first-child,
|
|
193
|
+
.compare-table table.wui-compare-sticky-first td:first-child {
|
|
194
|
+
position: sticky;
|
|
195
|
+
left: 0;
|
|
196
|
+
z-index: 1;
|
|
197
|
+
border-right: 1px solid var(--color-border);
|
|
198
|
+
}
|
|
199
|
+
.compare-table table.wui-compare-sticky-first td:first-child {
|
|
200
|
+
background: var(--color-surface);
|
|
201
|
+
}
|
package/scss/wui/_controls.scss
CHANGED
|
@@ -1306,7 +1306,7 @@ wui-date-range {
|
|
|
1306
1306
|
display: block;
|
|
1307
1307
|
width: 100%;
|
|
1308
1308
|
}
|
|
1309
|
-
//
|
|
1309
|
+
// AppSelect compact renders <wui-select compact> — a page-size / range picker that is
|
|
1310
1310
|
// deliberately narrow and does NOT belong to a .field. It has to opt out of the width
|
|
1311
1311
|
// above, or every toolbar picker stretches across its toolbar.
|
|
1312
1312
|
wui-select[compact] {
|