@salesforcedevs/dx-components 1.2.19-lightdom → 1.2.20-lightdom-6
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/package.json +1 -1
- package/src/modules/dx/banner/banner.css +32 -0
- package/src/modules/dx/banner/banner.html +2 -2
- package/src/modules/dx/banner/banner.ts +1 -3
- package/src/modules/dx/brandThemeProvider/brandThemeProvider.ts +1 -1
- package/src/modules/dx/button/button.html +7 -5
- package/src/modules/dx/button/{button.css → button.scoped.css} +1 -2
- package/src/modules/dx/button/button.ts +16 -8
- package/src/modules/dx/cardCallout/cardCallout.css +44 -4
- package/src/modules/dx/cardCallout/cardCallout.html +1 -1
- package/src/modules/dx/cardCallout/cardCallout.ts +0 -2
- package/src/modules/dx/cardPodcastEpisode/{cardPodcastEpisode.scoped.css → cardPodcastEpisode.css} +4 -0
- package/src/modules/dx/cardPodcastEpisode/cardPodcastEpisode.html +1 -1
- package/src/modules/dx/cardPodcastEpisode/cardPodcastEpisode.ts +0 -2
- package/src/modules/dx/cardTitle/cardTitle.css +24 -2
- package/src/modules/dx/cardTitle/cardTitle.html +3 -7
- package/src/modules/dx/cardTitle/cardTitle.ts +0 -1
- package/src/modules/dx/dropdown/dropdown.css +6 -11
- package/src/modules/dx/dropdown/dropdown.html +1 -0
- package/src/modules/dx/featuredContentHeader/featuredContentHeader.css +8 -8
- package/src/modules/dx/header/header.css +0 -11
- package/src/modules/dx/header/header.scoped.css +5 -0
- package/src/modules/dx/headerMobileNavMenu/headerMobileNavMenu.css +146 -1
- package/src/modules/dx/headerMobileNavMenu/headerMobileNavMenu.html +4 -12
- package/src/modules/dx/headerMobileNavMenu/headerMobileNavMenu.ts +5 -5
- package/src/modules/dx/headerNav/{headerNav.scoped.css → headerNav.css} +2 -0
- package/src/modules/dx/headerNav/headerNav.html +2 -5
- package/src/modules/dx/headerNav/headerNav.ts +0 -2
- package/src/modules/dx/headerSearch/headerSearch.css +60 -1
- package/src/modules/dx/headerSearch/headerSearch.html +1 -1
- package/src/modules/dx/headerSearch/headerSearch.ts +0 -2
- package/src/modules/dx/icon/icon.css +4 -2
- package/src/modules/dx/icon/icon.html +1 -1
- package/src/modules/dx/icon/icon.scoped.css +5 -0
- package/src/modules/dx/icon/icon.ts +0 -2
- package/src/modules/dx/logo/{logo.scoped.css → logo.css} +3 -0
- package/src/modules/dx/logo/logo.html +1 -1
- package/src/modules/dx/logo/logo.ts +0 -2
- package/src/modules/dx/popover/popover.html +2 -2
- package/src/modules/dx/popover/{popover.css → popover.scoped.css} +0 -2
- package/src/modules/dx/popover/popover.ts +33 -19
- package/src/modules/dx/relativeDateTime/relativeDateTime.html +1 -1
- package/src/modules/dx/relativeDateTime/relativeDateTime.ts +0 -1
- package/src/modules/dx/skipNavLink/{skipNavLink.scoped.css → skipNavLink.css} +2 -0
- package/src/modules/dx/skipNavLink/skipNavLink.html +1 -1
- package/src/modules/dx/skipNavLink/skipNavLink.ts +1 -3
- package/src/modules/dxHelpers/card/card.css +0 -10
- package/src/modules/dxHelpers/commonSidebar/commonSidebar.css +3 -3
- package/src/modules/dx/banner/banner.scoped.css +0 -28
- package/src/modules/dx/cardCallout/cardCallout.scoped.css +0 -45
- package/src/modules/dx/cardTitle/cardTitle.scoped.css +0 -25
- package/src/modules/dx/checkbox/checkbox.scoped.css +0 -169
- package/src/modules/dx/headerMobileNavMenu/headerMobileNavMenu.scoped.css +0 -142
- package/src/modules/dx/headerSearch/headerSearch.scoped.css +0 -56
- package/src/modules/dx/relativeDateTime/relativeDateTime.scoped.css +0 -3
package/package.json
CHANGED
|
@@ -1,3 +1,35 @@
|
|
|
1
|
+
@import "dxHelpers/reset";
|
|
2
|
+
@import "dxHelpers/text";
|
|
3
|
+
|
|
4
|
+
.container {
|
|
5
|
+
--primary-color: var(--dx-g-cloud-blue-vibrant-50);
|
|
6
|
+
--secondary-color: var(--dx-g-cloud-blue-vibrant-40);
|
|
7
|
+
|
|
8
|
+
width: 100%;
|
|
9
|
+
display: flex;
|
|
10
|
+
flex-direction: row;
|
|
11
|
+
align-items: center;
|
|
12
|
+
justify-content: center;
|
|
13
|
+
min-height: 24px;
|
|
14
|
+
padding: 0 var(--dx-g-page-padding-horizontal);
|
|
15
|
+
background: repeating-linear-gradient(
|
|
16
|
+
45deg,
|
|
17
|
+
var(--primary-color),
|
|
18
|
+
var(--primary-color) 20px,
|
|
19
|
+
var(--secondary-color) 20px,
|
|
20
|
+
var(--secondary-color) 40px
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.container_inner {
|
|
25
|
+
height: 100%;
|
|
26
|
+
display: flex;
|
|
27
|
+
background: var(--primary-color);
|
|
28
|
+
padding: var(--dx-g-spacing-xs) var(--dx-g-spacing-sm);
|
|
29
|
+
color: white;
|
|
30
|
+
font-weight: bold;
|
|
31
|
+
}
|
|
32
|
+
|
|
1
33
|
.container a {
|
|
2
34
|
text-decoration: underline;
|
|
3
35
|
transition: var(--dx-g-transition-hue-1x);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<template
|
|
1
|
+
<template>
|
|
2
2
|
<div class="container">
|
|
3
3
|
<div class="container_inner dx-text-body-4">
|
|
4
4
|
<dx-icon symbol="announcement"></dx-icon>
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
option instead of slots because the html markup will come as a
|
|
8
8
|
property to the component from a configuration
|
|
9
9
|
-->
|
|
10
|
-
<div class="info-container"></div>
|
|
10
|
+
<div lwc:dom="manual" class="info-container"></div>
|
|
11
11
|
</div>
|
|
12
12
|
</div>
|
|
13
13
|
</template>
|
|
@@ -2,13 +2,11 @@ import { LightningElement, api } from "lwc";
|
|
|
2
2
|
import { setContainerInnerHtml } from "dxUtils/lwc";
|
|
3
3
|
|
|
4
4
|
export default class Banner extends LightningElement {
|
|
5
|
-
static renderMode = "light";
|
|
6
|
-
|
|
7
5
|
@api bannerMarkup =
|
|
8
6
|
'Thank you for visiting the Salesforce Developers website! <span><a href="https://forms.gle/oWYTbH9RvGyt9uxx7" target="blank">We value your feedback</a></span>';
|
|
9
7
|
|
|
10
8
|
renderedCallback() {
|
|
11
|
-
const container = this.querySelector(".info-container");
|
|
9
|
+
const container = this.template.querySelector(".info-container");
|
|
12
10
|
setContainerInnerHtml(container, this.bannerMarkup);
|
|
13
11
|
}
|
|
14
12
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<template>
|
|
1
|
+
<template lwc:render-mode="light">
|
|
2
2
|
<button
|
|
3
3
|
if:false={href}
|
|
4
4
|
class={className}
|
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
aria-label={ariaLabel}
|
|
8
8
|
part="container"
|
|
9
9
|
>
|
|
10
|
-
<span if:false={loading}>
|
|
11
|
-
|
|
10
|
+
<span if:false={loading} class="button-content">
|
|
11
|
+
{buttonText}
|
|
12
|
+
<slot></slot>
|
|
12
13
|
</span>
|
|
13
14
|
<dx-icon
|
|
14
15
|
if:true={showIcon}
|
|
@@ -29,8 +30,9 @@
|
|
|
29
30
|
aria-label={ariaLabel}
|
|
30
31
|
part="container"
|
|
31
32
|
>
|
|
32
|
-
<span if:false={loading}>
|
|
33
|
-
|
|
33
|
+
<span if:false={loading} class="button-content">
|
|
34
|
+
{buttonText}
|
|
35
|
+
<slot></slot>
|
|
34
36
|
</span>
|
|
35
37
|
<dx-icon
|
|
36
38
|
if:true={showIcon}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
@import "dxHelpers/reset";
|
|
2
|
-
|
|
3
1
|
:host {
|
|
4
2
|
width: min-content;
|
|
5
3
|
font-size: inherit;
|
|
6
4
|
|
|
5
|
+
--dx-c-button-background-color: transparent;
|
|
7
6
|
--dx-c-button-primary-color: var(--dx-g-blue-vibrant-50);
|
|
8
7
|
--dx-c-button-primary-color-hover: var(--dx-g-blue-vibrant-40);
|
|
9
8
|
--dx-c-button-secondary-color-hover: var(--dx-g-cloud-blue-vibrant-90);
|
|
@@ -5,11 +5,12 @@ import {
|
|
|
5
5
|
ButtonVariant,
|
|
6
6
|
IconSprite,
|
|
7
7
|
IconSize,
|
|
8
|
-
IconSymbol
|
|
9
|
-
LightningSlotElement
|
|
8
|
+
IconSymbol
|
|
10
9
|
} from "typings/custom";
|
|
11
10
|
|
|
12
11
|
export default class Button extends LightningElement {
|
|
12
|
+
static renderMode = "light";
|
|
13
|
+
|
|
13
14
|
@api ariaLabel: string = "";
|
|
14
15
|
@api disabled: boolean | null = null;
|
|
15
16
|
@api iconSize?: IconSize = "small";
|
|
@@ -23,6 +24,7 @@ export default class Button extends LightningElement {
|
|
|
23
24
|
@api font: "display" | "sans" = "display";
|
|
24
25
|
@api name?: string;
|
|
25
26
|
@api value?: any;
|
|
27
|
+
@api buttonText?: string;
|
|
26
28
|
|
|
27
29
|
// button props
|
|
28
30
|
@api type: "submit" | "reset" | "button" = "button";
|
|
@@ -34,13 +36,17 @@ export default class Button extends LightningElement {
|
|
|
34
36
|
@api rel: string | null = null;
|
|
35
37
|
|
|
36
38
|
@api focus() {
|
|
37
|
-
const button = this.
|
|
39
|
+
const button = this.querySelector(".button");
|
|
38
40
|
if (button) {
|
|
39
41
|
button.focus();
|
|
40
42
|
}
|
|
41
43
|
}
|
|
42
44
|
|
|
43
|
-
|
|
45
|
+
_isSlotEmpty: boolean = true;
|
|
46
|
+
|
|
47
|
+
renderedCallback(): void {
|
|
48
|
+
this._isSlotEmpty = this.isSlotEmpty();
|
|
49
|
+
}
|
|
44
50
|
|
|
45
51
|
private get showIcon(): boolean {
|
|
46
52
|
return !!this.iconSymbol && !this.loading;
|
|
@@ -55,14 +61,16 @@ export default class Button extends LightningElement {
|
|
|
55
61
|
this.loading && "state-loading",
|
|
56
62
|
`size-${this.size}`,
|
|
57
63
|
!!this.iconSymbol && "style-icon",
|
|
58
|
-
this.
|
|
64
|
+
this._isSlotEmpty && "slot-empty",
|
|
59
65
|
`font-${this.font}`,
|
|
60
66
|
this.iconPosition === "right" ? "icon-right" : "icon-left"
|
|
61
67
|
);
|
|
62
68
|
}
|
|
63
69
|
|
|
64
|
-
private
|
|
65
|
-
|
|
66
|
-
|
|
70
|
+
private isSlotEmpty() {
|
|
71
|
+
return (
|
|
72
|
+
!this.querySelector(".button-content")?.childElementCount &&
|
|
73
|
+
!this.querySelector(".button-content")?.textContent
|
|
74
|
+
);
|
|
67
75
|
}
|
|
68
76
|
}
|
|
@@ -1,17 +1,57 @@
|
|
|
1
|
-
|
|
1
|
+
@import "dxHelpers/reset";
|
|
2
|
+
@import "dxHelpers/text";
|
|
3
|
+
@import "dxHelpers/card";
|
|
4
|
+
|
|
5
|
+
.card-callout {
|
|
6
|
+
position: relative;
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/* in the callout card's case it needs to be subservient to the other items in the grid */
|
|
12
|
+
.dx-card-base_override-width {
|
|
13
|
+
height: 100% !important;
|
|
14
|
+
min-height: unset !important;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/* title */
|
|
18
|
+
|
|
19
|
+
.dx-text-heading-3 {
|
|
20
|
+
color: inherit;
|
|
21
|
+
margin-bottom: var(--dx-g-spacing-3xl);
|
|
22
|
+
overflow-wrap: hyphenate-word;
|
|
23
|
+
hyphens: overflow;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* label */
|
|
27
|
+
|
|
28
|
+
.dx-text-button-light {
|
|
29
|
+
color: inherit;
|
|
30
|
+
margin-top: auto;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* callout arrow */
|
|
34
|
+
|
|
35
|
+
dx-icon {
|
|
2
36
|
display: inline;
|
|
3
37
|
color: inherit;
|
|
4
38
|
margin-left: var(--dx-g-spacing-sm);
|
|
5
39
|
}
|
|
6
40
|
|
|
7
|
-
dx-
|
|
41
|
+
dx-icon::part(svg) {
|
|
8
42
|
transition: var(--dx-g-transition-transform-2x);
|
|
9
43
|
}
|
|
10
44
|
|
|
11
|
-
.card-callout:hover dx-icon
|
|
45
|
+
.card-callout:hover dx-icon::part(svg) {
|
|
12
46
|
transform: translate(var(--dx-g-spacing-xs));
|
|
13
47
|
}
|
|
14
48
|
|
|
15
|
-
.card-callout:active dx-icon
|
|
49
|
+
.card-callout:active dx-icon::part(svg) {
|
|
16
50
|
transform: translate(var(--dx-g-spacing-2xs));
|
|
17
51
|
}
|
|
52
|
+
|
|
53
|
+
@media screen and (max-width: 1024px) {
|
|
54
|
+
.dx-text-heading-3 {
|
|
55
|
+
margin-bottom: var(--dx-g-spacing-xl);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -6,8 +6,6 @@ import { track } from "dxUtils/analytics";
|
|
|
6
6
|
export const ANALYTICS_EVENT_NAME = "custEv_ctaLinkClick";
|
|
7
7
|
|
|
8
8
|
export default class CardCallout extends LightningElement {
|
|
9
|
-
static renderMode = "light";
|
|
10
|
-
|
|
11
9
|
@api backgroundColor: string = "indigo-vibrant-40";
|
|
12
10
|
@api color: string = "white";
|
|
13
11
|
@api href!: string;
|
|
@@ -2,7 +2,6 @@ import { LightningElement, api } from "lwc";
|
|
|
2
2
|
import cx from "classnames";
|
|
3
3
|
|
|
4
4
|
export default class CardPodcastEpisode extends LightningElement {
|
|
5
|
-
static renderMode = "light";
|
|
6
5
|
@api body!: string;
|
|
7
6
|
@api datetime!: string;
|
|
8
7
|
@api dateTime?: string | null = null;
|
|
@@ -22,7 +21,6 @@ export default class CardPodcastEpisode extends LightningElement {
|
|
|
22
21
|
private get className() {
|
|
23
22
|
return cx(
|
|
24
23
|
"card-podcast-episode",
|
|
25
|
-
"base-card",
|
|
26
24
|
"dx-card-base_borderless",
|
|
27
25
|
this.isLinkHovered && "dx-card-base_link-hovered"
|
|
28
26
|
);
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
@import "dxHelpers/reset";
|
|
2
|
+
@import "dxHelpers/text";
|
|
3
|
+
|
|
4
|
+
:host {
|
|
2
5
|
--dx-c-card-title-color: var(--dx-g-text-heading-color);
|
|
3
6
|
--dx-c-card-title-font-size: var(--dx-g-text-xl);
|
|
4
7
|
--dx-c-card-title-line-height: 28px;
|
|
@@ -6,7 +9,21 @@ dx-card-title {
|
|
|
6
9
|
--dx-c-card-title-icon-size: 22px;
|
|
7
10
|
}
|
|
8
11
|
|
|
9
|
-
dx-
|
|
12
|
+
h3.dx-text-heading-4 {
|
|
13
|
+
color: var(--dx-c-card-title-color);
|
|
14
|
+
transition: var(--dx-g-transition-hue-1x);
|
|
15
|
+
font-size: var(--dx-c-card-title-font-size);
|
|
16
|
+
line-height: var(--dx-c-card-title-line-height);
|
|
17
|
+
letter-spacing: var(--dx-c-card-title-letter-spacing);
|
|
18
|
+
word-break: break-word;
|
|
19
|
+
hyphens: auto;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.nowrap {
|
|
23
|
+
white-space: nowrap;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
dx-icon {
|
|
10
27
|
--dx-c-icon-size: var(--dx-c-card-title-icon-size);
|
|
11
28
|
|
|
12
29
|
display: inline-flex;
|
|
@@ -15,6 +32,11 @@ dx-card-title dx-icon {
|
|
|
15
32
|
}
|
|
16
33
|
|
|
17
34
|
@media screen and (max-width: 1024px) {
|
|
35
|
+
.dx-text-heading-4 {
|
|
36
|
+
font-size: 20px;
|
|
37
|
+
line-height: 24px;
|
|
38
|
+
}
|
|
39
|
+
|
|
18
40
|
dx-icon {
|
|
19
41
|
--dx-c-card-title-icon-size: 20px;
|
|
20
42
|
}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
<template
|
|
1
|
+
<template>
|
|
2
2
|
<h3 class="dx-text-heading-4">
|
|
3
3
|
<a if:true={href} href={href} target={target}>
|
|
4
4
|
{titleToWrap}
|
|
5
|
-
<template if:true={needsSpace}>
|
|
6
|
-
 
|
|
7
|
-
</template>
|
|
5
|
+
<template if:true={needsSpace}> </template>
|
|
8
6
|
<span class="nowrap" if:true={isExternal}>
|
|
9
7
|
{titleNoWrap}
|
|
10
8
|
<dx-icon symbol="new_window" size="override"></dx-icon>
|
|
@@ -12,9 +10,7 @@
|
|
|
12
10
|
</a>
|
|
13
11
|
<template if:false={href}>
|
|
14
12
|
{titleToWrap}
|
|
15
|
-
<template if:true={needsSpace}>
|
|
16
|
-
 
|
|
17
|
-
</template>
|
|
13
|
+
<template if:true={needsSpace}> </template>
|
|
18
14
|
<span class="nowrap" if:true={isExternal}>
|
|
19
15
|
{titleNoWrap}
|
|
20
16
|
<dx-icon symbol="new_window" size="override"></dx-icon>
|
|
@@ -1,12 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
--dx-c-button-primary-color-hover: var(--button-primary-color-hover);
|
|
4
|
-
--border-color: var(--button-primary-color);
|
|
5
|
-
|
|
6
|
-
border-bottom: 1px dashed var(--border-color);
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
.menu-nested::part(content) {
|
|
1
|
+
.menu-nested::part(content),
|
|
2
|
+
.menu-nested .popover.popover-content {
|
|
10
3
|
padding-top: var(--dx-g-spacing-sm);
|
|
11
4
|
width: 354px;
|
|
12
5
|
}
|
|
@@ -17,7 +10,8 @@ dx-dropdown dx-button {
|
|
|
17
10
|
flex-wrap: nowrap;
|
|
18
11
|
}
|
|
19
12
|
|
|
20
|
-
.menu-hidden::part(content)
|
|
13
|
+
.menu-hidden::part(content),
|
|
14
|
+
.menu-hidden .popover.popover-content {
|
|
21
15
|
display: none;
|
|
22
16
|
}
|
|
23
17
|
|
|
@@ -30,7 +24,8 @@ dx-dropdown dx-button {
|
|
|
30
24
|
}
|
|
31
25
|
|
|
32
26
|
@media screen and (min-width: 1000px) {
|
|
33
|
-
.menu-nested-2-col::part(content)
|
|
27
|
+
.menu-nested-2-col::part(content),
|
|
28
|
+
.menu-nested-2-col .popover.popover-content {
|
|
34
29
|
width: 592px;
|
|
35
30
|
}
|
|
36
31
|
|
|
@@ -6,9 +6,7 @@
|
|
|
6
6
|
:host {
|
|
7
7
|
width: 100%;
|
|
8
8
|
|
|
9
|
-
--dx-c-featured-content-header-background-color
|
|
10
|
-
--dx-g-indigo-vibrant-90
|
|
11
|
-
);
|
|
9
|
+
/* --dx-c-featured-content-header-background-color */
|
|
12
10
|
--dx-c-tree-graphic-color: var(--dx-g-indigo-vibrant-40);
|
|
13
11
|
--dx-c-featured-content-header-padding-horizontal: var(
|
|
14
12
|
--dx-g-page-padding-horizontal
|
|
@@ -42,7 +40,10 @@
|
|
|
42
40
|
position: relative;
|
|
43
41
|
padding: var(--dx-c-featured-content-header-padding-vertical)
|
|
44
42
|
var(--dx-c-featured-content-header-padding-horizontal);
|
|
45
|
-
background-color: var(
|
|
43
|
+
background-color: var(
|
|
44
|
+
--dx-c-featured-content-header-background-color,
|
|
45
|
+
--dx-g-indigo-vibrant-90
|
|
46
|
+
);
|
|
46
47
|
}
|
|
47
48
|
|
|
48
49
|
/* LAYOUTS */
|
|
@@ -380,10 +381,9 @@ dx-image-and-label {
|
|
|
380
381
|
|
|
381
382
|
/* DARK VARIANT */
|
|
382
383
|
.variant_dark {
|
|
383
|
-
background:
|
|
384
|
-
-
|
|
385
|
-
rgb(40, 23, 153) 0%,
|
|
386
|
-
rgb(46, 43, 182) 100%
|
|
384
|
+
background: var(
|
|
385
|
+
--dx-c-featured-content-header-background-color,
|
|
386
|
+
linear-gradient(-180deg, rgb(40, 23, 153) 0%, rgb(46, 43, 182) 100%)
|
|
387
387
|
);
|
|
388
388
|
}
|
|
389
389
|
|
|
@@ -1,12 +1 @@
|
|
|
1
1
|
@import "dxHelpers/commonHeader";
|
|
2
|
-
@import "dxHelpers/text";
|
|
3
|
-
@import "dxHelpers/reset";
|
|
4
|
-
@import "dxHelpers/card";
|
|
5
|
-
|
|
6
|
-
dx-header {
|
|
7
|
-
/* TODO: these variables definitely aren't getting picked up correctly */
|
|
8
|
-
z-index: var(--dx-g-z-index-500);
|
|
9
|
-
|
|
10
|
-
--dx-c-header-search-width: 316px;
|
|
11
|
-
--dx-g-text-xs: 14px;
|
|
12
|
-
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
@import "dxHelpers/reset";
|
|
2
|
+
|
|
3
|
+
:host {
|
|
2
4
|
--dx-c-color-background: var(--dx-g-brand-default-color-background);
|
|
3
5
|
--dx-c-button-color-background-inactive: var(
|
|
4
6
|
--dx-g-brand-default-button-color-background-inactive
|
|
@@ -14,3 +16,146 @@ header-mobile-nav-menu {
|
|
|
14
16
|
);
|
|
15
17
|
--dx-c-color-border-2: var(--dx-g-brand-default-color-border-2);
|
|
16
18
|
}
|
|
19
|
+
|
|
20
|
+
.nav-menu {
|
|
21
|
+
position: absolute;
|
|
22
|
+
top: 100%;
|
|
23
|
+
left: 0;
|
|
24
|
+
width: 100%;
|
|
25
|
+
max-height: 56vh;
|
|
26
|
+
overflow-y: auto;
|
|
27
|
+
padding: 0 var(--dx-g-spacing-sm) var(--dx-g-spacing-sm)
|
|
28
|
+
var(--dx-g-spacing-sm);
|
|
29
|
+
background: var(--dx-c-color-background);
|
|
30
|
+
box-shadow: 0 20px 28px 0 rgba(0, 20, 45, 0.08);
|
|
31
|
+
transform: translateY(0);
|
|
32
|
+
border-top: 1px solid transparent;
|
|
33
|
+
transition: var(--dx-g-transition-transform-2x),
|
|
34
|
+
var(--dx-g-transition-hue-1x);
|
|
35
|
+
z-index: 1000;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.nav-menu.has-scrollshadow {
|
|
39
|
+
border-color: var(--dx-c-color-border-2);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.nav-menu.state-closed {
|
|
43
|
+
opacity: 0;
|
|
44
|
+
visibility: hidden;
|
|
45
|
+
transform: translateY(-16px);
|
|
46
|
+
pointer-events: none;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.nav-menu ul {
|
|
50
|
+
display: flex;
|
|
51
|
+
flex-direction: column;
|
|
52
|
+
width: 100%;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.nav-menu_item {
|
|
56
|
+
display: flex;
|
|
57
|
+
flex-direction: column;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.nav-menu_item,
|
|
61
|
+
.nav-menu_item_cta-main {
|
|
62
|
+
transition: var(--dx-g-transition-hue-1x);
|
|
63
|
+
border-radius: var(--dx-g-spacing-xs);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.nav-menu_item_cta-main {
|
|
67
|
+
justify-content: space-between;
|
|
68
|
+
font-family: var(--dx-g-font-display);
|
|
69
|
+
font-size: var(--dx-g-text-base);
|
|
70
|
+
color: var(--dx-g-blue-vibrant-20);
|
|
71
|
+
line-height: 20px;
|
|
72
|
+
padding: var(--dx-g-spacing-sm) var(--dx-g-spacing-md);
|
|
73
|
+
width: 100%;
|
|
74
|
+
display: flex;
|
|
75
|
+
align-items: center;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.nav-menu ul > .nav-menu_item:not(:last-of-type) {
|
|
79
|
+
margin-bottom: var(--dx-g-spacing-xs);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.nav-menu_item.state-open {
|
|
83
|
+
background: var(--dx-c-button-color-background-inactive);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.nav-menu_item_cta-main:not(.state-active):hover {
|
|
87
|
+
background: var(--dx-c-button-color-background-inactive);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.nav-menu_item.state-open .nav-menu_item_cta-main:hover {
|
|
91
|
+
background: var(--dx-c-button-color-background-inactive-hover);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.nav-menu_item.state-open .chevrondown {
|
|
95
|
+
transform: rotateX(180deg);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.nav-menu_item_cta-options {
|
|
99
|
+
position: relative;
|
|
100
|
+
display: none;
|
|
101
|
+
flex-direction: column;
|
|
102
|
+
width: 100%;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.nav-menu_item.state-open > .nav-menu_item_cta-options {
|
|
106
|
+
display: flex;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.nav-menu_item_cta {
|
|
110
|
+
height: var(--dx-g-spacing-3xl);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.nav-menu_item_cta-main.state-active {
|
|
114
|
+
background: var(--dx-c-button-color-background-active);
|
|
115
|
+
color: var(--dx-c-color);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.nav-menu_item_cta-main > span {
|
|
119
|
+
transform: translateY(3px); /* ghost padding */
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.nav-menu_item_cta-sub {
|
|
123
|
+
--dx-c-button-secondary-color-hover: var(
|
|
124
|
+
--dx-c-button-color-background-inactive-hover
|
|
125
|
+
);
|
|
126
|
+
|
|
127
|
+
font-size: var(--dx-g-text-sm);
|
|
128
|
+
width: 100%;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.nav-menu_item_cta-sub::part(container) {
|
|
132
|
+
justify-content: flex-start;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.nav-menu_item_cta-sub.state-active {
|
|
136
|
+
text-decoration: underline;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.nav-menu_item > .nav-menu_item_cta-options:not(:first-of-type) {
|
|
140
|
+
padding-top: var(--dx-g-spacing-xs);
|
|
141
|
+
margin-top: var(--dx-g-spacing-xs);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.nav-menu_item > .nav-menu_item_cta-options:not(:first-of-type)::after {
|
|
145
|
+
content: "";
|
|
146
|
+
position: absolute;
|
|
147
|
+
top: 0;
|
|
148
|
+
left: var(--dx-g-spacing-md);
|
|
149
|
+
width: calc(100% - var(--dx-g-spacing-xl));
|
|
150
|
+
height: 1px;
|
|
151
|
+
background: var(--dx-c-color-border-2);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.backdrop {
|
|
155
|
+
position: fixed;
|
|
156
|
+
top: 0;
|
|
157
|
+
left: 0;
|
|
158
|
+
height: 100vh;
|
|
159
|
+
width: 100vw;
|
|
160
|
+
z-index: -1;
|
|
161
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<template
|
|
1
|
+
<template>
|
|
2
2
|
<nav
|
|
3
3
|
aria-label="Navigation Menu"
|
|
4
4
|
class={className}
|
|
@@ -6,10 +6,7 @@
|
|
|
6
6
|
onscroll={onScroll}
|
|
7
7
|
>
|
|
8
8
|
<ul>
|
|
9
|
-
<template
|
|
10
|
-
for:each={navItems}
|
|
11
|
-
for:item="navItem"
|
|
12
|
-
>
|
|
9
|
+
<template for:each={navItems} for:item="navItem">
|
|
13
10
|
<li
|
|
14
11
|
class={navItem.liClassName}
|
|
15
12
|
key={navItem.id}
|
|
@@ -42,17 +39,12 @@
|
|
|
42
39
|
></dx-icon>
|
|
43
40
|
</button>
|
|
44
41
|
<template if:true={navItem.options}>
|
|
45
|
-
<template
|
|
46
|
-
for:each={navItem.options}
|
|
47
|
-
for:item="options"
|
|
48
|
-
>
|
|
42
|
+
<template for:each={navItem.options} for:item="options">
|
|
49
43
|
<div
|
|
50
44
|
class="nav-menu_item_cta-options"
|
|
51
45
|
key={options.id}
|
|
52
46
|
>
|
|
53
|
-
<template
|
|
54
|
-
if:true={options.options}
|
|
55
|
-
>
|
|
47
|
+
<template if:true={options.options}>
|
|
56
48
|
<template
|
|
57
49
|
for:each={options.options}
|
|
58
50
|
for:item="navSubItem"
|