@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,154 @@
1
+ import {
2
+ Instance as PopperInstance,
3
+ Placement as PopperPlacement
4
+ } from '@popperjs/core';
5
+
6
+ export type DialogState = {
7
+ isOpen?: boolean;
8
+ };
9
+
10
+ export type Placement =
11
+ | 'top'
12
+ | 'top left'
13
+ | 'top right'
14
+ | 'right'
15
+ | 'right top'
16
+ | 'right bottom'
17
+ | 'bottom'
18
+ | 'bottom left'
19
+ | 'bottom right'
20
+ | 'left'
21
+ | 'left top'
22
+ | 'left bottom';
23
+
24
+ const DEFAULT_PLACEMENT = 'top';
25
+ const NUBBIN_SIZE = 14;
26
+
27
+ export class Dialog {
28
+ constructor(
29
+ private trigger: HTMLElement,
30
+ private dialog: HTMLElement,
31
+ private options: {
32
+ placement?: Placement;
33
+ onChange?: (Partial: DialogState) => void;
34
+ } = {}
35
+ ) {
36
+ this.create();
37
+ }
38
+
39
+ popper: PopperInstance | null = null;
40
+
41
+ private _state: DialogState = { isOpen: false };
42
+
43
+ get state(): DialogState {
44
+ return this._state;
45
+ }
46
+
47
+ set state(nextState: DialogState) {
48
+ this._state = { ...this._state, ...nextState };
49
+
50
+ if (this.options.onChange) {
51
+ this.options.onChange(this.state);
52
+ }
53
+ }
54
+
55
+ private async create() {
56
+ const modifiers = [
57
+ {
58
+ name: 'flip',
59
+ options: {
60
+ padding: NUBBIN_SIZE
61
+ }
62
+ },
63
+ {
64
+ name: 'hide',
65
+ enabled: false
66
+ },
67
+ {
68
+ name: 'preventOverflow',
69
+ options: {
70
+ padding: {
71
+ top: 2,
72
+ bottom: 2,
73
+ left: 5,
74
+ right: 5
75
+ }
76
+ }
77
+ },
78
+ {
79
+ name: 'offset',
80
+ options: {
81
+ offset: ({ placement, reference }: any) => {
82
+ if (placement.match(/^(top|bottom)/)) {
83
+ return [0, NUBBIN_SIZE];
84
+ }
85
+
86
+ if (placement.match(/end?/)) {
87
+ return [(reference.height / 2) * 1, NUBBIN_SIZE];
88
+ }
89
+
90
+ if (placement.match(/start?/)) {
91
+ return [(reference.height / 2) * -1, NUBBIN_SIZE];
92
+ }
93
+
94
+ return [0, NUBBIN_SIZE];
95
+ }
96
+ }
97
+ }
98
+ ];
99
+ const { createPopper } = await import('@popperjs/core');
100
+
101
+ this.popper = createPopper(this.trigger, this.dialog, {
102
+ placement: this.getPlacement(this.options.placement),
103
+ modifiers
104
+ });
105
+
106
+ // Show
107
+ this.trigger.addEventListener('mouseenter', this.show.bind(this));
108
+ this.trigger.addEventListener('focusin', this.show.bind(this));
109
+
110
+ // Hide
111
+ this.trigger.addEventListener('mouseleave', this.hide.bind(this));
112
+ this.trigger.addEventListener('focusout', this.hide.bind(this));
113
+ }
114
+
115
+ destroy() {
116
+ this.popper!.destroy();
117
+ this.popper = null;
118
+ }
119
+
120
+ private async show() {
121
+ await this.popper!.update();
122
+ this.state = { isOpen: true };
123
+ }
124
+
125
+ private hide() {
126
+ this.state = { isOpen: false };
127
+ }
128
+
129
+ // Map the "placement" property used by SLDS to the correct Popper "placement"
130
+ private getPlacement(
131
+ placement: Placement = DEFAULT_PLACEMENT
132
+ ): PopperPlacement {
133
+ switch (placement) {
134
+ case 'top left':
135
+ return 'top-start';
136
+ case 'top right':
137
+ return 'top-end';
138
+ case 'right top':
139
+ return 'right-start';
140
+ case 'right bottom':
141
+ return 'right-end';
142
+ case 'bottom left':
143
+ return 'bottom-start';
144
+ case 'bottom right':
145
+ return 'bottom-end';
146
+ case 'left top':
147
+ return 'left-start';
148
+ case 'left bottom':
149
+ return 'left-end';
150
+ default:
151
+ return placement;
152
+ }
153
+ }
154
+ }
@@ -0,0 +1,90 @@
1
+ @import 'arch/reset';
2
+
3
+ :host {
4
+ --nubbin-size: 14px;
5
+ }
6
+
7
+ [aria-hidden='true'] {
8
+ visibility: hidden;
9
+ pointer-events: none;
10
+ }
11
+
12
+ .with-nubbin::before,
13
+ .with-nubbin::after {
14
+ content: '';
15
+ width: var(--nubbin-size);
16
+ height: var(--nubbin-size);
17
+ transform: rotate(45deg);
18
+ position: absolute;
19
+ z-index: -1;
20
+ }
21
+
22
+ .with-nubbin::before {
23
+ background-color: inherit;
24
+ }
25
+
26
+ .with-nubbin::after {
27
+ box-shadow: var(--arch-shadow-sm);
28
+ }
29
+
30
+ .with-nubbin[data-popper-placement^='top']::before,
31
+ .with-nubbin[data-popper-placement^='top']::after {
32
+ bottom: calc(var(--nubbin-size) / 2 * -1);
33
+ }
34
+
35
+ .with-nubbin[data-popper-placement^='bottom']::before,
36
+ .with-nubbin[data-popper-placement^='bottom']::after {
37
+ top: calc(var(--nubbin-size) / 2 * -1);
38
+ }
39
+
40
+ .with-nubbin[data-popper-placement^='right']::before,
41
+ .with-nubbin[data-popper-placement^='right']::after {
42
+ left: calc(var(--nubbin-size) / 2 * -1);
43
+ }
44
+
45
+ .with-nubbin[data-popper-placement^='left']::before,
46
+ .with-nubbin[data-popper-placement^='left']::after {
47
+ right: calc(var(--nubbin-size) / 2 * -1);
48
+ }
49
+
50
+ .with-nubbin[data-popper-placement='top']::before,
51
+ .with-nubbin[data-popper-placement='bottom']::before,
52
+ .with-nubbin[data-popper-placement='top']::after,
53
+ .with-nubbin[data-popper-placement='bottom']::after {
54
+ left: calc(50% - var(--nubbin-size) / 2);
55
+ }
56
+
57
+ .with-nubbin[data-popper-placement='top-start']::before,
58
+ .with-nubbin[data-popper-placement='bottom-start']::before,
59
+ .with-nubbin[data-popper-placement='top-start']::after,
60
+ .with-nubbin[data-popper-placement='bottom-start']::after {
61
+ left: var(--nubbin-size);
62
+ }
63
+
64
+ .with-nubbin[data-popper-placement='top-end']::before,
65
+ .with-nubbin[data-popper-placement='bottom-end']::before,
66
+ .with-nubbin[data-popper-placement='top-end']::after,
67
+ .with-nubbin[data-popper-placement='bottom-end']::after {
68
+ right: var(--nubbin-size);
69
+ }
70
+
71
+ .with-nubbin[data-popper-placement='right']::before,
72
+ .with-nubbin[data-popper-placement='left']::before,
73
+ .with-nubbin[data-popper-placement='right']::after,
74
+ .with-nubbin[data-popper-placement='left']::after {
75
+ top: calc(50% - var(--nubbin-size) / 2);
76
+ }
77
+
78
+ .with-nubbin[data-popper-placement='right-start']::before,
79
+ .with-nubbin[data-popper-placement='left-start']::before,
80
+ .with-nubbin[data-popper-placement='right-start']::after,
81
+ .with-nubbin[data-popper-placement='left-start']::after {
82
+ top: var(--nubbin-size);
83
+ }
84
+
85
+ .with-nubbin[data-popper-placement='right-end']::before,
86
+ .with-nubbin[data-popper-placement='left-end']::before,
87
+ .with-nubbin[data-popper-placement='right-end']::after,
88
+ .with-nubbin[data-popper-placement='left-end']::after {
89
+ bottom: var(--nubbin-size);
90
+ }
@@ -0,0 +1 @@
1
+ <template></template>
@@ -0,0 +1,28 @@
1
+ /* eslint-disable @lwc/lwc/no-disallowed-lwc-imports */
2
+ import { WireAdapter } from "lwc";
3
+
4
+ export type EffectAdapterConfig = {};
5
+
6
+ export class EffectAdapter
7
+ implements WireAdapter<EffectAdapterConfig, EffectAdapterConfig, void>
8
+ {
9
+ private setValue: (value: EffectAdapterConfig) => void;
10
+
11
+ constructor(setValue: (value: EffectAdapterConfig) => void) {
12
+ this.setValue = setValue;
13
+ }
14
+
15
+ connect() {
16
+ // Required by WireAdapter interface
17
+ }
18
+
19
+ disconnect() {
20
+ // Required by WireAdapter interface
21
+ }
22
+
23
+ update(config: EffectAdapterConfig) {
24
+ this.setValue(config);
25
+ }
26
+ }
27
+
28
+ export default EffectAdapter;
@@ -0,0 +1,301 @@
1
+ @import "arch/reset";
2
+
3
+ :host {
4
+ font-size: var(--arch-font-size-md);
5
+ }
6
+
7
+ .filter-header {
8
+ display: flex;
9
+ align-items: center;
10
+ justify-content: space-between;
11
+ }
12
+
13
+ .filter-title {
14
+ display: inline-block;
15
+ margin-right: var(--arch-spacing-8);
16
+ }
17
+
18
+ .filter-header h2 {
19
+ font-size: var(--arch-font-size-lg);
20
+ }
21
+
22
+ .filter-form {
23
+ margin-bottom: var(--arch-spacing-2);
24
+ display: flex;
25
+ flex-wrap: wrap;
26
+ justify-content: space-between;
27
+ }
28
+
29
+ .filter-form > * {
30
+ margin-right: var(--arch-spacing-4);
31
+ margin-left: var(--arch-spacing-4);
32
+ }
33
+
34
+ .filter-form arch-select {
35
+ flex: 1;
36
+ }
37
+
38
+ .filter-form .search-input {
39
+ flex-basis: 100%;
40
+ }
41
+
42
+ .search-input {
43
+ width: 60%;
44
+ box-sizing: border-box;
45
+ }
46
+
47
+ .search-input-wrapper {
48
+ align-items: stretch;
49
+ display: flex;
50
+ position: relative;
51
+ margin-bottom: var(--arch-spacing-4);
52
+ }
53
+
54
+ .search-input-label {
55
+ overflow-wrap: break-word;
56
+ word-wrap: break-word;
57
+ hyphens: auto;
58
+ display: block;
59
+ padding-right: var(--arch-spacing-2);
60
+ padding-top: var(--arch-spacing-2);
61
+ color: var(--arch-color-meteorite);
62
+ font-size: var(--arch-font-size-xs);
63
+ margin-bottom: var(--arch-spacing-2);
64
+ }
65
+
66
+ .search-input-input {
67
+ border-radius: var(--arch-radius-md);
68
+ border: 1px solid var(--arch-color-fog);
69
+ color: var(--arch-color-black);
70
+ flex: 1;
71
+ font-family: inherit;
72
+ font-size: var(--arch-font-size-md);
73
+ line-height: 1.875;
74
+ overflow: hidden;
75
+ padding: 0.4rem 0;
76
+ padding-left: var(--arch-spacing-8);
77
+ position: relative;
78
+ text-overflow: ellipsis;
79
+ transition: border 0.1s linear, background-color 0.1s linear;
80
+ white-space: nowrap;
81
+ }
82
+
83
+ .search-input-icon {
84
+ color: var(--arch-color-granite);
85
+ left: 10px;
86
+ position: absolute;
87
+ top: 13px;
88
+ z-index: 1;
89
+ }
90
+
91
+ .table-summary {
92
+ display: flex;
93
+ justify-content: space-between;
94
+ align-items: center;
95
+ }
96
+
97
+ .table-summary .page-size-controls {
98
+ flex-basis: 25%;
99
+ }
100
+
101
+ .table-summary .page-size-controls,
102
+ .table-summary .export-buttons {
103
+ display: flex;
104
+ align-items: center;
105
+ }
106
+
107
+ .table-summary .export-buttons {
108
+ display: flex;
109
+ align-items: center;
110
+ justify-content: space-between;
111
+ text-align: right;
112
+ }
113
+
114
+ .table-summary .page-size-controls div,
115
+ .table-summary .export-buttons div {
116
+ margin-right: 0.5rem;
117
+ color: var(--arch-color-meteorite);
118
+ }
119
+
120
+ .table-summary .export-buttons > * {
121
+ margin-right: 0.5rem;
122
+ }
123
+
124
+ .table-summary .filter-stats {
125
+ text-align: center;
126
+ color: var(--arch-color-meteorite);
127
+ margin-bottom: var(--arch-spacing-4);
128
+ }
129
+
130
+ table {
131
+ width: 100%;
132
+ margin: 0 auto;
133
+ border-collapse: separate;
134
+ border-spacing: 0;
135
+ border-right: 1px solid #dddbda;
136
+ border-left: 1px solid #dddbda;
137
+ border-bottom: 1px solid #111;
138
+ vertical-align: middle;
139
+ margin-bottom: var(--arch-spacing-8);
140
+ }
141
+
142
+ thead {
143
+ display: table-header-group;
144
+ border-color: inherit;
145
+ }
146
+
147
+ th {
148
+ background-color: #ebf5ff;
149
+ border-top: 1px solid #dddbda;
150
+ border-bottom: 1px solid #111;
151
+ padding: 1rem;
152
+ vertical-align: middle;
153
+ text-align: left;
154
+ }
155
+
156
+ tr {
157
+ display: table-row;
158
+ vertical-align: middle;
159
+ }
160
+
161
+ tr:nth-child(even) td {
162
+ background: #fafaf9;
163
+ }
164
+
165
+ tr td:first-child {
166
+ border-left: 3px solid transparent;
167
+ }
168
+
169
+ tr td:last-child {
170
+ border-right: 3px solid transparent;
171
+ }
172
+
173
+ tr:hover td {
174
+ box-shadow: #dddbda 0 -1px 0 inset, #dddbda 0 1px 0 inset;
175
+ background: #fafaf9;
176
+ }
177
+
178
+ tr:hover td:first-child {
179
+ border-left: 3px solid var(--arch-color-brand);
180
+ }
181
+
182
+ tr:hover td:last-child {
183
+ border-right: 3px solid var(--arch-color-brand);
184
+ }
185
+
186
+ td {
187
+ padding: 0.75rem 1rem;
188
+ border-top: 1px solid #dddbda;
189
+ border-bottom: 1px solid #dddbda;
190
+ }
191
+
192
+ .status {
193
+ text-align: center;
194
+ }
195
+
196
+ td.empty-table {
197
+ height: 20rem;
198
+ text-align: center;
199
+ pointer-events: none;
200
+ }
201
+
202
+ td.empty-table arch-spinner {
203
+ display: inline-block;
204
+ }
205
+
206
+ button.link {
207
+ background: none;
208
+ border-width: 0;
209
+ text-decoration: underline;
210
+ cursor: pointer;
211
+ }
212
+
213
+ .pagination-controls {
214
+ display: flex;
215
+ justify-content: center;
216
+ margin-bottom: var(--arch-spacing-4);
217
+ }
218
+
219
+ .pagination-controls arch-button {
220
+ padding: 0 1rem;
221
+ }
222
+
223
+ .safe-harbor {
224
+ border-radius: 10px;
225
+ border: 1px solid gray;
226
+ padding: 20px;
227
+ margin-bottom: 20px;
228
+ }
229
+
230
+ .safe-harbor img {
231
+ margin-right: 10px;
232
+ float: left;
233
+ }
234
+
235
+ @media screen and (max-width: 48rem) {
236
+ .filter-header {
237
+ flex-direction: column-reverse;
238
+ }
239
+
240
+ .filter-header div {
241
+ width: 100%;
242
+ display: flex;
243
+ justify-content: space-between;
244
+ align-items: center;
245
+ }
246
+
247
+ .filter-header arch-social-share {
248
+ margin-bottom: var(--arch-spacing-6);
249
+ }
250
+
251
+ .table-summary {
252
+ flex-direction: column;
253
+ }
254
+
255
+ .table-wrapper {
256
+ overflow-x: scroll;
257
+ }
258
+
259
+ .pagination-controls-top,
260
+ .export-label {
261
+ display: none;
262
+ }
263
+ }
264
+
265
+ .row-title p {
266
+ font-weight: normal;
267
+ }
268
+
269
+ .row-pattern {
270
+ font-size: var(--arch-font-size-sm);
271
+ margin-bottom: 1rem;
272
+ color: #3e3e3c;
273
+ padding-left: 1rem;
274
+ width: 50%;
275
+ align-items: left;
276
+ flex: 1;
277
+ }
278
+
279
+ .row-pattern p {
280
+ font-weight: normal;
281
+ }
282
+
283
+ .row-pattern a {
284
+ color: var(--arch-color-brand);
285
+ text-decoration: none;
286
+ }
287
+
288
+ .row-pattern a:hover {
289
+ text-decoration: underline;
290
+ }
291
+
292
+ .selected-pills {
293
+ display: flex;
294
+ flex-wrap: wrap;
295
+ }
296
+
297
+ .selected-pills > div {
298
+ margin-right: 1rem;
299
+ margin-bottom: 1rem;
300
+ background-color: white;
301
+ }