@salesforcedevs/dx-components 0.56.1 → 0.56.2-example
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 +18 -3
- package/package.json +18 -6
- package/src/assets/icons/salesforcebrand-sprite/svg/symbols.svg +492 -111
- package/src/assets/svg/big-moon.svg +1 -0
- package/src/assets/svg/blue-circle.svg +3 -0
- package/src/assets/svg/login-widget-bg.png +0 -0
- package/src/assets/svg/subscribe-background-left.svg +14 -0
- package/src/assets/svg/subscribe-background-right.svg +11 -0
- package/src/assets/svg/trial-left.svg +6 -0
- package/src/assets/svg/trial-right.svg +26 -0
- package/src/modules/dx/banner/banner (1).ts +12 -0
- package/src/modules/dx/banner/banner.ts +3 -5
- package/src/modules/dx/button/button.css +10 -9
- package/src/modules/dx/buttonToggle/buttonToggle.css +50 -0
- package/src/modules/dx/buttonToggle/buttonToggle.html +17 -0
- package/src/modules/dx/buttonToggle/buttonToggle.ts +75 -0
- package/src/modules/dx/cardCallout/cardCallout.ts +8 -4
- package/src/modules/dx/cardContent/cardContent.html +4 -1
- package/src/modules/dx/cardDocs/cardDocs.html +4 -1
- package/src/modules/dx/cardEvent/cardEvent.html +1 -2
- package/src/modules/dx/cardEvent/cardEvent.ts +1 -1
- package/src/modules/dx/cardExpanded/cardExpanded.html +1 -6
- package/src/modules/dx/cardExpanded/cardExpanded.ts +2 -2
- package/src/modules/dx/cardMinimal/cardMinimal.html +1 -6
- package/src/modules/dx/cardTrial/cardTrial.css +63 -4
- package/src/modules/dx/cardTrial/cardTrial.html +96 -12
- package/src/modules/dx/cardTrial/cardTrial.ts +70 -2
- package/src/modules/dx/cardTrialExpanded/cardTrialExpanded.css +149 -0
- package/src/modules/dx/cardTrialExpanded/cardTrialExpanded.html +85 -0
- package/src/modules/dx/cardTrialExpanded/cardTrialExpanded.ts +67 -0
- package/src/modules/dx/checkbox/checkbox.css +4 -0
- package/src/modules/dx/codeBlock/codeBlock.ts +5 -1
- package/src/modules/dx/dropdown/dropdown.html +5 -1
- package/src/modules/dx/dropdown/dropdown.ts +13 -3
- package/src/modules/dx/dropdownOption/dropdownOption.css +119 -1
- package/src/modules/dx/dropdownOption/dropdownOption.html +4 -0
- package/src/modules/dx/dropdownOption/dropdownOption.ts +20 -7
- package/src/modules/dx/feature/feature.ts +3 -3
- package/src/modules/dx/featuredContentHeader/featuredContentHeader.css +84 -18
- package/src/modules/dx/featuredContentHeader/featuredContentHeader.html +109 -99
- package/src/modules/dx/featuredContentHeader/featuredContentHeader.ts +27 -7
- package/src/modules/dx/featuresList/featuresList.css +1 -1
- package/src/modules/dx/filterMenu/filterMenu.css +26 -8
- package/src/modules/dx/filterMenu/filterMenu.html +24 -8
- package/src/modules/dx/filterMenu/filterMenu.ts +1 -0
- package/src/modules/dx/footer/footer.css +1 -1
- package/src/modules/dx/footer/footer.html +25 -20
- package/src/modules/dx/footer/footer.ts +19 -15
- package/src/modules/dx/footer/links.ts +115 -39
- package/src/modules/dx/formattedDateTime/formattedDateTime.ts +8 -3
- package/src/modules/dx/header/header.html +10 -3
- package/src/modules/dx/header/header.ts +4 -0
- package/src/modules/dx/headerMobileNavMenu/headerMobileNavMenu.css +1 -0
- package/src/modules/dx/headerSearch/headerSearch.html +0 -1
- package/src/modules/dx/hr/hr.css +2 -4
- package/src/modules/dx/iconBadge/iconBadge.css +12 -0
- package/src/modules/dx/iconBadge/iconBadge.html +2 -7
- package/src/modules/dx/iconBadge/iconBadge.ts +15 -5
- package/src/modules/dx/imageAndLabel/imageAndLabel.css +0 -1
- package/src/modules/dx/input/input.css +17 -1
- package/src/modules/dx/input/input.html +5 -1
- package/src/modules/dx/input/input.ts +8 -0
- package/src/modules/dx/interactiveImage/interactiveImage.css +59 -0
- package/src/modules/dx/interactiveImage/interactiveImage.html +32 -0
- package/src/modules/dx/interactiveImage/interactiveImage.ts +71 -0
- package/src/modules/dx/logo/logo.css +0 -1
- package/src/modules/dx/logo/logo.ts +1 -1
- package/src/modules/dx/metadataBadge/metadataBadge.css +41 -0
- package/src/modules/dx/metadataBadge/metadataBadge.html +5 -0
- package/src/modules/dx/metadataBadge/metadataBadge.ts +24 -0
- package/src/modules/dx/modal/modal.css +40 -0
- package/src/modules/dx/modal/modal.html +10 -0
- package/src/modules/dx/modal/modal.ts +50 -0
- package/src/modules/dx/modalDrawer/modalDrawer.html +2 -2
- package/src/modules/dx/modalDrawer/modalDrawer.ts +7 -1
- package/src/modules/dx/pagination/pagination.css +1 -2
- package/src/modules/dx/popover/popover.css +28 -3
- package/src/modules/dx/popover/popover.html +1 -0
- package/src/modules/dx/popover/popover.ts +83 -44
- package/src/modules/dx/searchResults/coveo.css +18989 -0
- package/src/modules/dx/searchResults/searchResults.css +387 -0
- package/src/modules/dx/searchResults/searchResults.html +104 -0
- package/src/modules/dx/searchResults/searchResults.ts +187 -0
- package/src/modules/dx/section/section.css +10 -1
- package/src/modules/dx/section/section.ts +1 -1
- package/src/modules/dx/select/select.css +7 -3
- package/src/modules/dx/sidebar/sidebar.css +1 -145
- package/src/modules/dx/sidebar/sidebar.ts +2 -0
- package/src/modules/dx/sidebarOld/sidebarOld.css +1 -145
- package/src/modules/dx/sidebarOld/sidebarOld.ts +2 -0
- package/src/modules/dx/sidebarSearch/sidebarSearch.ts +23 -3
- package/src/modules/dx/sidebarSearchResult/sidebarSearchResult.css +1 -1
- package/src/modules/dx/tab/tab.css +0 -4
- package/src/modules/dx/tabPanel/tabPanel.css +20 -0
- package/src/modules/dx/tabPanel/tabPanel.html +13 -0
- package/src/modules/dx/tabPanel/tabPanel.ts +27 -0
- package/src/modules/dx/tabPanelItem/tabPanelItem.css +39 -0
- package/src/modules/dx/tabPanelItem/tabPanelItem.html +15 -0
- package/src/modules/dx/tabPanelItem/tabPanelItem.ts +39 -0
- package/src/modules/dx/tabPanelList/tabPanelList.css +35 -0
- package/src/modules/dx/tabPanelList/tabPanelList.html +47 -0
- package/src/modules/dx/tabPanelList/tabPanelList.ts +164 -0
- package/src/modules/dx/tabPanelList/uniqueId.ts +6 -0
- package/src/modules/dx/tbidAvatarButton/tbidAvatarButton.css +33 -0
- package/src/modules/dx/tbidAvatarButton/tbidAvatarButton.html +53 -0
- package/src/modules/dx/tbidAvatarButton/tbidAvatarButton.ts +440 -0
- package/src/modules/dx/toc/toc.css +1 -0
- package/src/modules/dx/toc/toc.ts +13 -0
- package/src/modules/dx/treeItem/treeItem.html +2 -0
- package/src/modules/dx/treeItem/treeItem.ts +8 -6
- package/src/modules/dx/treeTile/treeTile.css +18 -18
- package/src/modules/dx/treeTile/treeTile.html +5 -4
- package/src/modules/dx/treeTile/treeTile.ts +17 -3
- package/src/modules/dx/typeBadge/typeBadge.css +15 -56
- package/src/modules/dx/typeBadge/typeBadge.html +6 -0
- package/src/modules/dx/typeBadge/typeBadge.ts +149 -46
- package/src/modules/dxBaseElements/archiveCard/archiveCard.ts +2 -6
- package/src/modules/dxBaseElements/headerBase/headerBase.ts +11 -1
- package/src/modules/dxConstants/brands/brands.ts +14 -0
- package/src/modules/dxConstants/colors/colors.ts +14 -0
- package/src/modules/dxConstants/contentTypes/contentTypes.ts +10 -0
- package/src/modules/dxHelpers/card/card.css +1 -1
- package/src/modules/dxHelpers/commonHeader/commonHeader.css +4 -3
- package/src/modules/dxHelpers/commonSidebar/commonSidebar.css +145 -0
- package/src/modules/dxHelpers/{sidebar/sidebar.css → commonTreeItem/commonTreeItem.css} +0 -0
- package/src/modules/dxUtils/async/async.ts +45 -0
- package/src/modules/dxUtils/constants/constants.ts +0 -13
- package/src/modules/dxUtils/css/css.ts +10 -0
- package/src/modules/dxUtils/lwc/lwc.ts +9 -0
- package/src/modules/dxUtils/prismjs/prismjs.ts +347 -9
- package/src/modules/dxUtils/queryCoordinator/queryCoordinator.ts +37 -11
- package/LICENSE +0 -12
- package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.css +0 -12
- package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.html +0 -11
- package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.ts +0 -18
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
PopperPlacement
|
|
6
6
|
} from "typings/custom";
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { computePosition, flip, size, shift, arrow } from "@floating-ui/dom";
|
|
9
9
|
import cx from "classnames";
|
|
10
10
|
import debounce from "debounce";
|
|
11
11
|
import { isPrerender } from "dxUtils/seo";
|
|
@@ -31,6 +31,7 @@ export default class Popover extends LightningElement {
|
|
|
31
31
|
@api openOnHover?: boolean = false; // dropdown opens/closes with hover
|
|
32
32
|
@api width?: string | null = null;
|
|
33
33
|
@api fullWidth?: boolean | null;
|
|
34
|
+
@api showArrow?: boolean | null;
|
|
34
35
|
|
|
35
36
|
@api
|
|
36
37
|
get open() {
|
|
@@ -70,9 +71,6 @@ export default class Popover extends LightningElement {
|
|
|
70
71
|
|
|
71
72
|
this.dispatchEvent(new CustomEvent("open"));
|
|
72
73
|
|
|
73
|
-
// awaiting .popover-container to receive 'visibility: visible;' in order to execute functions on it;
|
|
74
|
-
// another approach would be to use IntersectionObserver to determine exactly when the visiblity
|
|
75
|
-
// is applied before running
|
|
76
74
|
setTimeout(() => {
|
|
77
75
|
this.setPosition();
|
|
78
76
|
this.attachListenersTopopover();
|
|
@@ -106,9 +104,11 @@ export default class Popover extends LightningElement {
|
|
|
106
104
|
private _open: boolean = false;
|
|
107
105
|
private _rendered: boolean = isPrerender();
|
|
108
106
|
private _role: string | null = null;
|
|
107
|
+
private arrow: HTMLElement | null = null;
|
|
109
108
|
private control: (HTMLElement & { disabled?: boolean }) | null = null;
|
|
110
109
|
private focusedValue: string | null = null;
|
|
111
110
|
private popover: HTMLElement | null = null;
|
|
111
|
+
private popoverContent: HTMLElement | null = null;
|
|
112
112
|
|
|
113
113
|
// LIFECYCLE METHODS
|
|
114
114
|
|
|
@@ -123,6 +123,12 @@ export default class Popover extends LightningElement {
|
|
|
123
123
|
if (!this.popover) {
|
|
124
124
|
this.popover = this.template.querySelector(".popover-container");
|
|
125
125
|
}
|
|
126
|
+
if (!this.popoverContent) {
|
|
127
|
+
this.popoverContent = this.template.querySelector(".popover");
|
|
128
|
+
}
|
|
129
|
+
if (!this.arrow && this.showArrow) {
|
|
130
|
+
this.arrow = this.template.querySelector(".popover-arrow");
|
|
131
|
+
}
|
|
126
132
|
}
|
|
127
133
|
|
|
128
134
|
// GETTERS
|
|
@@ -235,23 +241,27 @@ export default class Popover extends LightningElement {
|
|
|
235
241
|
this.openPopover();
|
|
236
242
|
};
|
|
237
243
|
|
|
238
|
-
private onSlotChange(e:
|
|
239
|
-
const slot = e.target;
|
|
244
|
+
private onSlotChange(e: Event) {
|
|
245
|
+
const slot = e.target as LightningSlotElement;
|
|
240
246
|
const elements = slot.assignedElements();
|
|
241
247
|
const slotted = elements.length === 0 ? null : elements[0];
|
|
242
248
|
// allows dropdown/select to compose popover
|
|
243
|
-
const
|
|
244
|
-
slotted
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
this.addControlListeners();
|
|
253
|
-
this.setPosition();
|
|
249
|
+
const slotElement = (
|
|
250
|
+
slotted?.tagName === "SLOT" ? slotted.firstChild : slotted
|
|
251
|
+
) as HTMLElement | null;
|
|
252
|
+
const isWorkToDo =
|
|
253
|
+
slotElement &&
|
|
254
|
+
(!this.control || !slotElement.isSameNode(this.control));
|
|
255
|
+
|
|
256
|
+
if (!isWorkToDo) {
|
|
257
|
+
return;
|
|
254
258
|
}
|
|
259
|
+
|
|
260
|
+
slotElement.setAttribute("aria-haspopup", "true");
|
|
261
|
+
slotElement.style.cursor = this.openOnHover ? "default" : "cursor";
|
|
262
|
+
this.control = slotElement;
|
|
263
|
+
this.addControlListeners();
|
|
264
|
+
this.setPosition();
|
|
255
265
|
}
|
|
256
266
|
|
|
257
267
|
private onKeyDown(e: KeyboardEvent): void {
|
|
@@ -279,34 +289,63 @@ export default class Popover extends LightningElement {
|
|
|
279
289
|
private setPosition = async () => {
|
|
280
290
|
if (this.popover && this.control) {
|
|
281
291
|
await Promise.resolve();
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
{
|
|
293
|
-
name: "flip",
|
|
294
|
-
options: {
|
|
295
|
-
fallbackPlacements: []
|
|
292
|
+
const popoverEl = this.popover;
|
|
293
|
+
const middleware = [flip(), shift({ padding: this.pagePadding })];
|
|
294
|
+
|
|
295
|
+
if (this.fullWidth) {
|
|
296
|
+
middleware.unshift(
|
|
297
|
+
size({
|
|
298
|
+
apply({ rects }) {
|
|
299
|
+
Object.assign(popoverEl.style, {
|
|
300
|
+
width: `${rects.reference.width}px`
|
|
301
|
+
});
|
|
296
302
|
}
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
303
|
+
})
|
|
304
|
+
);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
if (this.arrow) {
|
|
308
|
+
middleware.push(arrow({ element: this.arrow, padding: 24 }));
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
computePosition(this.control, popoverEl, {
|
|
312
|
+
placement: this.placement,
|
|
313
|
+
middleware
|
|
314
|
+
}).then(({ x, y, placement, middlewareData }) => {
|
|
315
|
+
Object.assign(popoverEl.style, {
|
|
316
|
+
left: `${x}px`,
|
|
317
|
+
top: `${y}px`
|
|
318
|
+
});
|
|
319
|
+
|
|
320
|
+
if (this.arrow && middlewareData.arrow) {
|
|
321
|
+
const { x: arrowX, y: arrowY } = middlewareData.arrow;
|
|
322
|
+
const popoverPlacementSide = placement.split("-")[0] as
|
|
323
|
+
| "top"
|
|
324
|
+
| "bottom"
|
|
325
|
+
| "left"
|
|
326
|
+
| "right";
|
|
327
|
+
const staticSide = {
|
|
328
|
+
top: "bottom",
|
|
329
|
+
right: "left",
|
|
330
|
+
bottom: "top",
|
|
331
|
+
left: "right"
|
|
332
|
+
}[popoverPlacementSide];
|
|
333
|
+
const arrowStyles = {
|
|
334
|
+
left: arrowX != null ? `${arrowX}px` : "",
|
|
335
|
+
top: arrowY != null ? `${arrowY}px` : "",
|
|
336
|
+
right: "",
|
|
337
|
+
bottom: "",
|
|
338
|
+
[staticSide]: "-4px"
|
|
339
|
+
};
|
|
340
|
+
|
|
341
|
+
if (this.offset && this.popoverContent) {
|
|
342
|
+
arrowStyles.marginTop = getComputedStyle(
|
|
343
|
+
this.popoverContent
|
|
344
|
+
).marginTop;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
Object.assign(this.arrow.style, arrowStyles);
|
|
348
|
+
}
|
|
310
349
|
});
|
|
311
350
|
}
|
|
312
351
|
};
|