@webority/theme 0.121.0 → 0.124.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/postcss/forced-states.mjs +1 -1
- package/dist/published-theme.json +7 -7
- package/dist/purge-safelist.json +19 -0
- package/dist/webority-theme.css +1 -1
- package/package.json +2 -2
- package/scss/_bootstrap.generated.scss +1 -1
- package/scss/_tokens.generated.scss +55 -24
- package/scss/wui/_chat.scss +65 -0
- package/scss/wui/_controls.scss +64 -0
- package/scss/wui/_data.scss +25 -3
- package/scss/wui/_display.scss +5 -1
- package/scss/wui/_file-viewer.scss +1 -0
- package/scss/wui/_markdown.scss +6 -0
- package/scss/wui/_navigation-menu.scss +3 -1
- package/scss/wui/_overlays.scss +6 -4
- package/scss/wui/_sections.scss +10 -0
- package/scss/wui/_shell-parts.scss +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webority/theme",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.124.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": {
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"postcss": "^8.5.31"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@webority/tokens": "0.
|
|
50
|
+
"@webority/tokens": "0.124.0",
|
|
51
51
|
"bootstrap": "5.3.3",
|
|
52
52
|
"country-flag-icons": "^1.6.20",
|
|
53
53
|
"sass-embedded": "^1.97.0",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Generated by @webority/tokens 0.
|
|
1
|
+
// Generated by @webority/tokens 0.124.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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Generated by @webority/tokens 0.
|
|
1
|
+
// Generated by @webority/tokens 0.124.0 from its token source. Do not edit; run webority brand --library.
|
|
2
2
|
|
|
3
3
|
:root {
|
|
4
4
|
--wui-primary: #4F46E5;
|
|
@@ -360,6 +360,13 @@
|
|
|
360
360
|
--wui-surface-mute: var(--wui-dark-bg-muted);
|
|
361
361
|
--wui-neutral-bg-dark: var(--wui-dark-bg-muted);
|
|
362
362
|
--wui-neutral-bg-light: var(--wui-dark-bg-surface);
|
|
363
|
+
--wui-info-10: color-mix(in srgb, var(--wui-info) 16%, var(--wui-dark-bg-surface));
|
|
364
|
+
--wui-info-5: color-mix(in srgb, var(--wui-info) 10%, var(--wui-dark-bg-surface));
|
|
365
|
+
--wui-success-10: color-mix(in srgb, var(--wui-success) 16%, var(--wui-dark-bg-surface));
|
|
366
|
+
--wui-success-5: color-mix(in srgb, var(--wui-success) 10%, var(--wui-dark-bg-surface));
|
|
367
|
+
--wui-warning-10: color-mix(in srgb, var(--wui-warning) 16%, var(--wui-dark-bg-surface));
|
|
368
|
+
--wui-warning-5: color-mix(in srgb, var(--wui-warning) 10%, var(--wui-dark-bg-surface));
|
|
369
|
+
--wui-danger-10: color-mix(in srgb, var(--wui-danger) 16%, var(--wui-dark-bg-surface));
|
|
363
370
|
--wui-danger-5: color-mix(in srgb, var(--wui-danger) 10%, var(--wui-dark-bg-surface));
|
|
364
371
|
--wui-chart-1: var(--wui-dark-primary);
|
|
365
372
|
--wui-chart-2: var(--wui-dark-chart-2);
|
|
@@ -380,6 +387,8 @@
|
|
|
380
387
|
--wui-chart-diverging-mid: var(--wui-dark-chart-diverging-mid);
|
|
381
388
|
--wui-chart-diverging-high: var(--wui-dark-chart-diverging-high);
|
|
382
389
|
--wui-chart-neutral: var(--wui-dark-chart-neutral);
|
|
390
|
+
--wui-shadow-popover: 0px 8px 28px -6px rgba(0, 0, 0, 0.55);
|
|
391
|
+
--wui-shadow-modal: 0px 24px 60px -16px rgba(0, 0, 0, 0.7);
|
|
383
392
|
--color-bg: var(--wui-dark-bg-page);
|
|
384
393
|
--color-bg-subtle: var(--wui-dark-bg-elevated);
|
|
385
394
|
--color-bg-muted: var(--wui-dark-bg-muted);
|
|
@@ -475,6 +484,7 @@
|
|
|
475
484
|
--bs-emphasis-color: var(--color-text);
|
|
476
485
|
--bs-secondary-color: var(--color-text-muted);
|
|
477
486
|
--bs-tertiary-color: var(--color-text-subtle);
|
|
487
|
+
--bs-heading-color: var(--color-text);
|
|
478
488
|
--bs-body-bg: var(--color-bg);
|
|
479
489
|
--bs-border-color: var(--color-border);
|
|
480
490
|
--bs-secondary-bg: var(--color-surface);
|
|
@@ -505,6 +515,13 @@
|
|
|
505
515
|
--wui-surface-mute: var(--wui-dark-bg-muted);
|
|
506
516
|
--wui-neutral-bg-dark: var(--wui-dark-bg-muted);
|
|
507
517
|
--wui-neutral-bg-light: var(--wui-dark-bg-surface);
|
|
518
|
+
--wui-info-10: color-mix(in srgb, var(--wui-info) 16%, var(--wui-dark-bg-surface));
|
|
519
|
+
--wui-info-5: color-mix(in srgb, var(--wui-info) 10%, var(--wui-dark-bg-surface));
|
|
520
|
+
--wui-success-10: color-mix(in srgb, var(--wui-success) 16%, var(--wui-dark-bg-surface));
|
|
521
|
+
--wui-success-5: color-mix(in srgb, var(--wui-success) 10%, var(--wui-dark-bg-surface));
|
|
522
|
+
--wui-warning-10: color-mix(in srgb, var(--wui-warning) 16%, var(--wui-dark-bg-surface));
|
|
523
|
+
--wui-warning-5: color-mix(in srgb, var(--wui-warning) 10%, var(--wui-dark-bg-surface));
|
|
524
|
+
--wui-danger-10: color-mix(in srgb, var(--wui-danger) 16%, var(--wui-dark-bg-surface));
|
|
508
525
|
--wui-danger-5: color-mix(in srgb, var(--wui-danger) 10%, var(--wui-dark-bg-surface));
|
|
509
526
|
--wui-chart-1: var(--wui-dark-primary);
|
|
510
527
|
--wui-chart-2: var(--wui-dark-chart-2);
|
|
@@ -525,6 +542,8 @@
|
|
|
525
542
|
--wui-chart-diverging-mid: var(--wui-dark-chart-diverging-mid);
|
|
526
543
|
--wui-chart-diverging-high: var(--wui-dark-chart-diverging-high);
|
|
527
544
|
--wui-chart-neutral: var(--wui-dark-chart-neutral);
|
|
545
|
+
--wui-shadow-popover: 0px 8px 28px -6px rgba(0, 0, 0, 0.55);
|
|
546
|
+
--wui-shadow-modal: 0px 24px 60px -16px rgba(0, 0, 0, 0.7);
|
|
528
547
|
--color-bg: var(--wui-dark-bg-page);
|
|
529
548
|
--color-bg-subtle: var(--wui-dark-bg-elevated);
|
|
530
549
|
--color-bg-muted: var(--wui-dark-bg-muted);
|
|
@@ -620,6 +639,7 @@
|
|
|
620
639
|
--bs-emphasis-color: var(--color-text);
|
|
621
640
|
--bs-secondary-color: var(--color-text-muted);
|
|
622
641
|
--bs-tertiary-color: var(--color-text-subtle);
|
|
642
|
+
--bs-heading-color: var(--color-text);
|
|
623
643
|
--bs-body-bg: var(--color-bg);
|
|
624
644
|
--bs-border-color: var(--color-border);
|
|
625
645
|
--bs-secondary-bg: var(--color-surface);
|
|
@@ -645,29 +665,30 @@
|
|
|
645
665
|
|
|
646
666
|
$wui-dark-layer-names: (
|
|
647
667
|
wui-primary-50, wui-primary-30, wui-primary-20, wui-primary-15, wui-primary-10, wui-primary-5,
|
|
648
|
-
wui-surface-soft, wui-surface-violet-soft, wui-surface-mute, wui-neutral-bg-dark, wui-neutral-bg-light, wui-
|
|
649
|
-
wui-
|
|
650
|
-
wui-
|
|
651
|
-
wui-chart-
|
|
652
|
-
wui-chart-
|
|
653
|
-
|
|
654
|
-
color-
|
|
655
|
-
color-
|
|
656
|
-
color-
|
|
657
|
-
color-
|
|
658
|
-
color-
|
|
659
|
-
color-
|
|
660
|
-
color-
|
|
661
|
-
color-
|
|
662
|
-
color-
|
|
663
|
-
color-
|
|
664
|
-
color-
|
|
665
|
-
color-
|
|
666
|
-
color-chart-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
bs-
|
|
670
|
-
bs-tertiary-bg-rgb, bs-
|
|
668
|
+
wui-surface-soft, wui-surface-violet-soft, wui-surface-mute, wui-neutral-bg-dark, wui-neutral-bg-light, wui-info-10,
|
|
669
|
+
wui-info-5, wui-success-10, wui-success-5, wui-warning-10, wui-warning-5, wui-danger-10,
|
|
670
|
+
wui-danger-5, wui-chart-1, wui-chart-2, wui-chart-3, wui-chart-4, wui-chart-5,
|
|
671
|
+
wui-chart-6, wui-chart-7, wui-chart-8, wui-chart-seq-0, wui-chart-seq-1, wui-chart-seq-2,
|
|
672
|
+
wui-chart-seq-3, wui-chart-seq-4, wui-chart-seq-5, wui-chart-seq-6, wui-chart-diverging-low, wui-chart-diverging-mid,
|
|
673
|
+
wui-chart-diverging-high, wui-chart-neutral, wui-shadow-popover, wui-shadow-modal, color-bg, color-bg-subtle,
|
|
674
|
+
color-bg-muted, color-surface, color-surface-inverse, color-text, color-text-body, color-text-muted,
|
|
675
|
+
color-text-subtle, color-text-inverse, color-link, color-border, color-border-subtle, color-border-strong,
|
|
676
|
+
color-field-bg, color-field-border, color-field-border-hover, color-field-border-focus, color-scrim, color-scrim-strong,
|
|
677
|
+
color-progress-track, color-progress-label, color-thumb, color-scrollbar, color-scrollbar-hover, color-scrollbar-active,
|
|
678
|
+
color-primary, color-primary-hover, color-primary-soft, color-primary-text, color-on-primary, color-success,
|
|
679
|
+
color-success-pressed, color-success-soft, color-success-border, color-success-text, color-success-text-on-soft, color-success-strong,
|
|
680
|
+
color-on-success, color-on-success-strong, color-warning, color-warning-pressed, color-warning-soft, color-warning-border,
|
|
681
|
+
color-warning-text, color-warning-text-on-soft, color-warning-strong, color-warning-strong-hover, color-on-warning, color-on-warning-strong,
|
|
682
|
+
color-danger, color-danger-pressed, color-danger-soft, color-danger-border, color-danger-text, color-danger-text-on-soft,
|
|
683
|
+
color-danger-strong, color-danger-strong-hover, color-on-danger, color-on-danger-strong, color-info, color-info-pressed,
|
|
684
|
+
color-info-soft, color-info-border, color-info-text, color-info-text-on-soft, color-info-strong, color-on-info,
|
|
685
|
+
color-on-info-strong, color-chart-1, color-chart-2, color-chart-3, color-chart-4, color-chart-5,
|
|
686
|
+
color-chart-6, color-chart-7, color-chart-8, color-chart-seq-0, color-chart-seq-1, color-chart-seq-2,
|
|
687
|
+
color-chart-seq-3, color-chart-seq-4, color-chart-seq-5, color-chart-seq-6, color-chart-diverging-low, color-chart-diverging-mid,
|
|
688
|
+
color-chart-diverging-high, color-chart-neutral, wui-close-filter, wui-thumb-shadow, wui-thumb-shadow-hover, bs-body-color,
|
|
689
|
+
bs-emphasis-color, bs-secondary-color, bs-tertiary-color, bs-heading-color, bs-body-bg, bs-border-color,
|
|
690
|
+
bs-secondary-bg, bs-tertiary-bg, bs-primary, bs-body-bg-rgb, bs-primary-rgb, bs-body-color-rgb,
|
|
691
|
+
bs-emphasis-color-rgb, bs-secondary-color-rgb, bs-tertiary-color-rgb, bs-secondary-bg-rgb, bs-tertiary-bg-rgb, bs-border-color-rgb
|
|
671
692
|
);
|
|
672
693
|
|
|
673
694
|
// var() resolves where a name is declared, so the html copies keep the light values for a light box.
|
|
@@ -708,6 +729,13 @@ html {
|
|
|
708
729
|
--wui-surface-mute: var(--wui-dark-bg-muted);
|
|
709
730
|
--wui-neutral-bg-dark: var(--wui-dark-bg-muted);
|
|
710
731
|
--wui-neutral-bg-light: var(--wui-dark-bg-surface);
|
|
732
|
+
--wui-info-10: color-mix(in srgb, var(--wui-info) 16%, var(--wui-dark-bg-surface));
|
|
733
|
+
--wui-info-5: color-mix(in srgb, var(--wui-info) 10%, var(--wui-dark-bg-surface));
|
|
734
|
+
--wui-success-10: color-mix(in srgb, var(--wui-success) 16%, var(--wui-dark-bg-surface));
|
|
735
|
+
--wui-success-5: color-mix(in srgb, var(--wui-success) 10%, var(--wui-dark-bg-surface));
|
|
736
|
+
--wui-warning-10: color-mix(in srgb, var(--wui-warning) 16%, var(--wui-dark-bg-surface));
|
|
737
|
+
--wui-warning-5: color-mix(in srgb, var(--wui-warning) 10%, var(--wui-dark-bg-surface));
|
|
738
|
+
--wui-danger-10: color-mix(in srgb, var(--wui-danger) 16%, var(--wui-dark-bg-surface));
|
|
711
739
|
--wui-danger-5: color-mix(in srgb, var(--wui-danger) 10%, var(--wui-dark-bg-surface));
|
|
712
740
|
--wui-chart-1: var(--wui-dark-primary);
|
|
713
741
|
--wui-chart-2: var(--wui-dark-chart-2);
|
|
@@ -728,6 +756,8 @@ html {
|
|
|
728
756
|
--wui-chart-diverging-mid: var(--wui-dark-chart-diverging-mid);
|
|
729
757
|
--wui-chart-diverging-high: var(--wui-dark-chart-diverging-high);
|
|
730
758
|
--wui-chart-neutral: var(--wui-dark-chart-neutral);
|
|
759
|
+
--wui-shadow-popover: 0px 8px 28px -6px rgba(0, 0, 0, 0.55);
|
|
760
|
+
--wui-shadow-modal: 0px 24px 60px -16px rgba(0, 0, 0, 0.7);
|
|
731
761
|
--color-bg: var(--wui-dark-bg-page);
|
|
732
762
|
--color-bg-subtle: var(--wui-dark-bg-elevated);
|
|
733
763
|
--color-bg-muted: var(--wui-dark-bg-muted);
|
|
@@ -823,6 +853,7 @@ html {
|
|
|
823
853
|
--bs-emphasis-color: var(--color-text);
|
|
824
854
|
--bs-secondary-color: var(--color-text-muted);
|
|
825
855
|
--bs-tertiary-color: var(--color-text-subtle);
|
|
856
|
+
--bs-heading-color: var(--color-text);
|
|
826
857
|
--bs-body-bg: var(--color-bg);
|
|
827
858
|
--bs-border-color: var(--color-border);
|
|
828
859
|
--bs-secondary-bg: var(--color-surface);
|
package/scss/wui/_chat.scss
CHANGED
|
@@ -89,3 +89,68 @@ wui-chat[position="start"] .wui-chat-panel {
|
|
|
89
89
|
.wui-chat-composer .wui-field-message:empty {
|
|
90
90
|
display: none;
|
|
91
91
|
}
|
|
92
|
+
|
|
93
|
+
// Attachments wrap onto new rows as the composer or a sent question grows.
|
|
94
|
+
.wui-chat-attachments {
|
|
95
|
+
display: flex;
|
|
96
|
+
flex-wrap: wrap;
|
|
97
|
+
gap: var(--wui-space-xs);
|
|
98
|
+
}
|
|
99
|
+
.wui-chat-question-attachments {
|
|
100
|
+
display: flex;
|
|
101
|
+
flex-wrap: wrap;
|
|
102
|
+
justify-content: flex-end;
|
|
103
|
+
gap: var(--wui-space-xs);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// The banner that says a question is being edited, with its cancel control beside the text.
|
|
107
|
+
.wui-chat-editing {
|
|
108
|
+
display: flex;
|
|
109
|
+
align-items: center;
|
|
110
|
+
gap: var(--wui-space-sm);
|
|
111
|
+
padding: var(--wui-space-sm) var(--wui-space-md);
|
|
112
|
+
background: var(--color-bg-muted);
|
|
113
|
+
border-radius: var(--wui-radius-md);
|
|
114
|
+
color: var(--color-text-muted);
|
|
115
|
+
font-size: var(--wui-fs-sm);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Copy, edit, retry and the other actions under an answer; they wrap rather than overflow the panel.
|
|
119
|
+
.wui-chat-turn-actions {
|
|
120
|
+
display: flex;
|
|
121
|
+
flex-wrap: wrap;
|
|
122
|
+
gap: var(--wui-space-xs);
|
|
123
|
+
margin-block-start: var(--wui-space-xs);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// Suggested follow-up questions under an answer, as wrapping chips.
|
|
127
|
+
.wui-chat-suggestions {
|
|
128
|
+
display: flex;
|
|
129
|
+
flex-wrap: wrap;
|
|
130
|
+
gap: var(--wui-space-xs);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// Past chats: a scrolling list in the body's padding, one row per chat.
|
|
134
|
+
.wui-chat-past {
|
|
135
|
+
display: flex;
|
|
136
|
+
flex-direction: column;
|
|
137
|
+
flex: 1 1 auto;
|
|
138
|
+
min-height: 0;
|
|
139
|
+
gap: var(--wui-space-xs);
|
|
140
|
+
padding: var(--wui-space-lg);
|
|
141
|
+
overflow: auto;
|
|
142
|
+
}
|
|
143
|
+
// min-width 0 lets the title inside the row shrink and truncate instead of pushing the row wider.
|
|
144
|
+
.wui-chat-past-row {
|
|
145
|
+
display: flex;
|
|
146
|
+
align-items: center;
|
|
147
|
+
gap: var(--wui-space-sm);
|
|
148
|
+
min-width: 0;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Bootstrap's d-flex is !important, so hidden needs its own rule.
|
|
152
|
+
.wui-chat-foot[hidden],
|
|
153
|
+
.wui-chat-past[hidden],
|
|
154
|
+
.wui-chat-suggestions[hidden] {
|
|
155
|
+
display: none !important;
|
|
156
|
+
}
|
package/scss/wui/_controls.scss
CHANGED
|
@@ -255,6 +255,10 @@
|
|
|
255
255
|
box-shadow: none;
|
|
256
256
|
filter: none;
|
|
257
257
|
}
|
|
258
|
+
// Bootstrap paints a mouse-focused box's border in its compiled indigo; the switch keeps its own transparent track.
|
|
259
|
+
.form-check-input:focus:not(:focus-visible):not(:checked):not([type="checkbox"]:indeterminate):not(.form-switch .form-check-input) {
|
|
260
|
+
border-color: color-mix(in srgb, var(--color-primary) 50%, transparent);
|
|
261
|
+
}
|
|
258
262
|
.form-check-input:checked,
|
|
259
263
|
.wui-check:checked,
|
|
260
264
|
.wui-radio:checked {
|
|
@@ -372,6 +376,50 @@
|
|
|
372
376
|
border-radius: 50%;
|
|
373
377
|
corner-shape: round;
|
|
374
378
|
}
|
|
379
|
+
|
|
380
|
+
// Table-row switch (<app-row-switch>, AppRowSwitch): a button, not an input, so a row can post it.
|
|
381
|
+
// Same track, knob, colours and focus ring as the form switch above.
|
|
382
|
+
.wui-row-switch {
|
|
383
|
+
display: inline-flex;
|
|
384
|
+
align-items: center;
|
|
385
|
+
padding: 0;
|
|
386
|
+
border: 0;
|
|
387
|
+
background: none;
|
|
388
|
+
border-radius: var(--wui-radius-pill);
|
|
389
|
+
cursor: pointer;
|
|
390
|
+
}
|
|
391
|
+
.wui-row-switch:focus-visible {
|
|
392
|
+
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
393
|
+
outline-offset: var(--wui-focus-ring-offset);
|
|
394
|
+
}
|
|
395
|
+
.wui-row-switch__track {
|
|
396
|
+
position: relative;
|
|
397
|
+
display: block;
|
|
398
|
+
width: 40px;
|
|
399
|
+
height: 22px;
|
|
400
|
+
border-radius: var(--wui-radius-pill);
|
|
401
|
+
background-color: var(--color-border-strong);
|
|
402
|
+
}
|
|
403
|
+
.wui-row-switch__thumb {
|
|
404
|
+
position: absolute;
|
|
405
|
+
top: 2px;
|
|
406
|
+
left: 2px;
|
|
407
|
+
width: 18px;
|
|
408
|
+
height: 18px;
|
|
409
|
+
border-radius: 50%;
|
|
410
|
+
background-color: var(--color-surface);
|
|
411
|
+
}
|
|
412
|
+
.wui-row-switch[aria-checked="true"] .wui-row-switch__track {
|
|
413
|
+
background-color: var(--color-primary);
|
|
414
|
+
}
|
|
415
|
+
.wui-row-switch[aria-checked="true"] .wui-row-switch__thumb {
|
|
416
|
+
transform: translateX(18px);
|
|
417
|
+
}
|
|
418
|
+
.wui-row-switch:disabled,
|
|
419
|
+
.wui-row-switch[aria-busy="true"] {
|
|
420
|
+
opacity: var(--wui-disabled-opacity);
|
|
421
|
+
cursor: not-allowed;
|
|
422
|
+
}
|
|
375
423
|
@media (prefers-reduced-motion: reduce) {
|
|
376
424
|
.form-check-input,
|
|
377
425
|
.wui-check,
|
|
@@ -1335,6 +1383,22 @@ wui-select[compact] {
|
|
|
1335
1383
|
.field > .wui-score-scale {
|
|
1336
1384
|
align-self: stretch;
|
|
1337
1385
|
}
|
|
1386
|
+
// A chosen value's photo or initials sits at the control's start edge, and the start padding makes
|
|
1387
|
+
// room for it: the avatar's own width plus the control's gap. The width is .avatar-xs's fixed size,
|
|
1388
|
+
// a layout constant with no token. Logical properties, so the start edge follows the reading direction.
|
|
1389
|
+
.search-select-control.wui-has-value-avatar {
|
|
1390
|
+
--wui-search-select-value-avatar-size: 20px;
|
|
1391
|
+
position: relative;
|
|
1392
|
+
padding-inline-start: calc(var(--wui-space-md) + var(--wui-search-select-value-avatar-size) + var(--wui-space-sm));
|
|
1393
|
+
}
|
|
1394
|
+
.search-select-control.wui-has-value-avatar > .wui-search-select-value-avatar {
|
|
1395
|
+
position: absolute;
|
|
1396
|
+
inset-inline-start: var(--wui-space-md);
|
|
1397
|
+
top: 50%;
|
|
1398
|
+
transform: translateY(-50%);
|
|
1399
|
+
display: inline-flex;
|
|
1400
|
+
pointer-events: none;
|
|
1401
|
+
}
|
|
1338
1402
|
// A file picker fills its column by default (align-self:stretch fills the field on the cross
|
|
1339
1403
|
// axis, but the field itself collapses to its content when it is a flex item — the showcase
|
|
1340
1404
|
// lays fields out in a flex row — so stretch the field to its container first). Override per
|
package/scss/wui/_data.scss
CHANGED
|
@@ -210,6 +210,14 @@
|
|
|
210
210
|
.table-ledger tbody td:last-child {
|
|
211
211
|
padding-right: 20px;
|
|
212
212
|
}
|
|
213
|
+
// A loading bar follows its column's alignment: a block bar ignores text-align, so auto margins place it.
|
|
214
|
+
.table-ledger td.text-center > .skeleton {
|
|
215
|
+
margin-inline: auto;
|
|
216
|
+
}
|
|
217
|
+
.table-ledger td.wui-cell-end > .skeleton,
|
|
218
|
+
.table-ledger td.num > .skeleton {
|
|
219
|
+
margin-inline-start: auto;
|
|
220
|
+
}
|
|
213
221
|
.table-ledger tbody tr:last-child td {
|
|
214
222
|
border-bottom: none;
|
|
215
223
|
}
|
|
@@ -758,8 +766,9 @@
|
|
|
758
766
|
}
|
|
759
767
|
.table-ledger.wui-table-stack > tbody > tr > td {
|
|
760
768
|
min-width: 0;
|
|
761
|
-
max-width:
|
|
762
|
-
|
|
769
|
+
max-width: none;
|
|
770
|
+
white-space: normal;
|
|
771
|
+
overflow-wrap: break-word;
|
|
763
772
|
}
|
|
764
773
|
.table-ledger.wui-table-stack,
|
|
765
774
|
.table-ledger.wui-table-stack > tbody,
|
|
@@ -817,7 +826,7 @@
|
|
|
817
826
|
// its edge (a long email under an avatar did).
|
|
818
827
|
.table-ledger.wui-table-stack > * > tr > td > * {
|
|
819
828
|
min-width: 0;
|
|
820
|
-
overflow-wrap:
|
|
829
|
+
overflow-wrap: break-word;
|
|
821
830
|
}
|
|
822
831
|
.table-ledger.wui-table-stack > tbody > tr > td .u-meta {
|
|
823
832
|
align-items: flex-end;
|
|
@@ -840,6 +849,9 @@
|
|
|
840
849
|
.table-ledger.wui-table-stack .u-name {
|
|
841
850
|
display: block;
|
|
842
851
|
overflow: visible;
|
|
852
|
+
-webkit-line-clamp: none;
|
|
853
|
+
line-clamp: none;
|
|
854
|
+
overflow-wrap: break-word;
|
|
843
855
|
}
|
|
844
856
|
// A group header is a section label between the cards, not a card of its own.
|
|
845
857
|
.table-ledger.wui-table-stack > tbody > tr.wui-group-row {
|
|
@@ -925,6 +937,12 @@
|
|
|
925
937
|
.table-wrap.wui-table-scroll:has(> .table-ledger) {
|
|
926
938
|
padding-top: 0;
|
|
927
939
|
}
|
|
940
|
+
// A scrolling table that opens its card needs its spacing outside the scroll box: padding here
|
|
941
|
+
// would show scrolled rows above the sticky header. The card is a flex column, so the margin
|
|
942
|
+
// does not collapse out of it.
|
|
943
|
+
.card > .table-wrap.wui-table-scroll:has(> .table-ledger):first-child {
|
|
944
|
+
margin-top: var(--wui-card-pad);
|
|
945
|
+
}
|
|
928
946
|
|
|
929
947
|
// Pinned first column (`stickyFirstColumn`): the identity column, and the select/expand columns the
|
|
930
948
|
// library puts before it, hold their place while a wide table scrolls sideways. The identity column
|
|
@@ -981,6 +999,10 @@
|
|
|
981
999
|
.table-ledger > :is(tbody, tfoot) > tr:not(.wui-row-expanded, .wui-group-row) > :is(.wui-pin-start, .wui-pin-end):has([aria-expanded="true"], .dropdown-menu.show) {
|
|
982
1000
|
z-index: 4;
|
|
983
1001
|
}
|
|
1002
|
+
// A group header holds its own open collapse toggle, so the rule above would lift it over the menu of the row above it. It stays below an open menu.
|
|
1003
|
+
.table-ledger > tbody > tr.wui-group-row > th.wui-group-cell:last-child:has([aria-expanded="true"]) {
|
|
1004
|
+
z-index: 1;
|
|
1005
|
+
}
|
|
984
1006
|
// The wrap's padding is inside its scroll box, so a pinned cell stops one padding short of the
|
|
985
1007
|
// scroller's edge and scrolled cells show in the strip beyond it. While content runs past that
|
|
986
1008
|
// edge, the outermost pinned cell paints the strip. Its width is the wrap's measured padding
|
package/scss/wui/_display.scss
CHANGED
|
@@ -1492,7 +1492,11 @@ button.wui-link {
|
|
|
1492
1492
|
.wui-link__label {
|
|
1493
1493
|
position: relative;
|
|
1494
1494
|
z-index: 0;
|
|
1495
|
-
white-space: nowrap;
|
|
1495
|
+
white-space: var(--wui-link-label-white-space, nowrap);
|
|
1496
|
+
}
|
|
1497
|
+
// A link in a table cell may wrap: a nowrap label runs under the pinned actions column.
|
|
1498
|
+
.table-ledger td .wui-link__label {
|
|
1499
|
+
--wui-link-label-white-space: normal;
|
|
1496
1500
|
}
|
|
1497
1501
|
.wui-link__ic {
|
|
1498
1502
|
display: inline-flex;
|
|
@@ -260,6 +260,7 @@ wui-file-viewer:fullscreen {
|
|
|
260
260
|
flex: 1 1 auto;
|
|
261
261
|
overflow: auto;
|
|
262
262
|
min-width: 0;
|
|
263
|
+
background: var(--wui-file-viewer-scroll-bg, transparent);
|
|
263
264
|
// The pages fit the width; a scrollbar appearing must not change that width and set off a
|
|
264
265
|
// second fit.
|
|
265
266
|
scrollbar-gutter: stable;
|
package/scss/wui/_markdown.scss
CHANGED
|
@@ -88,3 +88,9 @@
|
|
|
88
88
|
.wui-markdown .table th {
|
|
89
89
|
font-weight: 600;
|
|
90
90
|
}
|
|
91
|
+
// A citation chip sits inside a line of text, so it takes the line's baseline.
|
|
92
|
+
.wui-markdown-citation {
|
|
93
|
+
display: inline-flex;
|
|
94
|
+
vertical-align: baseline;
|
|
95
|
+
margin-inline: var(--wui-space-xxs);
|
|
96
|
+
}
|
|
@@ -33,7 +33,7 @@ wui-navigation-menu {
|
|
|
33
33
|
padding: 8px 12px;
|
|
34
34
|
border: 0;
|
|
35
35
|
border-radius: var(--wui-radius-sm);
|
|
36
|
-
background: transparent;
|
|
36
|
+
background: var(--wui-nav-menu-item-bg, transparent);
|
|
37
37
|
color: var(--color-text);
|
|
38
38
|
font: inherit;
|
|
39
39
|
font-size: 14px;
|
|
@@ -54,6 +54,8 @@ wui-navigation-menu {
|
|
|
54
54
|
outline-offset: 1px;
|
|
55
55
|
}
|
|
56
56
|
&[aria-current="page"] {
|
|
57
|
+
// Set through the item variable, not background, so the hover fill above still wins.
|
|
58
|
+
--wui-nav-menu-item-bg: var(--wui-nav-menu-current-bg, transparent);
|
|
57
59
|
color: var(--color-primary-text);
|
|
58
60
|
}
|
|
59
61
|
}
|
package/scss/wui/_overlays.scss
CHANGED
|
@@ -173,8 +173,10 @@
|
|
|
173
173
|
// Break long unbroken names so they wrap within the heading instead of
|
|
174
174
|
// running under the close button.
|
|
175
175
|
.wui-modal-title {
|
|
176
|
-
font-
|
|
177
|
-
font-
|
|
176
|
+
font-family: var(--wui-modal-title-font-family, inherit);
|
|
177
|
+
font-size: var(--wui-modal-title-font-size, 17px);
|
|
178
|
+
font-weight: var(--wui-modal-title-font-weight, 600);
|
|
179
|
+
line-height: var(--wui-modal-title-line-height, inherit);
|
|
178
180
|
color: var(--color-text);
|
|
179
181
|
overflow-wrap: anywhere;
|
|
180
182
|
}
|
|
@@ -425,11 +427,11 @@
|
|
|
425
427
|
flex-direction: column;
|
|
426
428
|
align-items: center;
|
|
427
429
|
text-align: center;
|
|
428
|
-
padding: 16px 12px 6px;
|
|
430
|
+
padding: 16px 12px var(--wui-confirm-content-padding-bottom, 6px);
|
|
429
431
|
}
|
|
430
432
|
.wui-confirm-icon {
|
|
431
433
|
line-height: 0;
|
|
432
|
-
margin-bottom: 22px;
|
|
434
|
+
margin-bottom: var(--wui-confirm-icon-gap, 22px);
|
|
433
435
|
}
|
|
434
436
|
// A caller-supplied illustration occupies the SAME footprint as the built-in badge, whatever
|
|
435
437
|
// the source file measures — the box is the theme's, the artwork is the caller's. Without
|
package/scss/wui/_sections.scss
CHANGED
|
@@ -262,6 +262,16 @@
|
|
|
262
262
|
filter: none;
|
|
263
263
|
opacity: 1;
|
|
264
264
|
}
|
|
265
|
+
// Dark pages: a dark mark turns light, and the hover and focus reveal keeps that inversion.
|
|
266
|
+
:root[data-theme="dark"] .wui-section-logo-img {
|
|
267
|
+
filter: grayscale(1) invert(1);
|
|
268
|
+
opacity: 0.8;
|
|
269
|
+
}
|
|
270
|
+
:root[data-theme="dark"] .wui-section-logo-img:hover,
|
|
271
|
+
:root[data-theme="dark"] .wui-section-logo a:focus-visible .wui-section-logo-img {
|
|
272
|
+
filter: grayscale(1) invert(1);
|
|
273
|
+
opacity: 1;
|
|
274
|
+
}
|
|
265
275
|
.wui-section-logo-text {
|
|
266
276
|
font-family: inherit;
|
|
267
277
|
font-weight: 600;
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// Phone floor: every control here is at least 44px tall below 768px, and nothing that opens is
|
|
9
9
|
// wider than the viewport less 24px.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
:root {
|
|
12
12
|
// One height the tab bar, the content's bottom padding and the footer's offset agree on.
|
|
13
13
|
--wui-tabbar-h: 60px;
|
|
14
14
|
}
|