@salesforcedevs/dx-components 1.3.13 → 1.3.15

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/lwc.config.json CHANGED
@@ -4,6 +4,7 @@
4
4
  { "npm": "@salesforcedevs/dw-components" }
5
5
  ],
6
6
  "expose": [
7
+ "dx/banner",
7
8
  "dx/brandThemeProvider",
8
9
  "dx/breadcrumbs",
9
10
  "dx/button",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforcedevs/dx-components",
3
- "version": "1.3.13",
3
+ "version": "1.3.15",
4
4
  "description": "DX Lightning web components",
5
5
  "license": "MIT",
6
6
  "engines": {
@@ -36,5 +36,5 @@
36
36
  "@types/vimeo__player": "^2.16.2",
37
37
  "eventsourcemock": "^2.0.0"
38
38
  },
39
- "gitHead": "94b6a0ecb51f4bc853ec3083419de8256db2bd6a"
39
+ "gitHead": "4f666690d99a33edd60c92c55d84732b7feadb07"
40
40
  }
@@ -0,0 +1,46 @@
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
+
33
+ .container a {
34
+ text-decoration: underline;
35
+ transition: var(--dx-g-transition-hue-1x);
36
+ margin-right: 4px;
37
+ }
38
+
39
+ .container a:hover {
40
+ opacity: 0.8;
41
+ }
42
+
43
+ .container dx-icon {
44
+ margin-right: var(--dx-g-spacing-sm);
45
+ margin-top: var(--dx-g-spacing-2xs);
46
+ }
@@ -0,0 +1,13 @@
1
+ <template>
2
+ <div class="container">
3
+ <div class="container_inner dx-text-body-4">
4
+ <dx-icon symbol="announcement"></dx-icon>
5
+ <!--
6
+ NOTE: Here we are rendering mark up using lwc:dom & innerHTML
7
+ option instead of slots because the html markup will come as a
8
+ property to the component from a configuration
9
+ -->
10
+ <div lwc:dom="manual" class="info-container"></div>
11
+ </div>
12
+ </div>
13
+ </template>
@@ -0,0 +1,12 @@
1
+ import { LightningElement, api } from "lwc";
2
+ import { setContainerInnerHtml } from "dxUtils/lwc";
3
+
4
+ export default class Banner extends LightningElement {
5
+ @api bannerMarkup =
6
+ '<span><a href="https://forms.gle/TdSyKFPHXoBx7seM9" target="blank">Share your feedback</a>about our new site.</span>';
7
+
8
+ renderedCallback() {
9
+ const container = this.template.querySelector(".info-container");
10
+ setContainerInnerHtml(container, this.bannerMarkup);
11
+ }
12
+ }
@@ -2,6 +2,10 @@
2
2
  <dx-brand-theme-provider brand={brand}>
3
3
  <header class={className}>
4
4
  <dx-skip-nav-link></dx-skip-nav-link>
5
+ <dx-banner
6
+ if:true={showBanner}
7
+ banner-markup={bannerMarkup}
8
+ ></dx-banner>
5
9
  <div class="header_l1">
6
10
  <dx-logo label={title}></dx-logo>
7
11
  <div class="header-cta-container">
@@ -49,7 +49,6 @@ dx-button::before {
49
49
  content: "";
50
50
  border-bottom: 2px solid var(--dx-g-gray-95);
51
51
  flex: 1 1;
52
- transform: translateY(-2px); /* offset for display font ghost padding */
53
52
  margin: auto;
54
53
  margin-right: var(--dx-g-spacing-md);
55
54
  }
@@ -1,7 +1,7 @@
1
1
  import { LightningElement, api } from "lwc";
2
2
  import cx from "classnames";
3
3
  import { Brand, OptionWithLink, OptionWithNested } from "typings/custom";
4
- import { toJson } from "dxUtils/normalizers";
4
+ import { toJson, normalizeBoolean } from "dxUtils/normalizers";
5
5
  import { track } from "dxUtils/analytics";
6
6
 
7
7
  const VALID_BRANDS = [
@@ -41,6 +41,8 @@ export abstract class HeaderBase extends LightningElement {
41
41
  @api subtitle!: string;
42
42
  @api title: string = "Salesforce";
43
43
  @api version?: string | null = null;
44
+ @api bannerMarkup =
45
+ '<span><a href="https://forms.gle/oWYTbH9RvGyt9uxx7" target="blank">Share your feedback</a>about our new site.</span>';
44
46
 
45
47
  @api
46
48
  get navItems() {
@@ -59,6 +61,15 @@ export abstract class HeaderBase extends LightningElement {
59
61
  this._versions = toJson(value);
60
62
  }
61
63
 
64
+ @api
65
+ get showBanner() {
66
+ return this._showBanner && this.bannerMarkup;
67
+ }
68
+
69
+ set showBanner(value) {
70
+ this._showBanner = normalizeBoolean(value);
71
+ }
72
+
62
73
  private _navItems!: OptionWithNested[];
63
74
  private _versions!: OptionWithLink[];
64
75
  private matchMedia!: MediaQueryList;
@@ -67,6 +78,7 @@ export abstract class HeaderBase extends LightningElement {
67
78
  private showMobileNavMenu: boolean = false;
68
79
  private showNavScrollShadow: boolean = false;
69
80
  protected isSearchOpen: boolean = false;
81
+ private _showBanner?: boolean = false;
70
82
 
71
83
  get url() {
72
84
  return this.href ? new URL(this.href!) : window.location;