@salesforcedevs/dx-components 1.3.384-alpha2 → 1.3.384-alpha4

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-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@salesforcedevs/dx-components",
3
- "version": "1.3.384-alpha",
3
+ "version": "1.3.384-alpha2",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@salesforcedevs/dx-components",
9
- "version": "1.3.384-alpha",
9
+ "version": "1.3.384-alpha2",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "@coveo/headless": "2.32.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforcedevs/dx-components",
3
- "version": "1.3.384-alpha2",
3
+ "version": "1.3.384-alpha4",
4
4
  "description": "DX Lightning web components",
5
5
  "license": "MIT",
6
6
  "engines": {
@@ -6,6 +6,11 @@
6
6
  --dx-c-track-thumb-size: 10px;
7
7
  --dx-c-threedot-menu-item-padding: 14px;
8
8
  --dx-c-audio-player-padding: 6px 13px 13px;
9
+ --dx-c-audio-background-color: var(--dx-g-audio-background-color, #e0e5f8);
10
+ --dx-c-audio-inner-div-background-color: var(
11
+ --dx-g-audio-inner-div-background-color,
12
+ #e0e5f8
13
+ );
9
14
  }
10
15
 
11
16
  dx-icon {
@@ -14,7 +19,7 @@ dx-icon {
14
19
 
15
20
  /* Outermost container/border */
16
21
  .custom-audio-player {
17
- background-color: var(--dx-g-audio-background-color, #e0e5f8);
22
+ background-color: var(--dx-c-audio-background-color);
18
23
  border-radius: 12px;
19
24
  padding: var(--dx-c-audio-player-padding);
20
25
  }
@@ -45,7 +50,7 @@ dx-icon {
45
50
  --dx-c-popover-padding: 0;
46
51
 
47
52
  align-items: center;
48
- background-color: var(--dx-g-audio-inner-div-background-color, #fff);
53
+ background-color: var(--dx-c-audio-inner-div-background-color, #fff);
49
54
  border-radius: 5px;
50
55
  display: flex;
51
56
  margin-top: 8px;
@@ -31,6 +31,11 @@ pre {
31
31
  background-color: var(--dx-g-gray-90);
32
32
  }
33
33
 
34
+ div.dx-theme-dark {
35
+ border: var(--dx-g-dark-mode-toggle-button-border);
36
+ border-radius: var(--dx-code-block-toolbar-border-radius, 0.3em);
37
+ }
38
+
34
39
  .dx-theme-dark .toolbar {
35
40
  background-color: var(--dx-g-blue-natural-20);
36
41
  }
@@ -65,7 +70,8 @@ pre {
65
70
  }
66
71
 
67
72
  .toolbar-item {
68
- display: inline-block;
73
+ display: flex;
74
+ align-items: center;
69
75
  }
70
76
 
71
77
  .toolbar-item:first-child {
@@ -127,3 +133,7 @@ pre[class*="language-"].line-numbers {
127
133
  display: none;
128
134
  }
129
135
  }
136
+
137
+ dx-button {
138
+ --dx-g-button-icon-color: var(--dx-g-cloud-blue-vibrant-50);
139
+ }
@@ -4,13 +4,6 @@ import cx from "classnames";
4
4
  import { track as gtmTrack } from "dxUtils/analytics";
5
5
  import prism from "dxUtils/prismjs";
6
6
  import { ampscript, sqlDocsTemplate } from "./customLanguages";
7
- import {
8
- DARK_MODE_THEMES,
9
- DARKMODE_TOGGLE_EVENT_NAME,
10
- dispatchDarkModeToggleEvent,
11
- getLocalStorageDarkModeSetting,
12
- setLocalStorageDarkModeSetting
13
- } from "dx/darkModeManager";
14
7
 
15
8
  /*
16
9
  Here we create custom syntax highlighting rules for proprietary languages
@@ -44,6 +37,8 @@ const preTagRegexp: RegExp = /^<pre.*?>(.*)<\/pre>$/is;
44
37
 
45
38
  export const LIGHT = "light";
46
39
  export const DARK = "dark";
40
+ export const EVENT_NAME = "dx-codeblock-theme";
41
+ const THEMES = [LIGHT, DARK];
47
42
 
48
43
  export default class CodeBlock extends LightningElement {
49
44
  @api defaultTheme: CodeBlockTheme = LIGHT;
@@ -99,18 +94,18 @@ export default class CodeBlock extends LightningElement {
99
94
  ];
100
95
 
101
96
  private initializeDarkMode() {
102
- window.addEventListener(DARKMODE_TOGGLE_EVENT_NAME, this.toggleTheme);
103
- const darkModeSetting =
104
- getLocalStorageDarkModeSetting() as CodeBlockTheme;
105
- if (DARK_MODE_THEMES.includes(darkModeSetting)) {
97
+ window.addEventListener(EVENT_NAME, this.toggleTheme);
98
+ const darkModeSetting = localStorage.getItem(
99
+ EVENT_NAME
100
+ ) as CodeBlockTheme;
101
+ if (THEMES.includes(darkModeSetting)) {
106
102
  this.theme = darkModeSetting;
103
+ } else {
104
+ this.theme = this.defaultTheme;
107
105
  }
108
106
  }
109
107
 
110
108
  connectedCallback() {
111
- if (!this.theme) {
112
- this.theme = this.defaultTheme;
113
- }
114
109
  this.initializeDarkMode();
115
110
  }
116
111
 
@@ -278,12 +273,12 @@ export default class CodeBlock extends LightningElement {
278
273
  element_title: this.updateThemeBtnText,
279
274
  content_category: "code block"
280
275
  });
281
- dispatchDarkModeToggleEvent();
276
+ window.dispatchEvent(new Event(EVENT_NAME));
282
277
  }
283
278
 
284
279
  private toggleTheme = () => {
285
280
  this.theme = this.theme === DARK ? LIGHT : DARK;
286
- setLocalStorageDarkModeSetting(this.theme);
281
+ localStorage.setItem(EVENT_NAME, this.theme);
287
282
  };
288
283
 
289
284
  renderedCallback() {
@@ -301,9 +296,6 @@ export default class CodeBlock extends LightningElement {
301
296
  }
302
297
 
303
298
  disconnectedCallback(): void {
304
- window.removeEventListener(
305
- DARKMODE_TOGGLE_EVENT_NAME,
306
- this.toggleTheme
307
- );
299
+ window.removeEventListener(EVENT_NAME, this.toggleTheme);
308
300
  }
309
301
  }
@@ -30,6 +30,10 @@ declare module globalThis {
30
30
  export const DARK_MODE_THEMES = ["dark", "light"];
31
31
  export const DARKMODE_TOGGLE_EVENT_NAME = "UPDATE_DARK_MODE";
32
32
 
33
+ export const isDarkModeEnabled = () => {
34
+ return process.env.DARK_MODE;
35
+ };
36
+
33
37
  export const dispatchDarkModeToggleEvent = () => {
34
38
  window.dispatchEvent(new Event(DARKMODE_TOGGLE_EVENT_NAME));
35
39
  };
@@ -44,7 +48,10 @@ export const setLocalStorageDarkModeSetting = (theme: string) => {
44
48
 
45
49
  export default class DarkModeManager extends LightningElement {
46
50
  renderedCallback(): void {
47
- if (!globalThis.singletonDarkModeManagerRendered) {
51
+ if (
52
+ isDarkModeEnabled() &&
53
+ !globalThis.singletonDarkModeManagerRendered
54
+ ) {
48
55
  const theme = getLocalStorageDarkModeSetting();
49
56
  if (theme) {
50
57
  if (DARK_MODE_THEMES.includes(theme)) {
@@ -60,9 +67,11 @@ export default class DarkModeManager extends LightningElement {
60
67
  }
61
68
 
62
69
  disconnectedCallback(): void {
63
- window.removeEventListener(
64
- DARKMODE_TOGGLE_EVENT_NAME,
65
- onDarkModeToggle
66
- );
70
+ if (isDarkModeEnabled()) {
71
+ window.removeEventListener(
72
+ DARKMODE_TOGGLE_EVENT_NAME,
73
+ onDarkModeToggle
74
+ );
75
+ }
67
76
  }
68
77
  }
@@ -3,8 +3,7 @@ import optimizelySdk from "@optimizely/optimizely-sdk";
3
3
 
4
4
  // This is needed to specify user context (such as logged in, admin, ...etc).
5
5
  // leave this as hard-coded for now until we create audiences in Optimizely.
6
- const userId = "salesforce-sf";
7
- const LOCAL_ENVIRONMENT_SDK_KEY = "Nnshyv1nTg7DWexu5rEeT";
6
+ const userId = "user123";
8
7
 
9
8
  export default class FeatureFlag extends LightningElement {
10
9
  @api flag!: string;
@@ -16,19 +15,8 @@ export default class FeatureFlag extends LightningElement {
16
15
  }
17
16
 
18
17
  connectedCallback(): void {
19
- const sdkKey = process.env.OPTIMIZELY_SDK_KEY;
20
- const datafileAccessToken =
21
- process.env.OPTIMIZELY_DATAFILE_ACCESS_TOKEN;
22
- const datafileOptions =
23
- sdkKey && datafileAccessToken
24
- ? {
25
- urlTemplate: `https://config.optimizely.com/datafiles/auth/${sdkKey}.json`,
26
- datafileAccessToken: datafileAccessToken
27
- }
28
- : undefined;
29
18
  this.optimizelyInstance = optimizelySdk.createInstance({
30
- sdkKey: sdkKey || LOCAL_ENVIRONMENT_SDK_KEY,
31
- datafileOptions
19
+ sdkKey: process.env.OPTIMIZELY_SDK_KEY
32
20
  });
33
21
  }
34
22
 
@@ -46,7 +46,7 @@
46
46
 
47
47
  @media screen and (max-width: 500px) {
48
48
  .title-bar {
49
- padding: 0 40px;
49
+ padding: 0 30px;
50
50
  height: 125px;
51
51
  display: block;
52
52
  align-items: center;
@@ -13,14 +13,14 @@
13
13
  <div>
14
14
  <slot name="language-selector"></slot>
15
15
  </div>
16
- <dx-feature-flag flag="dark-mode">
16
+ <template lwc:if={isDarkModeEnabled}>
17
17
  <div
18
18
  class="dark-mode-button"
19
19
  onclick={onDarkModeButtonClick}
20
20
  >
21
21
  <div class="dark-mode-icon"></div>
22
22
  </div>
23
- </dx-feature-flag>
23
+ </template>
24
24
  </div>
25
25
  </div>
26
26
  <div class="container-layout">
@@ -5,7 +5,10 @@ import { toJson } from "dxUtils/normalizers";
5
5
  import { track } from "dxUtils/analytics";
6
6
  import svgs from "./svgs";
7
7
  import ImageAndLabel from "dx/imageAndLabel";
8
- import { dispatchDarkModeToggleEvent } from "dx/darkModeManager";
8
+ import {
9
+ dispatchDarkModeToggleEvent,
10
+ isDarkModeEnabled
11
+ } from "dx/darkModeManager";
9
12
 
10
13
  export default class FeaturedContentHeader extends LightningElement {
11
14
  @api label?: string | null = null;
@@ -90,6 +93,10 @@ export default class FeaturedContentHeader extends LightningElement {
90
93
  );
91
94
  }
92
95
 
96
+ private get isDarkModeEnabled() {
97
+ return isDarkModeEnabled();
98
+ }
99
+
93
100
  private get hasPlainImage() {
94
101
  return this.imgSrc && !this.href;
95
102
  }