@undrr/undrr-mangrove 2.2.0 → 2.4.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 +1 -1
- package/components/BookCard.js +5 -2
- package/components/Breadcrumbs.js +2 -2
- package/components/Checkbox.js +3 -2
- package/components/Chips.js +2 -2
- package/components/ContentCard.js +8 -2
- package/components/ContentTeaser.js +8 -2
- package/components/CopyButton.js +3 -2
- package/components/CtaButton.js +3 -2
- package/components/Drawer.js +2 -2
- package/components/Drawer.js.LICENSE.txt +1 -1
- package/components/DrupalContentPatterns.js +1 -1
- package/components/EmbedContainer.js +3 -2
- package/components/Footer.js +2 -2
- package/components/FormAction.js +3 -2
- package/components/FormErrorSummary.js +2 -2
- package/components/FormGroup.js +3 -2
- package/components/FullWidth.js +3 -2
- package/components/Gallery.js +3 -2
- package/components/Hero.js +6 -2
- package/components/HighlightBox.js +3 -2
- package/components/HorizontalBookCard.js +6 -2
- package/components/HorizontalBookCard.js.LICENSE.txt +1 -1
- package/components/HorizontalCard.js +6 -2
- package/components/HorizontalCard.js.LICENSE.txt +1 -1
- package/components/IconCard.js +4 -2
- package/components/IconCard.js.LICENSE.txt +1 -1
- package/components/Legend.js +3 -2
- package/components/Loader.js +2 -2
- package/components/MegaMenu.js +7 -2
- package/components/Notice.js +3 -2
- package/components/PageHeader.js +4 -2
- package/components/Pager.js +7 -2
- package/components/ProgressBar.js +3 -2
- package/components/QuoteHighlight.js +3 -2
- package/components/QuoteHighlight.js.LICENSE.txt +1 -1
- package/components/Radio.js +3 -2
- package/components/Range.js +3 -2
- package/components/ScrollContainer.js +2 -2
- package/components/SegmentedControl.js +6 -2
- package/components/Select.js +3 -2
- package/components/ServiceNotice.js +4 -2
- package/components/ShareButtons.js +4 -2
- package/components/ShowMore.js +3 -2
- package/components/SkipLink.js +3 -2
- package/components/StatsCard.js +5 -2
- package/components/StatsCard.js.LICENSE.txt +1 -1
- package/components/SyndicationSearchWidget.js +31 -2
- package/components/Tab.js +7 -2
- package/components/TextCta.js +4 -2
- package/components/TextCta.js.LICENSE.txt +1 -1
- package/components/TextInput.js +3 -2
- package/components/Textarea.js +3 -2
- package/components/Tree.js +7 -2
- package/components/UserFeedback.js +2 -2
- package/components/VerticalCard.js +6 -2
- package/components/VerticalCard.js.LICENSE.txt +1 -1
- package/components/hydrate.js +2 -2
- package/css/style-all.css +16 -10
- package/css/style-all.css.map +1 -1
- package/css/style-delta.css +16 -10
- package/css/style-delta.css.map +1 -1
- package/css/style-gutenberg.css +1 -1
- package/css/style-irp.css +16 -10
- package/css/style-irp.css.map +1 -1
- package/css/style-mcr.css +16 -10
- package/css/style-mcr.css.map +1 -1
- package/css/style-preventionweb.css +16 -10
- package/css/style-preventionweb.css.map +1 -1
- package/css/style.css +16 -10
- package/css/style.css.map +1 -1
- package/docs/EDITORIAL-MANUAL.md +2 -2
- package/docs/llms-editorial-manual.txt +1 -1
- package/docs/llms-page-building.txt +4 -2
- package/docs/llms-search-widget.txt +3 -1
- package/error-pages/401.html +1 -1
- package/error-pages/403.html +1 -1
- package/error-pages/404.html +1 -1
- package/error-pages/429.html +1 -1
- package/error-pages/500.html +1 -1
- package/error-pages/502.html +1 -1
- package/error-pages/503.html +1 -1
- package/error-pages/504.html +1 -1
- package/error-pages/5xx.html +1 -1
- package/error-pages/challenge.html +1 -1
- package/error-pages/managed-challenge.html +1 -1
- package/js/dialog.js +205 -0
- package/package.json +1 -1
- package/scss/Atom/BaseTypography/Code/code.scss +0 -1
- package/scss/Atom/Table/table.scss +0 -1
- package/scss/Atom/Tag/tag.scss +0 -1
- package/scss/Components/Buttons/ShareButtons/share-buttons.scss +18 -0
- package/scss/Components/Cards/StatsCard/stats-card.scss +0 -1
- package/scss/Components/Dialog/dialog.scss +87 -0
- package/scss/Components/MegaMenu/mega-menu.scss +460 -33
- package/scss/Components/SyndicationSearchWidget/syndication-search-widget.scss +70 -2
- package/scss/Patterns/Content/Publication/publication-record.scss +110 -0
- package/scss/Patterns/LandingPages/publication-example.scss +28 -0
- package/scss/assets/scss/_components.scss +1 -0
- package/scss/assets/scss/_variables.scss +1 -1
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
.mg-mega-wrapper {
|
|
13
13
|
position: relative;
|
|
14
14
|
background: rgb(var(--mg-color-white));
|
|
15
|
-
|
|
15
|
+
|
|
16
|
+
// Paint below the header so opaque logo/trigger surfaces cannot cover it.
|
|
17
|
+
box-shadow: 0 1px 0 rgb(var(--mg-color-neutral-600) / 0.24);
|
|
16
18
|
z-index: var(--mg-z-index-nav);
|
|
17
19
|
}
|
|
18
20
|
|
|
@@ -22,9 +24,7 @@
|
|
|
22
24
|
align-items: flex-start;
|
|
23
25
|
z-index: var(--mg-z-index-nav);
|
|
24
26
|
|
|
25
|
-
//
|
|
26
|
-
// variant puts it on a wrapping <div> and uses &__nav for the list), so it
|
|
27
|
-
// is a list class and carries the house rule.
|
|
27
|
+
// Plain HTML consumers can use this class directly on a navigation list.
|
|
28
28
|
@include mg-list-unmarked;
|
|
29
29
|
|
|
30
30
|
padding: 0;
|
|
@@ -36,17 +36,38 @@
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
// Kept max-width based to avoid a Firefox glitch with .mg-container-full-width.
|
|
39
|
-
@media screen and (
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
@media screen and (width < $mg-breakpoint-tablet) {
|
|
40
|
+
position: relative;
|
|
41
|
+
padding-inline-start: mg-rem(40); // space for the icon button
|
|
42
|
+
overflow-x: auto;
|
|
43
|
+
overscroll-behavior-inline: contain;
|
|
44
|
+
scrollbar-width: none;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// React keeps the hamburger outside the scrolling rail in both variants.
|
|
48
|
+
// Avoid sticky flex children: WebKit can scroll them out of view in RTL.
|
|
49
|
+
@media screen and (width < $mg-breakpoint-tablet) {
|
|
50
|
+
&:has(> .mg-mega-topbar__nav) {
|
|
51
|
+
padding-inline-start: 0;
|
|
52
|
+
overflow: hidden;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
> .mg-mega-topbar-mobile__icon-button {
|
|
56
|
+
position: relative;
|
|
57
|
+
inset: auto;
|
|
58
|
+
width: mg-rem(40);
|
|
59
|
+
flex-shrink: 0;
|
|
60
|
+
align-self: stretch;
|
|
61
|
+
background: rgb(var(--mg-color-white));
|
|
62
|
+
}
|
|
42
63
|
}
|
|
43
64
|
|
|
44
65
|
// --- Branded variant (with inline logo) ---
|
|
45
66
|
&--branded {
|
|
46
67
|
align-items: center;
|
|
47
68
|
|
|
48
|
-
@media screen and (
|
|
49
|
-
padding-
|
|
69
|
+
@media screen and (width < $mg-breakpoint-tablet) {
|
|
70
|
+
padding-inline-start: 0; // logo replaces the left padding
|
|
50
71
|
overflow-x: hidden;
|
|
51
72
|
}
|
|
52
73
|
|
|
@@ -72,6 +93,10 @@
|
|
|
72
93
|
justify-content: flex-end;
|
|
73
94
|
flex: 1;
|
|
74
95
|
|
|
96
|
+
@media screen and (width < $mg-breakpoint-tablet) {
|
|
97
|
+
justify-content: flex-start;
|
|
98
|
+
}
|
|
99
|
+
|
|
75
100
|
@include mg-list-unmarked;
|
|
76
101
|
|
|
77
102
|
margin: 0;
|
|
@@ -109,11 +134,23 @@
|
|
|
109
134
|
|
|
110
135
|
@include mg-list-unmarked;
|
|
111
136
|
|
|
112
|
-
//
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
137
|
+
// The branded rail scrolls independently of the logo and hamburger.
|
|
138
|
+
@media screen and (width < $mg-breakpoint-tablet) {
|
|
139
|
+
overflow-x: auto;
|
|
140
|
+
overscroll-behavior-inline: contain;
|
|
141
|
+
scrollbar-width: none;
|
|
142
|
+
cursor: grab;
|
|
143
|
+
user-select: none;
|
|
144
|
+
|
|
145
|
+
&:active {
|
|
146
|
+
cursor: grabbing;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.mg-mega-topbar__item-link {
|
|
150
|
+
cursor: inherit;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
justify-content: flex-start;
|
|
117
154
|
flex: 1;
|
|
118
155
|
min-width: 0;
|
|
119
156
|
}
|
|
@@ -148,6 +185,7 @@
|
|
|
148
185
|
}
|
|
149
186
|
}
|
|
150
187
|
|
|
188
|
+
flex-shrink: 0;
|
|
151
189
|
font-size: var(--mg-font-size-300);
|
|
152
190
|
color: rgb(var(--mg-color-interactive));
|
|
153
191
|
font-weight: bold;
|
|
@@ -688,6 +726,7 @@
|
|
|
688
726
|
.mg-mega-topbar-mobile__icon-button {
|
|
689
727
|
// Mobile-first: Display by default
|
|
690
728
|
position: absolute;
|
|
729
|
+
inset-block: 0;
|
|
691
730
|
|
|
692
731
|
// Anchored to both edges of the topbar rather than assumed to be
|
|
693
732
|
// viewport-wide: a `100vw` overlay overhangs and is clipped by the parent's
|
|
@@ -701,7 +740,8 @@
|
|
|
701
740
|
color: rgb(var(--mg-color-interactive));
|
|
702
741
|
font-size: mg-rem(20);
|
|
703
742
|
width: auto;
|
|
704
|
-
height:
|
|
743
|
+
height: auto;
|
|
744
|
+
min-height: mg-rem(44);
|
|
705
745
|
padding: var(--mg-spacing-100);
|
|
706
746
|
border: none;
|
|
707
747
|
cursor: pointer;
|
|
@@ -793,24 +833,8 @@
|
|
|
793
833
|
box-shadow: 3px 0 6px -2px rgb(0 0 0 / 0.15);
|
|
794
834
|
}
|
|
795
835
|
|
|
796
|
-
// Full JS mega menu — sidebar handles mobile nav, so topbar items must NOT be
|
|
797
|
-
// interactive on small screens. This class is added by the React component on
|
|
798
|
-
// mount (useEffect), so it is absent when JS fails or has not yet hydrated,
|
|
799
|
-
// preserving a clickable fallback for server-rendered nav markup.
|
|
800
|
-
.mg-mega-wrapper--js-active {
|
|
801
|
-
@media screen and (max-width: $mg-breakpoint-tablet) {
|
|
802
|
-
.mg-mega-topbar__nav {
|
|
803
|
-
pointer-events: none;
|
|
804
|
-
}
|
|
805
|
-
|
|
806
|
-
.mg-mega-topbar__item {
|
|
807
|
-
pointer-events: none;
|
|
808
|
-
}
|
|
809
|
-
}
|
|
810
|
-
}
|
|
811
|
-
|
|
812
836
|
// Mobile progressive navigation: one stable surface at every depth. Existing
|
|
813
|
-
// desktop classes
|
|
837
|
+
// desktop classes remain compatible; the rail opens individual sections.
|
|
814
838
|
.mg-mega-mobile-sidebar--progressive {
|
|
815
839
|
position: fixed;
|
|
816
840
|
inset: 0 0 auto;
|
|
@@ -1094,7 +1118,7 @@
|
|
|
1094
1118
|
|
|
1095
1119
|
// Existing plain HTML navigation needs no hamburger gutter or JS enhancement.
|
|
1096
1120
|
// Keep overflow local to the rail so every destination remains reachable.
|
|
1097
|
-
@media screen and (
|
|
1121
|
+
@media screen and (width < $mg-breakpoint-tablet) {
|
|
1098
1122
|
.mg-mega-topbar:not(
|
|
1099
1123
|
.mg-mega-topbar--branded,
|
|
1100
1124
|
:has(.mg-mega-topbar-mobile__icon-button)
|
|
@@ -1113,3 +1137,406 @@
|
|
|
1113
1137
|
}
|
|
1114
1138
|
}
|
|
1115
1139
|
}
|
|
1140
|
+
|
|
1141
|
+
// =============================================================================
|
|
1142
|
+
// Contextual menu finding: desktop sections and mobile drawer
|
|
1143
|
+
// =============================================================================
|
|
1144
|
+
|
|
1145
|
+
// Quick navigation shares geometry and readable type across every theme.
|
|
1146
|
+
// Override these properties on .mg-mega-wrapper in consumer theme CSS.
|
|
1147
|
+
:where(.mg-mega-wrapper) {
|
|
1148
|
+
--mg-mega-filter-font-size: var(--mg-font-size-300);
|
|
1149
|
+
--mg-mega-filter-meta-font-size: var(--mg-font-size-250);
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
.mg-mega-mobile-sidebar__filter-container {
|
|
1153
|
+
padding: var(--mg-spacing-100) var(--mg-spacing-150);
|
|
1154
|
+
border-bottom: 1px solid rgb(var(--mg-color-neutral-200));
|
|
1155
|
+
background: rgb(var(--mg-color-white));
|
|
1156
|
+
flex-shrink: 0;
|
|
1157
|
+
}
|
|
1158
|
+
|
|
1159
|
+
.mg-mega-filter {
|
|
1160
|
+
position: relative;
|
|
1161
|
+
display: flex;
|
|
1162
|
+
align-items: center;
|
|
1163
|
+
width: 100%;
|
|
1164
|
+
background: rgb(var(--mg-color-white));
|
|
1165
|
+
border: 1px solid rgb(var(--mg-color-neutral-300));
|
|
1166
|
+
border-radius: var(--mg-radius-form-input);
|
|
1167
|
+
|
|
1168
|
+
&:focus-within {
|
|
1169
|
+
@include mg-focus-ring;
|
|
1170
|
+
}
|
|
1171
|
+
|
|
1172
|
+
&__icon {
|
|
1173
|
+
position: absolute;
|
|
1174
|
+
inset-inline-start: var(--mg-spacing-100);
|
|
1175
|
+
color: rgb(var(--mg-color-neutral-600));
|
|
1176
|
+
pointer-events: none;
|
|
1177
|
+
font-size: var(--mg-font-size-300);
|
|
1178
|
+
}
|
|
1179
|
+
|
|
1180
|
+
&__input {
|
|
1181
|
+
width: 100%;
|
|
1182
|
+
min-width: 0;
|
|
1183
|
+
height: mg-rem(44);
|
|
1184
|
+
padding: var(--mg-spacing-50) mg-rem(44);
|
|
1185
|
+
border: none;
|
|
1186
|
+
background: transparent;
|
|
1187
|
+
font-family: var(--mg-font-family-text);
|
|
1188
|
+
font-size: var(--mg-mega-filter-font-size);
|
|
1189
|
+
color: rgb(var(--mg-color-neutral-900));
|
|
1190
|
+
|
|
1191
|
+
&::placeholder {
|
|
1192
|
+
color: rgb(var(--mg-color-neutral-600));
|
|
1193
|
+
}
|
|
1194
|
+
|
|
1195
|
+
&:focus {
|
|
1196
|
+
outline: none;
|
|
1197
|
+
}
|
|
1198
|
+
|
|
1199
|
+
&::-webkit-search-cancel-button,
|
|
1200
|
+
&::-webkit-search-decoration {
|
|
1201
|
+
appearance: none;
|
|
1202
|
+
}
|
|
1203
|
+
}
|
|
1204
|
+
|
|
1205
|
+
&__clear {
|
|
1206
|
+
position: absolute;
|
|
1207
|
+
inset-inline-end: 0;
|
|
1208
|
+
display: inline-flex;
|
|
1209
|
+
align-items: center;
|
|
1210
|
+
justify-content: center;
|
|
1211
|
+
width: mg-rem(44);
|
|
1212
|
+
height: mg-rem(44);
|
|
1213
|
+
padding: 0;
|
|
1214
|
+
border: none;
|
|
1215
|
+
border-radius: var(--mg-radius-form-input);
|
|
1216
|
+
background: transparent;
|
|
1217
|
+
color: rgb(var(--mg-color-neutral-800));
|
|
1218
|
+
font-family: var(--mg-font-family-text);
|
|
1219
|
+
font-size: var(--mg-font-size-500);
|
|
1220
|
+
cursor: pointer;
|
|
1221
|
+
|
|
1222
|
+
&:focus-visible {
|
|
1223
|
+
@include mg-focus-ring-inset;
|
|
1224
|
+
}
|
|
1225
|
+
}
|
|
1226
|
+
|
|
1227
|
+
&__status {
|
|
1228
|
+
font-size: var(--mg-mega-filter-meta-font-size);
|
|
1229
|
+
color: rgb(var(--mg-color-neutral-600));
|
|
1230
|
+
margin-bottom: var(--mg-spacing-100);
|
|
1231
|
+
font-variant-numeric: tabular-nums;
|
|
1232
|
+
}
|
|
1233
|
+
|
|
1234
|
+
&__highlight {
|
|
1235
|
+
// Match the card title's search-hit treatment. Reset the global editorial
|
|
1236
|
+
// mark padding and size so the match stays inline, including in breadcrumbs.
|
|
1237
|
+
padding: 0;
|
|
1238
|
+
background: rgb(var(--mg-color-neutral-50));
|
|
1239
|
+
color: inherit;
|
|
1240
|
+
font-size: inherit;
|
|
1241
|
+
font-weight: 700;
|
|
1242
|
+
line-height: inherit;
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1245
|
+
&__empty-container {
|
|
1246
|
+
padding-block: var(--mg-spacing-100);
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
&__empty-search-btn,
|
|
1250
|
+
&__site-search-link {
|
|
1251
|
+
display: flex;
|
|
1252
|
+
align-items: center;
|
|
1253
|
+
justify-content: space-between;
|
|
1254
|
+
gap: var(--mg-spacing-100);
|
|
1255
|
+
min-height: mg-rem(44);
|
|
1256
|
+
max-inline-size: 100%;
|
|
1257
|
+
font-size: var(--mg-mega-filter-font-size);
|
|
1258
|
+
line-height: inherit;
|
|
1259
|
+
text-align: start;
|
|
1260
|
+
text-decoration: none;
|
|
1261
|
+
white-space: normal;
|
|
1262
|
+
overflow-wrap: anywhere;
|
|
1263
|
+
|
|
1264
|
+
&:hover {
|
|
1265
|
+
text-decoration: none;
|
|
1266
|
+
}
|
|
1267
|
+
}
|
|
1268
|
+
|
|
1269
|
+
&__fallback {
|
|
1270
|
+
margin-top: var(--mg-spacing-100);
|
|
1271
|
+
padding-top: var(--mg-spacing-100);
|
|
1272
|
+
border-top: 1px solid rgb(var(--mg-color-neutral-200));
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
&__fallback-arrow {
|
|
1276
|
+
margin-inline-start: auto;
|
|
1277
|
+
|
|
1278
|
+
&:dir(rtl) {
|
|
1279
|
+
transform: scaleX(-1);
|
|
1280
|
+
}
|
|
1281
|
+
}
|
|
1282
|
+
|
|
1283
|
+
&__mobile-list {
|
|
1284
|
+
@include mg-list-unmarked;
|
|
1285
|
+
|
|
1286
|
+
padding: 0;
|
|
1287
|
+
margin: 0;
|
|
1288
|
+
}
|
|
1289
|
+
|
|
1290
|
+
&__mobile-item {
|
|
1291
|
+
border-bottom: 1px solid rgb(var(--mg-color-neutral-200));
|
|
1292
|
+
|
|
1293
|
+
&:last-child {
|
|
1294
|
+
border-bottom: 0; // The site-search footer owns the closing separator.
|
|
1295
|
+
}
|
|
1296
|
+
}
|
|
1297
|
+
|
|
1298
|
+
&__mobile-link {
|
|
1299
|
+
transition: none;
|
|
1300
|
+
display: flex;
|
|
1301
|
+
align-items: center;
|
|
1302
|
+
min-height: mg-rem(44);
|
|
1303
|
+
padding: var(--mg-spacing-100);
|
|
1304
|
+
border-radius: var(--mg-radius-form-input);
|
|
1305
|
+
font-family: var(--mg-font-family-ui);
|
|
1306
|
+
text-decoration: none;
|
|
1307
|
+
overflow-wrap: anywhere;
|
|
1308
|
+
|
|
1309
|
+
&:focus-visible {
|
|
1310
|
+
@include mg-focus-ring-inset;
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1313
|
+
@media (hover: hover) {
|
|
1314
|
+
&:hover {
|
|
1315
|
+
background: rgb(var(--mg-color-interactive) / 0.06);
|
|
1316
|
+
}
|
|
1317
|
+
}
|
|
1318
|
+
}
|
|
1319
|
+
|
|
1320
|
+
// Same chevron geometry and logical direction as .mg-breadcrumb, without
|
|
1321
|
+
// creating a navigation landmark or nested links for every search result.
|
|
1322
|
+
&__trail {
|
|
1323
|
+
display: flex;
|
|
1324
|
+
flex-wrap: wrap;
|
|
1325
|
+
align-items: baseline;
|
|
1326
|
+
row-gap: var(--mg-spacing-25);
|
|
1327
|
+
flex: 1;
|
|
1328
|
+
min-width: 0;
|
|
1329
|
+
font-size: var(--mg-mega-filter-meta-font-size);
|
|
1330
|
+
color: rgb(var(--mg-color-neutral-600));
|
|
1331
|
+
}
|
|
1332
|
+
|
|
1333
|
+
&__trail-step {
|
|
1334
|
+
display: inline;
|
|
1335
|
+
max-inline-size: 100%;
|
|
1336
|
+
overflow-wrap: anywhere;
|
|
1337
|
+
|
|
1338
|
+
+ .mg-mega-filter__trail-step::before {
|
|
1339
|
+
content: "";
|
|
1340
|
+
display: inline-block;
|
|
1341
|
+
inline-size: 0.35em;
|
|
1342
|
+
block-size: 0.35em;
|
|
1343
|
+
border-inline-end: 0.125em solid currentColor;
|
|
1344
|
+
border-block-start: 0.125em solid currentColor;
|
|
1345
|
+
transform: rotate(45deg);
|
|
1346
|
+
margin-inline: 0.65em 0.75em;
|
|
1347
|
+
vertical-align: middle;
|
|
1348
|
+
color: rgb(var(--mg-color-neutral-600));
|
|
1349
|
+
}
|
|
1350
|
+
|
|
1351
|
+
&:dir(rtl) + .mg-mega-filter__trail-step::before {
|
|
1352
|
+
transform: rotate(-45deg);
|
|
1353
|
+
}
|
|
1354
|
+
}
|
|
1355
|
+
|
|
1356
|
+
&__item-title {
|
|
1357
|
+
font-size: var(--mg-mega-filter-font-size);
|
|
1358
|
+
font-weight: 600;
|
|
1359
|
+
color: rgb(var(--mg-color-interactive));
|
|
1360
|
+
}
|
|
1361
|
+
}
|
|
1362
|
+
|
|
1363
|
+
.mg-mega-mobile-sidebar--progressive.mg-mega-mobile-sidebar--filtering {
|
|
1364
|
+
display: flex;
|
|
1365
|
+
flex-direction: column;
|
|
1366
|
+
overflow: hidden;
|
|
1367
|
+
|
|
1368
|
+
.mg-mega-mobile-sidebar__header {
|
|
1369
|
+
flex-shrink: 0;
|
|
1370
|
+
}
|
|
1371
|
+
}
|
|
1372
|
+
|
|
1373
|
+
.mg-mega-mobile-sidebar__filter-results {
|
|
1374
|
+
padding: var(--mg-spacing-100) var(--mg-spacing-150);
|
|
1375
|
+
overflow-y: auto;
|
|
1376
|
+
overscroll-behavior: contain;
|
|
1377
|
+
min-height: 0;
|
|
1378
|
+
|
|
1379
|
+
.mg-mega-filter__site-search-link {
|
|
1380
|
+
width: 100%;
|
|
1381
|
+
}
|
|
1382
|
+
}
|
|
1383
|
+
|
|
1384
|
+
.mg-mega-content__left-contents {
|
|
1385
|
+
display: contents;
|
|
1386
|
+
}
|
|
1387
|
+
|
|
1388
|
+
.mg-mega-content--filterable > .mg-mega-content__left {
|
|
1389
|
+
display: flex;
|
|
1390
|
+
flex-direction: column;
|
|
1391
|
+
overflow: hidden;
|
|
1392
|
+
}
|
|
1393
|
+
|
|
1394
|
+
.mg-mega-content__left-scroll {
|
|
1395
|
+
flex: 1;
|
|
1396
|
+
min-height: 0;
|
|
1397
|
+
overflow-y: auto;
|
|
1398
|
+
overscroll-behavior: contain;
|
|
1399
|
+
}
|
|
1400
|
+
|
|
1401
|
+
.mg-mega-content__finder-footer {
|
|
1402
|
+
flex-shrink: 0;
|
|
1403
|
+
padding-block: var(--mg-spacing-100);
|
|
1404
|
+
border-top: 1px solid rgb(var(--mg-color-neutral-200));
|
|
1405
|
+
}
|
|
1406
|
+
|
|
1407
|
+
.mg-mega-menu-finder__action.mg-mega-content__finder-trigger {
|
|
1408
|
+
width: 100%;
|
|
1409
|
+
justify-content: space-between;
|
|
1410
|
+
padding-inline: var(--mg-spacing-250);
|
|
1411
|
+
border-radius: 0;
|
|
1412
|
+
|
|
1413
|
+
@media (hover: hover) {
|
|
1414
|
+
&:hover {
|
|
1415
|
+
background: rgb(var(--mg-color-interactive) / 0.15);
|
|
1416
|
+
}
|
|
1417
|
+
}
|
|
1418
|
+
|
|
1419
|
+
&:focus-visible {
|
|
1420
|
+
background: rgb(var(--mg-color-interactive) / 0.15);
|
|
1421
|
+
}
|
|
1422
|
+
|
|
1423
|
+
> span {
|
|
1424
|
+
text-decoration: underline;
|
|
1425
|
+
text-underline-offset: 0.15em;
|
|
1426
|
+
}
|
|
1427
|
+
}
|
|
1428
|
+
|
|
1429
|
+
.mg-mega-content__finder-shortcut {
|
|
1430
|
+
font-size: var(--mg-mega-filter-meta-font-size);
|
|
1431
|
+
padding-inline: var(--mg-spacing-50);
|
|
1432
|
+
border: 1px solid rgb(var(--mg-color-neutral-300));
|
|
1433
|
+
border-radius: var(--mg-spacing-25);
|
|
1434
|
+
background: rgb(var(--mg-color-white));
|
|
1435
|
+
color: rgb(var(--mg-color-neutral-600));
|
|
1436
|
+
}
|
|
1437
|
+
|
|
1438
|
+
.mg-mega-menu-finder {
|
|
1439
|
+
flex-direction: column;
|
|
1440
|
+
max-block-size: min(75vh, 600px);
|
|
1441
|
+
margin-block: min(10vh, 80px) auto;
|
|
1442
|
+
margin-inline: auto;
|
|
1443
|
+
overflow: hidden;
|
|
1444
|
+
font-weight: 400;
|
|
1445
|
+
|
|
1446
|
+
&[open] {
|
|
1447
|
+
display: flex;
|
|
1448
|
+
}
|
|
1449
|
+
|
|
1450
|
+
&__action {
|
|
1451
|
+
transition: none;
|
|
1452
|
+
display: inline-flex;
|
|
1453
|
+
align-items: center;
|
|
1454
|
+
justify-content: center;
|
|
1455
|
+
flex-shrink: 0;
|
|
1456
|
+
min-inline-size: mg-rem(44);
|
|
1457
|
+
min-height: mg-rem(44);
|
|
1458
|
+
padding: 0 var(--mg-spacing-50);
|
|
1459
|
+
border: 0;
|
|
1460
|
+
border-radius: var(--mg-radius-form-input);
|
|
1461
|
+
background: transparent;
|
|
1462
|
+
color: rgb(var(--mg-color-interactive));
|
|
1463
|
+
font-family: var(--mg-font-family-text);
|
|
1464
|
+
font-size: var(--mg-mega-filter-meta-font-size);
|
|
1465
|
+
font-weight: 400;
|
|
1466
|
+
cursor: pointer;
|
|
1467
|
+
text-decoration: none;
|
|
1468
|
+
|
|
1469
|
+
@media (hover: hover) {
|
|
1470
|
+
&:hover {
|
|
1471
|
+
background: rgb(var(--mg-color-neutral-100));
|
|
1472
|
+
}
|
|
1473
|
+
}
|
|
1474
|
+
|
|
1475
|
+
&:focus-visible {
|
|
1476
|
+
@include mg-focus-ring;
|
|
1477
|
+
}
|
|
1478
|
+
}
|
|
1479
|
+
|
|
1480
|
+
&__header {
|
|
1481
|
+
padding: var(--mg-spacing-100) var(--mg-spacing-250) var(--mg-spacing-150);
|
|
1482
|
+
border-bottom: 1px solid rgb(var(--mg-color-neutral-200));
|
|
1483
|
+
flex-shrink: 0;
|
|
1484
|
+
|
|
1485
|
+
.mg-mega-filter {
|
|
1486
|
+
max-inline-size: mg-rem(480);
|
|
1487
|
+
}
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1490
|
+
&__heading {
|
|
1491
|
+
display: flex;
|
|
1492
|
+
align-items: center;
|
|
1493
|
+
justify-content: space-between;
|
|
1494
|
+
gap: var(--mg-spacing-100);
|
|
1495
|
+
}
|
|
1496
|
+
|
|
1497
|
+
&__label {
|
|
1498
|
+
font-family: var(--mg-font-family-ui);
|
|
1499
|
+
font-size: var(--mg-mega-filter-font-size);
|
|
1500
|
+
color: rgb(var(--mg-color-neutral-800));
|
|
1501
|
+
}
|
|
1502
|
+
|
|
1503
|
+
&__results {
|
|
1504
|
+
padding: var(--mg-spacing-100) var(--mg-spacing-250);
|
|
1505
|
+
overflow-y: auto;
|
|
1506
|
+
overscroll-behavior: contain;
|
|
1507
|
+
min-height: 0;
|
|
1508
|
+
}
|
|
1509
|
+
|
|
1510
|
+
&__footer {
|
|
1511
|
+
flex-shrink: 0;
|
|
1512
|
+
padding: var(--mg-spacing-100) var(--mg-spacing-250);
|
|
1513
|
+
border-top: 1px solid rgb(var(--mg-color-neutral-200));
|
|
1514
|
+
|
|
1515
|
+
.mg-mega-filter__site-search-link {
|
|
1516
|
+
width: fit-content;
|
|
1517
|
+
max-inline-size: 100%;
|
|
1518
|
+
}
|
|
1519
|
+
}
|
|
1520
|
+
}
|
|
1521
|
+
|
|
1522
|
+
// Keep the finder body scrolling independently of its input, Close control and site-search footer.
|
|
1523
|
+
.mg-dialog.mg-mega-menu-finder {
|
|
1524
|
+
max-block-size: min(75vh, 600px);
|
|
1525
|
+
margin-block: min(10vh, 80px) auto;
|
|
1526
|
+
margin-inline: auto;
|
|
1527
|
+
overflow: hidden;
|
|
1528
|
+
}
|
|
1529
|
+
|
|
1530
|
+
// A brief tint confirms pointer targeting without delaying navigation or focus.
|
|
1531
|
+
// Base states remain immediate; keyboard, touch and forced colours stay instant.
|
|
1532
|
+
@media (hover: hover) and (prefers-reduced-motion: no-preference) and (forced-colors: none) {
|
|
1533
|
+
.mg-mega-menu-finder__action,
|
|
1534
|
+
.mg-mega-filter__mobile-link {
|
|
1535
|
+
transition: background-color var(--mg-motion-duration-fast)
|
|
1536
|
+
var(--mg-motion-easing-standard);
|
|
1537
|
+
|
|
1538
|
+
&:focus-visible {
|
|
1539
|
+
transition: none;
|
|
1540
|
+
}
|
|
1541
|
+
}
|
|
1542
|
+
}
|
|
@@ -573,7 +573,6 @@ $search-input-padding-x: mg-rem(44);
|
|
|
573
573
|
padding: var(--mg-spacing-25) var(--mg-spacing-50);
|
|
574
574
|
background: $search-chip-bg;
|
|
575
575
|
border-radius: $search-radius;
|
|
576
|
-
text-transform: uppercase;
|
|
577
576
|
letter-spacing: 0.025em;
|
|
578
577
|
}
|
|
579
578
|
|
|
@@ -1713,7 +1712,6 @@ $search-input-padding-x: mg-rem(44);
|
|
|
1713
1712
|
margin-inline-end: var(--mg-spacing-25);
|
|
1714
1713
|
color: $search-text-muted;
|
|
1715
1714
|
font-weight: 600;
|
|
1716
|
-
text-transform: uppercase;
|
|
1717
1715
|
letter-spacing: 0.05em;
|
|
1718
1716
|
}
|
|
1719
1717
|
|
|
@@ -1736,3 +1734,73 @@ $search-input-padding-x: mg-rem(44);
|
|
|
1736
1734
|
border-inline-end: 1px solid CanvasText;
|
|
1737
1735
|
}
|
|
1738
1736
|
}
|
|
1737
|
+
|
|
1738
|
+
// A result scope is one required choice, distinct from removable filters.
|
|
1739
|
+
.mg-search__scope-tabs {
|
|
1740
|
+
border: 0;
|
|
1741
|
+
padding: 0;
|
|
1742
|
+
margin-block: 0 var(--mg-spacing-100);
|
|
1743
|
+
margin-inline: 0;
|
|
1744
|
+
min-inline-size: 0;
|
|
1745
|
+
}
|
|
1746
|
+
|
|
1747
|
+
.mg-search__scope-options {
|
|
1748
|
+
display: flex;
|
|
1749
|
+
flex-wrap: wrap;
|
|
1750
|
+
gap: var(--mg-spacing-25);
|
|
1751
|
+
border-block-end: 1px solid rgb(var(--mg-color-neutral-200));
|
|
1752
|
+
}
|
|
1753
|
+
|
|
1754
|
+
.mg-search__scope-option {
|
|
1755
|
+
position: relative;
|
|
1756
|
+
cursor: pointer;
|
|
1757
|
+
margin: 0;
|
|
1758
|
+
|
|
1759
|
+
input {
|
|
1760
|
+
position: absolute;
|
|
1761
|
+
inline-size: 1px;
|
|
1762
|
+
block-size: 1px;
|
|
1763
|
+
opacity: 0;
|
|
1764
|
+
}
|
|
1765
|
+
|
|
1766
|
+
span {
|
|
1767
|
+
display: flex;
|
|
1768
|
+
align-items: center;
|
|
1769
|
+
justify-content: center;
|
|
1770
|
+
min-inline-size: mg-rem(44);
|
|
1771
|
+
min-block-size: mg-rem(44);
|
|
1772
|
+
box-sizing: border-box;
|
|
1773
|
+
padding: var(--mg-spacing-75) var(--mg-spacing-100);
|
|
1774
|
+
border-block-end: 3px solid transparent;
|
|
1775
|
+
font-family: var(--mg-font-family-ui);
|
|
1776
|
+
color: rgb(var(--mg-color-text));
|
|
1777
|
+
}
|
|
1778
|
+
|
|
1779
|
+
input:checked + span {
|
|
1780
|
+
border-block-end-color: rgb(var(--mg-color-interactive));
|
|
1781
|
+
font-weight: 700;
|
|
1782
|
+
}
|
|
1783
|
+
|
|
1784
|
+
input:focus-visible + span {
|
|
1785
|
+
@include mg-focus-ring-inset;
|
|
1786
|
+
}
|
|
1787
|
+
|
|
1788
|
+
input:disabled + span {
|
|
1789
|
+
cursor: not-allowed;
|
|
1790
|
+
color: rgb(var(--mg-color-neutral-600));
|
|
1791
|
+
}
|
|
1792
|
+
|
|
1793
|
+
@media (forced-colors: active) {
|
|
1794
|
+
input:not(:checked) + span {
|
|
1795
|
+
border-block-end-color: Canvas;
|
|
1796
|
+
}
|
|
1797
|
+
|
|
1798
|
+
input:checked + span {
|
|
1799
|
+
border-block-end-color: Highlight;
|
|
1800
|
+
}
|
|
1801
|
+
|
|
1802
|
+
input:disabled + span {
|
|
1803
|
+
color: GrayText;
|
|
1804
|
+
}
|
|
1805
|
+
}
|
|
1806
|
+
}
|