@salesforcedevs/arch-components 1.20.17-alpha9 → 1.25.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.
Files changed (158) hide show
  1. package/LICENSE +12 -0
  2. package/lwc.config.json +42 -3
  3. package/package.json +36 -46
  4. package/src/assets/css/arch-variables.css +512 -0
  5. package/src/modules/arch/badge/badge.css +22 -0
  6. package/src/modules/arch/badge/badge.html +5 -0
  7. package/src/modules/arch/badge/badge.ts +9 -0
  8. package/src/modules/arch/button/button.css +1 -0
  9. package/src/modules/arch/button/button.html +20 -0
  10. package/src/modules/arch/button/button.ts +67 -0
  11. package/src/modules/arch/buttonLink/buttonLink.css +1 -0
  12. package/src/modules/arch/buttonLink/buttonLink.html +19 -0
  13. package/src/modules/arch/buttonLink/buttonLink.stories.js +34 -0
  14. package/src/modules/arch/buttonLink/buttonLink.ts +8 -0
  15. package/src/modules/arch/buttonStyles/buttonStyles.css +220 -0
  16. package/src/modules/arch/card/card.css +128 -0
  17. package/src/modules/arch/card/card.html +85 -0
  18. package/src/modules/arch/card/card.ts +277 -0
  19. package/src/modules/arch/cardBase/cardBase.css +11 -0
  20. package/src/modules/arch/cardBase/cardBase.html +2 -0
  21. package/src/modules/arch/cardGridA/cardGridA.css +11 -0
  22. package/src/modules/arch/cardGridA/cardGridA.html +21 -0
  23. package/src/modules/arch/cardGridA/cardGridA.stories.js +118 -0
  24. package/src/modules/arch/cardGridA/cardGridA.ts +24 -0
  25. package/src/modules/arch/cardGridC/cardGridC.css +24 -0
  26. package/src/modules/arch/cardGridC/cardGridC.html +22 -0
  27. package/src/modules/arch/cardGridC/cardGridC.stories.js +51 -0
  28. package/src/modules/arch/cardGridC/cardGridC.ts +11 -0
  29. package/src/modules/arch/cardGridD/cardGridD.css +17 -0
  30. package/src/modules/arch/cardGridD/cardGridD.html +20 -0
  31. package/src/modules/arch/cardGridD/cardGridD.stories.js +43 -0
  32. package/src/modules/arch/cardGridD/cardGridD.ts +7 -0
  33. package/src/modules/arch/cardNew/cardNew.css +31 -0
  34. package/src/modules/arch/cardNew/cardNew.html +32 -0
  35. package/src/modules/arch/cardNew/cardNew.ts +66 -0
  36. package/src/modules/arch/children/children.html +2 -0
  37. package/src/modules/arch/children/children.ts +31 -0
  38. package/src/modules/arch/color/color.ts +59 -0
  39. package/src/modules/arch/content/__fixtures__/index.ts +884 -0
  40. package/src/modules/arch/content/content.css +643 -0
  41. package/src/modules/arch/content/content.html +65 -0
  42. package/src/modules/arch/content/content.stories.js +21 -0
  43. package/src/modules/arch/content/content.ts +169 -0
  44. package/src/modules/arch/contentIcon/contentIcon.css +48 -0
  45. package/src/modules/arch/contentIcon/contentIcon.html +15 -0
  46. package/src/modules/arch/contentIcon/contentIcon.stories.js +130 -0
  47. package/src/modules/arch/contentIcon/contentIcon.ts +68 -0
  48. package/src/{common → modules/arch}/context/context.ts +21 -19
  49. package/src/modules/arch/contextAdapter/constants.ts +1 -0
  50. package/src/modules/arch/contextAdapter/contextAdapter.ts +54 -0
  51. package/src/modules/arch/debounce/debounce.ts +32 -0
  52. package/src/modules/arch/dialog/dialog.ts +154 -0
  53. package/src/modules/arch/dialogStyles/dialogStyles.css +90 -0
  54. package/src/modules/arch/effectAdapter/effectAdapter.html +1 -0
  55. package/src/modules/arch/effectAdapter/effectAdapter.ts +28 -0
  56. package/src/modules/arch/explorer/explorer.css +301 -0
  57. package/src/modules/arch/explorer/explorer.html +418 -0
  58. package/src/modules/arch/explorer/explorer.ts +718 -0
  59. package/src/modules/arch/explorer/types.d.ts +60 -0
  60. package/src/modules/arch/fetch/fetch.ts +55 -0
  61. package/src/modules/arch/footerMfe/footerMfe.html +3 -0
  62. package/src/modules/arch/footerMfe/footerMfe.ts +19 -0
  63. package/src/modules/arch/gallery/gallery.css +365 -0
  64. package/src/modules/arch/gallery/gallery.html +71 -0
  65. package/src/modules/arch/gallery/gallery.ts +366 -0
  66. package/src/modules/arch/gallery/types.d.ts +35 -0
  67. package/src/modules/arch/heading/heading.css +1 -0
  68. package/src/modules/arch/heading/heading.html +9 -0
  69. package/src/modules/arch/heading/heading.ts +36 -0
  70. package/src/modules/arch/helpers/helpers.ts +141 -0
  71. package/src/modules/arch/heroA/heroA.css +116 -0
  72. package/src/modules/arch/heroA/heroA.html +28 -0
  73. package/src/modules/arch/heroA/heroA.stories.js +60 -0
  74. package/src/modules/arch/heroA/heroA.ts +53 -0
  75. package/src/modules/arch/heroB/heroB.css +79 -0
  76. package/src/modules/arch/heroB/heroB.html +27 -0
  77. package/src/modules/arch/heroB/heroB.stories.js +55 -0
  78. package/src/modules/arch/heroB/heroB.ts +26 -0
  79. package/src/modules/arch/i18n/i18n.ts +78 -0
  80. package/src/modules/arch/icon/icon.css +28 -0
  81. package/src/modules/arch/icon/icon.html +17 -0
  82. package/src/modules/arch/icon/icon.stories.js +26 -0
  83. package/src/modules/arch/icon/icon.ts +92 -0
  84. package/src/modules/arch/instrumentation/instrumentation.css +1 -0
  85. package/src/modules/arch/instrumentation/instrumentation.html +1 -0
  86. package/src/modules/arch/instrumentation/instrumentation.ts +113 -0
  87. package/src/modules/arch/labels/helpers.ts +25 -0
  88. package/src/modules/arch/labels/pointHelpers.ts +47 -0
  89. package/src/modules/arch/labels/timeHelpers.ts +182 -0
  90. package/src/modules/arch/labels/types.d.ts +5 -0
  91. package/src/modules/arch/logger/logger.ts +33 -0
  92. package/src/modules/arch/menu/menu.ts +260 -0
  93. package/src/modules/arch/overflow/overflow.ts +71 -0
  94. package/src/modules/arch/page/page.css +3 -0
  95. package/src/modules/arch/page/page.html +3 -0
  96. package/src/modules/arch/page/page.stories.js +19 -0
  97. package/src/modules/arch/page/page.ts +3 -0
  98. package/src/modules/arch/pageHeaderA/pageHeaderA.css +82 -0
  99. package/src/modules/arch/pageHeaderA/pageHeaderA.html +24 -0
  100. package/src/modules/arch/pageHeaderA/pageHeaderA.stories.js +25 -0
  101. package/src/modules/arch/pageHeaderA/pageHeaderA.ts +51 -0
  102. package/src/modules/arch/pill/pill.css +70 -0
  103. package/src/modules/arch/pill/pill.html +17 -0
  104. package/src/modules/arch/pill/pill.ts +34 -0
  105. package/src/modules/arch/polling-request.ts +97 -0
  106. package/src/modules/arch/reflectedElement/reflectedElement.html +2 -0
  107. package/src/{common → modules/arch}/reflectedElement/reflectedElement.ts +5 -3
  108. package/src/modules/arch/reset/reset.css +39 -0
  109. package/src/modules/arch/searchList/searchList.css +120 -0
  110. package/src/modules/arch/searchList/searchList.html +46 -0
  111. package/src/modules/arch/searchList/searchList.ts +53 -0
  112. package/src/modules/arch/sectionA/sectionA.css +64 -0
  113. package/src/modules/arch/sectionA/sectionA.html +21 -0
  114. package/src/modules/arch/sectionA/sectionA.stories.js +25 -0
  115. package/src/modules/arch/sectionA/sectionA.ts +27 -0
  116. package/src/modules/arch/select/select.css +40 -0
  117. package/src/modules/arch/select/select.html +24 -0
  118. package/src/modules/arch/select/select.ts +64 -0
  119. package/src/modules/arch/socialShare/socialShare.css +50 -0
  120. package/src/modules/arch/socialShare/socialShare.html +56 -0
  121. package/src/modules/arch/socialShare/socialShare.ts +29 -0
  122. package/src/modules/arch/spinner/spinner.css +195 -0
  123. package/src/modules/arch/spinner/spinner.html +9 -0
  124. package/src/modules/arch/spinner/spinner.ts +15 -0
  125. package/src/modules/arch/styles/styles.css +24 -0
  126. package/src/modules/arch/summary/summary.css +134 -0
  127. package/src/modules/arch/summary/summary.html +71 -0
  128. package/src/modules/arch/summary/summary.stories.js +163 -0
  129. package/src/modules/arch/summary/summary.ts +96 -0
  130. package/src/modules/arch/tab/tab.css +3 -0
  131. package/src/modules/arch/tab/tab.html +5 -0
  132. package/src/modules/arch/tab/tab.ts +46 -0
  133. package/src/modules/arch/tabset/tabset.css +112 -0
  134. package/src/modules/arch/tabset/tabset.html +62 -0
  135. package/src/modules/arch/tabset/tabset.ts +244 -0
  136. package/src/modules/arch/testutils.ts +118 -0
  137. package/src/modules/arch/threeCardGrid/threeCardGrid.css +6 -0
  138. package/src/modules/arch/threeCardGrid/threeCardGrid.html +5 -0
  139. package/src/modules/arch/threeCardGrid/threeCardGrid.ts +3 -0
  140. package/src/modules/arch/track/track.ts +23 -0
  141. package/src/modules/arch/trailhead.ts +120 -0
  142. package/src/modules/arch/types.d.ts +1 -0
  143. package/src/modules/arch/useEffectAttr.ts +16 -0
  144. package/src/modules/arch/utils/utils.ts +20 -0
  145. package/src/modules/arch/withState.ts +21 -0
  146. package/src/modules/arch/xsfMfeEvents/xsfMfeEvents.html +1 -0
  147. package/src/modules/arch/xsfMfeEvents/xsfMfeEvents.ts +47 -0
  148. package/src/common/effectAdapter/__tests__/effectAdapter.test.ts +0 -12
  149. package/src/common/effectAdapter/effectAdapter.ts +0 -18
  150. package/src/common/reflectedElement/__tests__/modules/test/select/select.html +0 -3
  151. package/src/common/reflectedElement/__tests__/modules/test/select/select.ts +0 -7
  152. package/src/common/reflectedElement/__tests__/modules/test/selectTransform/selectTransform.html +0 -3
  153. package/src/common/reflectedElement/__tests__/modules/test/selectTransform/selectTransform.ts +0 -18
  154. package/src/common/reflectedElement/__tests__/reflectedElement.test.ts +0 -75
  155. package/src/common/slot/__tests__/slot.test.ts +0 -96
  156. package/src/common/slot/slot.ts +0 -20
  157. /package/src/{common → modules/arch}/context/context.html +0 -0
  158. /package/src/{common/effectAdapter/effectAdapter.html → modules/arch/contextAdapter/contextAdapter.html} +0 -0
@@ -0,0 +1,31 @@
1
+ @import 'dxHelpers/text';
2
+ @import 'dxHelpers/card';
3
+
4
+ dx-card-title::part(title) {
5
+ margin-bottom: var(--arch-spacing-4);
6
+ }
7
+
8
+ .body {
9
+ display: flex;
10
+ flex-direction: column;
11
+ }
12
+
13
+ /* The bottom item gets arch-spacing-10 margin; if the pill is at the bottom, that's the pill; if the pill is at the top, that's the subtitle */
14
+ .body.pill-bottom .pill,
15
+ .body.pill-top .subtitle {
16
+ margin-bottom: var(--arch-spacing-10);
17
+ }
18
+
19
+ .body.pill-top .pill,
20
+ .body.pill-bottom .subtitle {
21
+ margin-bottom: var(--arch-spacing-4);
22
+ }
23
+
24
+ .body.pill-bottom .pill {
25
+ order: 1; /* Setting an explicit order makes the pill appear last, since all other elements have default order 0 */
26
+ }
27
+
28
+ .cta {
29
+ position: absolute;
30
+ bottom: var(--arch-spacing-4);
31
+ }
@@ -0,0 +1,32 @@
1
+ <template>
2
+ <dx-card-content
3
+ borderless="false"
4
+ fix-orientation="true"
5
+ href={ctaHref}
6
+ href-click={handleImageClick}
7
+ img-link-aria-label={imgLinkAriaLabel}
8
+ img-src={imgSrc}
9
+ >
10
+ <div class={className} slot="body" title={header}>
11
+ <arch-badge class="pill" lwc:if={pill} color="blue">
12
+ {pill}
13
+ </arch-badge>
14
+ <div lwc:if={label} class="dx-text-label-3 card-label">{label}</div>
15
+ <dx-card-title
16
+ lwc:if={displayHeader}
17
+ header={header}
18
+ href={ctaHref}
19
+ onclick={handleLinkClick}
20
+ ></dx-card-title>
21
+ <div class="subtitle">{subtitle}</div>
22
+ <dx-button
23
+ class="cta"
24
+ variant="inline"
25
+ href={ctaHref}
26
+ onclick={handleLinkClick}
27
+ >
28
+ {ctaTitle}
29
+ </dx-button>
30
+ </div>
31
+ </dx-card-content>
32
+ </template>
@@ -0,0 +1,66 @@
1
+ import { api, LightningElement } from "lwc";
2
+ import { track } from 'arch/instrumentation';
3
+
4
+ export type PillPosition = 'top' | 'bottom';
5
+
6
+ export default class extends LightningElement {
7
+ @api pill: string = '';
8
+ @api label: string = '';
9
+ @api header: string = '';
10
+ @api subtitle: string = '';
11
+ @api ctaHref: string = '';
12
+ @api ctaTitle: string = '';
13
+ @api imgSrc: string = '';
14
+ @api imgLinkAriaLabel: string = '';
15
+ @api noDisplayedHeader: boolean = false;
16
+
17
+ @api get pillPosition() {
18
+ return this._pillPosition;
19
+ }
20
+ set pillPosition(value: PillPosition) {
21
+ this._pillPosition = value || 'top';
22
+ }
23
+
24
+ private _pillPosition: PillPosition = 'top';
25
+
26
+ private get className() {
27
+ return `body pill-${this.pillPosition}`;
28
+ }
29
+
30
+ private get displayHeader() {
31
+ return this.header && !this.noDisplayedHeader;
32
+ }
33
+
34
+ private handleImageClick(e: MouseEvent) {
35
+ // FIXME? sendInteractionEventwon't work with custom elements/shadow DOM. Maybe investigate or get rid of this.
36
+ // sendInteractionEvent('Card Image Click', InteractionEventTypes.IMAGE_CLICK, e, e.currentTarget);
37
+ this.handleHrefClick(e, {
38
+ clickUrl: this.ctaHref,
39
+ clickImg: this.imgSrc,
40
+ label: this.label,
41
+ title: this.header,
42
+ subtitle: this.subtitle,
43
+ });
44
+ }
45
+
46
+ private handleLinkClick(e: MouseEvent) {
47
+ // FIXME? sendInteractionEvent won't work with custom elements/shadow DOM. Maybe investigate or get rid of this.
48
+ // sendInteractionEvent('Card Link Click', InteractionEventTypes.CLICK, e, e.currentTarget);
49
+ const currentTarget = e.currentTarget as HTMLElement;
50
+ const clickText = currentTarget.matches('dx-card-title') ? this.header : this.ctaTitle;
51
+ this.handleHrefClick(e, {
52
+ clickText,
53
+ clickUrl: this.ctaHref,
54
+ label: this.label,
55
+ title: this.header,
56
+ subtitle: this.subtitle,
57
+ });
58
+ }
59
+
60
+ private handleHrefClick(e: MouseEvent, payload: Record<string, string>) {
61
+ const target = e.currentTarget as HTMLElement;
62
+ track(target, 'card_clicked', {
63
+ ...payload,
64
+ });
65
+ }
66
+ }
@@ -0,0 +1,2 @@
1
+ <template></template>
2
+
@@ -0,0 +1,31 @@
1
+ import { track, LightningElement } from 'lwc';
2
+
3
+ export abstract class ChildrenElement<T> extends LightningElement {
4
+ private observer!: MutationObserver;
5
+
6
+ @track items: T[] = [];
7
+ abstract extractor: (element: Element) => T;
8
+
9
+ connectedCallback() {
10
+ this.observer = new MutationObserver(() => {
11
+ this.setItems();
12
+ });
13
+ this.observer.observe(this.template.host, {
14
+ childList: true,
15
+ subtree: true
16
+ });
17
+ this.setItems();
18
+ }
19
+
20
+ disconnectedCallback() {
21
+ this.observer.disconnect();
22
+ }
23
+
24
+ setItems() {
25
+ this.items = Array.from(this.template.host.children).map(
26
+ this.extractor
27
+ );
28
+ }
29
+ }
30
+
31
+ export default ChildrenElement;
@@ -0,0 +1,59 @@
1
+ export function hexToRGB(h: string) {
2
+ let r = 0;
3
+ let g = 0;
4
+ let b = 0;
5
+ if (h.length === 4) {
6
+ r = +('0x' + h[1] + h[1]);
7
+ g = +('0x' + h[2] + h[2]);
8
+ b = +('0x' + h[3] + h[3]);
9
+ } else if (h.length === 7) {
10
+ r = +('0x' + h[1] + h[2]);
11
+ g = +('0x' + h[3] + h[4]);
12
+ b = +('0x' + h[5] + h[6]);
13
+ }
14
+ return [r, g, b];
15
+ }
16
+
17
+ export function RGBToHSL(r: number, g: number, b: number) {
18
+ r /= 255;
19
+ g /= 255;
20
+ b /= 255;
21
+ const cmin = Math.min(r, g, b);
22
+ const cmax = Math.max(r, g, b);
23
+ const delta = cmax - cmin;
24
+ let h = 0;
25
+ let s = 0;
26
+ let l = 0;
27
+ if (delta === 0) {
28
+ h = 0;
29
+ } else if (cmax === r) {
30
+ h = ((g - b) / delta) % 6;
31
+ } else if (cmax === g) {
32
+ h = (b - r) / delta + 2;
33
+ } else {
34
+ h = (r - g) / delta + 4;
35
+ }
36
+ h = Math.round(h * 60);
37
+ if (h < 0) {
38
+ h += 360;
39
+ }
40
+ l = (cmax + cmin) / 2;
41
+ s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));
42
+ s = +s.toFixed(1);
43
+ l = +l.toFixed(1);
44
+ return [h, s, l];
45
+ }
46
+
47
+ export function rgb(r: number, g: number, b: number) {
48
+ return `rgb(${r},${g},${b})`;
49
+ }
50
+
51
+ export function hsl(h: number, s: number, l: number) {
52
+ return `hsl(${h},${s * 100}%,${l * 100}%)`;
53
+ }
54
+
55
+ export function lightenHex(hex: string, by: number) {
56
+ const [r, g, b] = hexToRGB(hex);
57
+ const [h, s, l] = RGBToHSL(r, g, b);
58
+ return hsl(h, s, l + by);
59
+ }