@repobit/dex-system-design 0.19.2 → 0.21.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.
- package/CHANGELOG.md +32 -0
- package/package.json +2 -3
- package/src/components/Button/button.stories.js +51 -51
- package/src/components/accordion/accordion-bg.css.js +168 -102
- package/src/components/accordion/accordion-bg.js +13 -5
- package/src/components/accordion/accordion-bg.stories.js +281 -0
- package/src/components/accordion/accordion-light.stories.js +241 -0
- package/src/components/anchor/anchor.stories.js +24 -22
- package/src/components/back/back.css.js +56 -0
- package/src/components/back/back.js +39 -0
- package/src/components/back/back.stories.js +184 -0
- package/src/components/badge/badge.css.js +44 -6
- package/src/components/badge/badge.js +40 -2
- package/src/components/badge/badge.stories.js +3 -10
- package/src/components/breadcrumb/breadcrumb.css.js +98 -0
- package/src/components/breadcrumb/breadcrumb.js +136 -0
- package/src/components/breadcrumb/breadcrumb.stories.js +109 -0
- package/src/components/cards/card.css.js +245 -0
- package/src/components/cards/card.js +80 -0
- package/src/components/cards/card.stories.js +512 -0
- package/src/components/carousel/carousel.css.js +51 -36
- package/src/components/carousel/carousel.js +0 -1
- package/src/components/carousel/carousel.stories.js +21 -17
- package/src/components/display/display.css.js +68 -0
- package/src/components/display/display.js +26 -0
- package/src/components/display/display.stories.js +339 -0
- package/src/components/divider/divider-horizontal.js +1 -1
- package/src/components/footer/footer-links-group.css.js +1 -1
- package/src/components/footer/footer-links-group.js +3 -3
- package/src/components/footer/footer-lp.stories.js +26 -61
- package/src/components/footer/footer-nav-menu.css.js +9 -10
- package/src/components/footer/footer.css.js +95 -8
- package/src/components/footer/footer.js +31 -65
- package/src/components/footer/footer.stories.js +165 -48
- package/src/components/header/header.js +11 -11
- package/src/components/header/header.stories.js +36 -4
- package/src/components/heading/heading.css.js +79 -0
- package/src/components/heading/heading.js +79 -0
- package/src/components/heading/heading.stories.js +260 -0
- package/src/components/highlight/highlight.stories.js +1 -1
- package/src/components/image/image.css.js +101 -0
- package/src/components/image/image.js +57 -0
- package/src/components/image/image.stories.js +245 -0
- package/src/components/light-carousel/light-carousel-simple.js +3 -2
- package/src/components/light-carousel/light-carousel.js +3 -7
- package/src/components/light-carousel/light-carousel.stories.js +15 -16
- package/src/components/link/link.css.js +107 -18
- package/src/components/link/link.js +16 -12
- package/src/components/link/link.stories.js +177 -0
- package/src/components/list/list-item/list-item.css.js +106 -0
- package/src/components/list/list-item/list-item.js +43 -0
- package/src/components/list/list-item/list-item.stories.js +79 -0
- package/src/components/list/list.css.js +175 -0
- package/src/components/list/list.js +44 -0
- package/src/components/modal/modal.js +6 -5
- package/src/components/paragraph/paragraph.css.js +41 -11
- package/src/components/paragraph/paragraph.js +7 -45
- package/src/components/paragraph/paragraph.stories.js +235 -0
- package/src/components/picture/picture.css.js +0 -0
- package/src/components/picture/picture.js +46 -0
- package/src/components/picture/picture.stories.js +275 -0
- package/src/components/pricing-cards/pricing-card-actions.js +1 -1
- package/src/components/pricing-cards/pricing-card-header.js +9 -7
- package/src/components/pricing-cards/pricing-card-pricing.js +11 -12
- package/src/components/pricing-cards/pricing-card.css.js +28 -3
- package/src/components/pricing-cards/pricing-card.js +38 -50
- package/src/components/tabs/tabs.js +44 -47
- package/src/components/termsOfUse/terms.js +77 -161
- package/src/components/termsOfUse/terms.stories.js +4 -3
- package/src/stories/Header.js +6 -6
- package/src/tokens/layout.css +3 -3
- package/src/tokens/tokens.css +0 -23
- package/src/tokens/tokens.stories.js +9 -8
- package/src/components/accordion/accordion-no-bg.css.js +0 -114
- package/src/components/accordion/accordion-no-bg.js +0 -80
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { LitElement, html } from "lit";
|
|
2
2
|
import { tokens } from "../../tokens/tokens.js";
|
|
3
|
+
import '../list/list-item/list-item.js';
|
|
4
|
+
import '../list/list.js';
|
|
3
5
|
import termsCSS from "../termsOfUse/terms.css.js";
|
|
4
6
|
|
|
5
7
|
class TermsSection extends LitElement {
|
|
@@ -12,66 +14,61 @@ class TermsSection extends LitElement {
|
|
|
12
14
|
this.faqs = [
|
|
13
15
|
{
|
|
14
16
|
question: "Auto renewal terms",
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
<li>The Bitdefender Auto Renewal Plan is designed to save you time, effort, and minimize your vulnerability risk by extending your subscription automatically before you run out of protection.</li>
|
|
21
|
-
</ul>
|
|
22
|
-
</p> `,
|
|
23
|
-
open: false
|
|
17
|
+
items : [
|
|
18
|
+
"Your subscription automatically begins at the purchase date;",
|
|
19
|
+
"By subscribing, you are purchasing a recurring subscription which will automatically renew;",
|
|
20
|
+
"The Bitdefender Auto Renewal Plan is designed to save you time, effort, and minimize your vulnerability risk by extending your subscription automatically before you run out of protection."
|
|
21
|
+
]
|
|
24
22
|
},
|
|
25
23
|
{
|
|
26
|
-
question:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<li>The price offered is valid for the first year of subscription. After that, your subscription will be billed at the applicable renewal price;</li>
|
|
38
|
-
<li>If a discount is presented, it describes the difference between the first term and renewal term subscription prices (e.g., first year price vs. each year thereafter). The prices are subject to change, but Bitdefender will send a prior notification by email, before the automatic renewal takes place. You will receive an email notification before you will be billed, along with information regarding pricing and the extension of your subscription duration.</li>
|
|
39
|
-
</ul>
|
|
40
|
-
</p> `,
|
|
41
|
-
open: false
|
|
24
|
+
question: "Here is what the Bitdefender Auto Renewal Plan means for you",
|
|
25
|
+
items : [
|
|
26
|
+
"Continuous protection so that you never have to worry about your subscription running out before you renew manually;",
|
|
27
|
+
"Free upgrades whenever a new version of Bitdefender comes out;",
|
|
28
|
+
"Peace of mind that your devices are always protected;",
|
|
29
|
+
"Save time while we are taking care of the automatic renewal process;",
|
|
30
|
+
"Opt out at any time so that you are always in control of your renewal options;",
|
|
31
|
+
"24/7 security all-subscription long without interruption;",
|
|
32
|
+
"The price offered is valid for the first year of subscription. After that, your subscription will be billed at the applicable renewal price;",
|
|
33
|
+
"If a discount is presented, it describes the difference between the first term and renewal term subscription prices (e.g., first year price vs. each year thereafter). The prices are subject to change, but Bitdefender will send a prior notification by email, before the automatic renewal takes place. You will receive an email notification before you will be billed, along with information regarding pricing and the extension of your subscription duration."
|
|
34
|
+
]
|
|
42
35
|
},
|
|
43
36
|
{
|
|
44
37
|
question: "Affirmative consent",
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
<li>By subscribing, you are purchasing a recurring subscription which will automatically renew.</li>
|
|
50
|
-
</ul>
|
|
51
|
-
</p> `,
|
|
52
|
-
open: false
|
|
38
|
+
items : [
|
|
39
|
+
"Your subscription automatically begins at the purchase date;",
|
|
40
|
+
"By subscribing, you are purchasing a recurring subscription which will automatically renew."
|
|
41
|
+
]
|
|
53
42
|
},
|
|
54
43
|
{
|
|
55
44
|
question: "How to cancel + email address cancelation support",
|
|
56
|
-
|
|
57
|
-
<
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
<li>You can refund by contacting <a href="mailto:refunds@bitdefender.com" title="refunds@bitdefender.com">refunds@bitdefender.com</a> within 30 days of your initial purchase or of the automatic renewal date.</li>
|
|
61
|
-
</ul>
|
|
62
|
-
</p> `,
|
|
63
|
-
open: false
|
|
45
|
+
items : [
|
|
46
|
+
html`You can cancel your automatically subscription from Bitdefender Central or by contacting Customer Support at: <a href="mailto:cancel@bitdefender.com" title="cancel@bitdefender.com">cancel@bitdefender.com</a>`,
|
|
47
|
+
html`You can refund by contacting <a href="mailto:refunds@bitdefender.com" title="refunds@bitdefender.com">refunds@bitdefender.com</a> within 30 days of your initial purchase or of the automatic renewal date.`
|
|
48
|
+
]
|
|
64
49
|
}
|
|
65
50
|
];
|
|
66
51
|
}
|
|
67
52
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
53
|
+
_renderFAQItem(faq) {
|
|
54
|
+
return html`
|
|
55
|
+
<div>
|
|
56
|
+
<div>
|
|
57
|
+
<bd-p kind="small" class="bd-terms-text-p"><strong>${faq.question}</strong></bd-p>
|
|
58
|
+
${faq.items
|
|
59
|
+
? html`
|
|
60
|
+
<bd-p kind="small">
|
|
61
|
+
<bd-list type="unordered" spacing="md" variant="default" orientation="vertical">
|
|
62
|
+
${faq.items.map(item => html`
|
|
63
|
+
<bd-li kind="bullet" size="md">${item}</bd-li>
|
|
64
|
+
`)}
|
|
65
|
+
</bd-list>
|
|
66
|
+
</bd-p>
|
|
67
|
+
`
|
|
68
|
+
: ''}
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
`;
|
|
75
72
|
}
|
|
76
73
|
|
|
77
74
|
render() {
|
|
@@ -93,124 +90,44 @@ class TermsSection extends LitElement {
|
|
|
93
90
|
<h5 id="bd-terms-of-use">Terms of use</h5>
|
|
94
91
|
</div>
|
|
95
92
|
</div>
|
|
93
|
+
|
|
94
|
+
<!-- Render FAQ items -->
|
|
95
|
+
${this.faqs.map((faq, index) => this._renderFAQItem(faq, index))}
|
|
96
|
+
|
|
97
|
+
<!-- Additional content -->
|
|
96
98
|
<div>
|
|
97
|
-
<div>
|
|
98
|
-
<p
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
<p class="bd-terms-text-p">
|
|
103
|
-
By subscribing, you are purchasing a recurring subscription
|
|
104
|
-
which will automatically renew;
|
|
105
|
-
</p>
|
|
106
|
-
<p class="bd-terms-text-p">
|
|
107
|
-
The Bitdefender Auto Renewal Plan is designed to save you
|
|
108
|
-
time, effort, and minimize your vulnerability risk by
|
|
109
|
-
extending your subscription automatically before you run out
|
|
110
|
-
of protection.
|
|
111
|
-
</p>
|
|
112
|
-
</div>
|
|
113
|
-
</div>
|
|
114
|
-
<div>
|
|
115
|
-
<div>
|
|
116
|
-
<p class="bd-terms-text-p">
|
|
117
|
-
<strong
|
|
118
|
-
>Here is what the Bitdefender Auto Renewal Plan means for
|
|
119
|
-
you</strong
|
|
120
|
-
>
|
|
121
|
-
</p>
|
|
122
|
-
<p class="bd-terms-text-p">
|
|
123
|
-
Continuous protection so that you never have to worry about
|
|
124
|
-
your subscription running out before you renew manually;
|
|
125
|
-
</p>
|
|
126
|
-
<p class="bd-terms-text-p">
|
|
127
|
-
Free upgrades whenever a new version of Bitdefender comes out;
|
|
128
|
-
</p>
|
|
129
|
-
<p class="bd-terms-text-p">Peace of mind that your devices are always protected;</p>
|
|
130
|
-
<p class="bd-terms-text-p">
|
|
131
|
-
Save time while we are taking care of the automatic renewal
|
|
132
|
-
process;
|
|
133
|
-
</p>
|
|
134
|
-
<p class="bd-terms-text-p">
|
|
135
|
-
Opt out at any time so that you are always in control of your
|
|
136
|
-
renewal options;
|
|
137
|
-
</p>
|
|
138
|
-
<p class="bd-terms-text-p">24/7 security all-subscription long without interruption;</p>
|
|
139
|
-
<p class="bd-terms-text-p">
|
|
140
|
-
The prices are subject to change, but Bitdefender will send a
|
|
141
|
-
prior notification by email, before the automatic renewal
|
|
142
|
-
takes place. You will receive an email notification before you
|
|
143
|
-
will be billed, along with information regarding pricing and
|
|
144
|
-
the extension of your subscription duration.
|
|
145
|
-
</p>
|
|
146
|
-
</div>
|
|
147
|
-
</div>
|
|
148
|
-
<div>
|
|
149
|
-
<div>
|
|
150
|
-
<p class="bd-terms-text-p"><strong>Affirmative consent</strong></p>
|
|
151
|
-
<p class="bd-terms-text-p">
|
|
152
|
-
Your subscription automatically begins at the purchase
|
|
153
|
-
date;<br />
|
|
154
|
-
By subscribing, you are purchasing a recurring subscription
|
|
155
|
-
which will automatically renew.
|
|
156
|
-
</p>
|
|
157
|
-
</div>
|
|
158
|
-
</div>
|
|
159
|
-
<div>
|
|
160
|
-
<div>
|
|
161
|
-
<p class="bd-terms-text-p">
|
|
162
|
-
<strong
|
|
163
|
-
>How to cancel + email address cancelation support</strong
|
|
164
|
-
>
|
|
165
|
-
</p>
|
|
166
|
-
<p class="bd-terms-text-p">
|
|
167
|
-
You can cancel your automatically subscription from
|
|
168
|
-
Bitdefender Central or by contacting Customer Support at:
|
|
169
|
-
<a class="bd-terms-text-a"
|
|
170
|
-
href="mailto:cancel@bitdefender.com"
|
|
171
|
-
title="cancel@bitdefender.com"
|
|
172
|
-
>cancel@bitdefender.com</a
|
|
173
|
-
><br />
|
|
174
|
-
You can refund by contacting
|
|
99
|
+
<div class="bd-terms-text-p">
|
|
100
|
+
<bd-p kind="small">
|
|
101
|
+
Your subscription may include product, service and/or protection
|
|
102
|
+
updates and features that may be added, modified or removed
|
|
103
|
+
subject to
|
|
175
104
|
<a class="bd-terms-text-a"
|
|
176
|
-
href="
|
|
177
|
-
title="
|
|
178
|
-
>
|
|
105
|
+
href="https://www.bitdefender.com/legal/?adobe_mc=MCMID%3D63411747395182077784244429321314993670%7CMCORGID%3D0E920C0F53DA9E9B0A490D45%2540AdobeOrg%7CTS%3D1739263766"
|
|
106
|
+
title="Bitdefender Subscription Agreement and Terms and Conditions for Home Users"
|
|
107
|
+
>Bitdefender Subscription Agreement and Terms and Conditions
|
|
108
|
+
for Home Users</a
|
|
179
109
|
>
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
Your subscription may include product, service and/or protection
|
|
188
|
-
updates and features that may be added, modified or removed
|
|
189
|
-
subject to
|
|
190
|
-
<a class="bd-terms-text-a"
|
|
191
|
-
href="https://www.bitdefender.com/legal/?adobe_mc=MCMID%3D63411747395182077784244429321314993670%7CMCORGID%3D0E920C0F53DA9E9B0A490D45%2540AdobeOrg%7CTS%3D1739263766"
|
|
192
|
-
title="Bitdefender Subscription Agreement and Terms and Conditions for Home Users"
|
|
193
|
-
>Bitdefender Subscription Agreement and Terms and Conditions
|
|
194
|
-
for Home Users</a
|
|
195
|
-
>
|
|
196
|
-
and
|
|
197
|
-
<a class="bd-terms-text-a"
|
|
198
|
-
href="https://www.bitdefender.com/site/view/legal-privacy-policy-for-home-users-solutions.html?adobe_mc=MCMID%3D63411747395182077784244429321314993670%7CMCORGID%3D0E920C0F53DA9E9B0A490D45%2540AdobeOrg%7CTS%3D1739263766"
|
|
199
|
-
title="Privacy Notice"
|
|
200
|
-
>Privacy Notice</a
|
|
201
|
-
>.
|
|
110
|
+
and
|
|
111
|
+
<a class="bd-terms-text-a"
|
|
112
|
+
href="https://www.bitdefender.com/site/view/legal-privacy-policy-for-home-users-solutions.html?adobe_mc=MCMID%3D63411747395182077784244429321314993670%7CMCORGID%3D0E920C0F53DA9E9B0A490D45%2540AdobeOrg%7CTS%3D1739263766"
|
|
113
|
+
title="Privacy Notice"
|
|
114
|
+
>Privacy Notice</a
|
|
115
|
+
>.
|
|
116
|
+
</bd-p>
|
|
202
117
|
</div>
|
|
203
118
|
</div>
|
|
204
119
|
<div>
|
|
205
120
|
<div class="bd-terms-text-p">
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
121
|
+
<bd-p kind="small">
|
|
122
|
+
By using the subscription, You acknowledge and agree that your
|
|
123
|
+
use of the product which integrates with YouTube API Services is
|
|
124
|
+
subject to
|
|
125
|
+
<a class="bd-terms-text-a"
|
|
126
|
+
href="https://www.youtube.com/static?template=terms"
|
|
127
|
+
title="YouTube's Terms of Service"
|
|
128
|
+
>YouTube's Terms of Service</a
|
|
129
|
+
>.
|
|
130
|
+
</bd-p>
|
|
214
131
|
</div>
|
|
215
132
|
</div>
|
|
216
133
|
</div>
|
|
@@ -218,8 +135,7 @@ class TermsSection extends LitElement {
|
|
|
218
135
|
</div>
|
|
219
136
|
`;
|
|
220
137
|
}
|
|
221
|
-
|
|
222
138
|
}
|
|
223
139
|
|
|
224
140
|
TermsSection.styles = [tokens, termsCSS];
|
|
225
|
-
customElements.define("bd-terms-section", TermsSection);
|
|
141
|
+
customElements.define("bd-terms-section", TermsSection);
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { html } from 'lit';
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
import './terms.js';
|
|
3
4
|
|
|
4
5
|
export default {
|
|
5
|
-
title: 'Components/TermsSection',
|
|
6
|
+
title : 'Components/TermsSection',
|
|
6
7
|
component: 'bd-terms-section',
|
|
7
|
-
tags: ['autodocs']
|
|
8
|
+
tags : ['autodocs']
|
|
8
9
|
};
|
|
9
10
|
|
|
10
11
|
const Template = () => html`
|
package/src/stories/Header.js
CHANGED
|
@@ -29,15 +29,15 @@ export const Header = ({ user, onLogin, onLogout, onCreateAccount }) => html`
|
|
|
29
29
|
${user
|
|
30
30
|
? Button({ size: 'small', onClick: onLogout, label: 'Log out' })
|
|
31
31
|
: html`${Button({
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
size : 'small',
|
|
33
|
+
onClick: onLogin,
|
|
34
|
+
label : 'Log in'
|
|
35
|
+
})}
|
|
36
36
|
${Button({
|
|
37
37
|
primary: true,
|
|
38
|
-
size: 'small',
|
|
38
|
+
size : 'small',
|
|
39
39
|
onClick: onCreateAccount,
|
|
40
|
-
label: 'Sign up'
|
|
40
|
+
label : 'Sign up'
|
|
41
41
|
})}`}
|
|
42
42
|
</div>
|
|
43
43
|
</div>
|
package/src/tokens/layout.css
CHANGED
|
@@ -25,15 +25,15 @@
|
|
|
25
25
|
.bd-container {
|
|
26
26
|
max-width: 1200px;
|
|
27
27
|
margin: 0 auto;
|
|
28
|
-
padding: var(--
|
|
28
|
+
padding: var(--spacing-16);
|
|
29
29
|
display: flex;
|
|
30
30
|
flex-direction: column;
|
|
31
|
-
gap: var(--
|
|
31
|
+
gap: var(--spacing-8);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
.bd-container-fluid {
|
|
35
35
|
width: 100%;
|
|
36
|
-
padding: var(--
|
|
36
|
+
padding: var(--spacing-16);
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
.pricing-container {
|
package/src/tokens/tokens.css
CHANGED
|
@@ -785,29 +785,6 @@
|
|
|
785
785
|
/* Caption */
|
|
786
786
|
--typography-label-small-fontSize-line-height: 1.35; /* For 12px */
|
|
787
787
|
|
|
788
|
-
/* --spacing-0: 0;
|
|
789
|
-
--spacing-1: 1px;
|
|
790
|
-
--spacing-2: 2px;
|
|
791
|
-
--spacing-4: 4px;
|
|
792
|
-
--spacing-6: 6px;
|
|
793
|
-
--spacing-8: 8px;
|
|
794
|
-
--spacing-10: 10px;
|
|
795
|
-
--spacing-12: 12px;
|
|
796
|
-
--spacing-14: 14px;
|
|
797
|
-
--spacing-16: 16px;
|
|
798
|
-
--spacing-18: 18px;
|
|
799
|
-
--spacing-20: 20px;
|
|
800
|
-
--spacing-22: 22px;
|
|
801
|
-
--spacing-24: 24px;
|
|
802
|
-
--spacing-32: 32px;
|
|
803
|
-
--spacing-36: 36px;
|
|
804
|
-
--spacing-40: 40px;
|
|
805
|
-
--spacing-44: 44px;
|
|
806
|
-
--spacing-52: 52px;
|
|
807
|
-
--spacing-64: 64px;
|
|
808
|
-
--spacing-full: 99999999999999999999;
|
|
809
|
-
*/
|
|
810
|
-
|
|
811
788
|
/* Spacing Tokens
|
|
812
789
|
-----------------------------------------------*/
|
|
813
790
|
/* Base spacing tokens - Based on 4px grid */
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { html } from 'lit';
|
|
2
|
+
import '../components/heading/heading.js';
|
|
2
3
|
|
|
3
4
|
export default {
|
|
4
|
-
title: 'Design Tokens/Colors'
|
|
5
|
+
title: 'Design Tokens/Colors'
|
|
5
6
|
};
|
|
6
7
|
|
|
7
8
|
const colorGroups = {
|
|
8
|
-
blue: ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950'],
|
|
9
|
-
red: ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950'],
|
|
10
|
-
green: ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950'],
|
|
11
|
-
yellow: ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950'],
|
|
12
|
-
neutral: ['0', '25', '50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950', '1000']
|
|
9
|
+
blue : ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950'],
|
|
10
|
+
red : ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950'],
|
|
11
|
+
green : ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950'],
|
|
12
|
+
yellow : ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950'],
|
|
13
|
+
neutral: ['0', '25', '50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950', '1000']
|
|
13
14
|
};
|
|
14
15
|
|
|
15
16
|
export const Colors = () => html`
|
|
@@ -52,7 +53,7 @@ export const Colors = () => html`
|
|
|
52
53
|
|
|
53
54
|
${Object.entries(colorGroups).map(([group, shades]) => html`
|
|
54
55
|
<section class="color-group">
|
|
55
|
-
<
|
|
56
|
+
<bd-h as="h4" class="color-group-title">${group}</bd-h>
|
|
56
57
|
${shades.map(shade => {
|
|
57
58
|
const varName = `--color-${group}-${shade}`;
|
|
58
59
|
return html`
|
|
@@ -64,4 +65,4 @@ export const Colors = () => html`
|
|
|
64
65
|
})}
|
|
65
66
|
</section>
|
|
66
67
|
`)}
|
|
67
|
-
`;
|
|
68
|
+
`;
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { css } from "lit";
|
|
2
|
-
|
|
3
|
-
export default css`
|
|
4
|
-
:host {
|
|
5
|
-
--background-card-grey: var(--color-neutral-25);
|
|
6
|
-
--border-card-grey: var(--color-neutral-50);
|
|
7
|
-
--border-card-green: var(--color-green-700);
|
|
8
|
-
--badge-background: var(--color-blue-500);
|
|
9
|
-
--text-color-white: var(--color-neutral-0);
|
|
10
|
-
--bd-accesibility-focus: var(--color-blue-500);
|
|
11
|
-
display: block;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.bd-accordion-bg-item {
|
|
15
|
-
margin-bottom: var(--spacing-16);
|
|
16
|
-
border-radius: var(--spacing-8);
|
|
17
|
-
overflow: hidden;
|
|
18
|
-
transition: box-shadow 0.3s ease;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.bd-accordion-bg-item:hover {
|
|
22
|
-
.bd-accordion-bg-question-text {
|
|
23
|
-
text-decoration-line: underline;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.bd-accordion-bg-question {
|
|
28
|
-
cursor: pointer;
|
|
29
|
-
display: flex;
|
|
30
|
-
justify-content: flex-start;
|
|
31
|
-
align-items: center;
|
|
32
|
-
gap: var(--spacing-10);
|
|
33
|
-
padding: var(--spacing-16);
|
|
34
|
-
font-weight: bold;
|
|
35
|
-
color: #333;
|
|
36
|
-
transition: background-color 0.3s ease, color 0.3s ease;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.bd-accordion-bg-header {
|
|
40
|
-
margin-bottom: var(--spacing-32);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.bd-accordion-bg-question:hover {
|
|
44
|
-
color: #0073e6;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
.bd-accordion-bg-item:focus-visible {
|
|
48
|
-
outline: var(--spacing-2) solid var(--bd-accesibility-focus);
|
|
49
|
-
outline-offset: var(--spacing-2);
|
|
50
|
-
border-radius: var(--space-2xs);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
.bd-accordion-bg-item:focus {
|
|
54
|
-
.bd-accordion-bg-question-text {
|
|
55
|
-
font-weight: 600;
|
|
56
|
-
text-decoration-line: underline;
|
|
57
|
-
color: var(--color-blue-600);
|
|
58
|
-
text-decoration-thickness: var(--spacing-2);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.bd-accordion-bg-question-text {
|
|
63
|
-
font-family: var(--typography-fontFamily-sans);
|
|
64
|
-
font-weight: var(--typography-fontWeight-semibold);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.bd-accordion-bg-title {
|
|
68
|
-
font-family: var(--typography-fontFamily-sans);
|
|
69
|
-
font-weight: var(--typography-fontWeight-semibold);
|
|
70
|
-
margin-left: auto;
|
|
71
|
-
margin-right: auto;
|
|
72
|
-
text-align: center;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
.bd-accordion-bg-icon {
|
|
76
|
-
transition: transform 0.3s ease;
|
|
77
|
-
width: var(--spacing-14);
|
|
78
|
-
height: var(--spacing-14);
|
|
79
|
-
color: var(--color-blue-500);
|
|
80
|
-
text-align: center;
|
|
81
|
-
position: relative;
|
|
82
|
-
bottom: 1px;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
.bd-accordion-bg-answer {
|
|
86
|
-
overflow: hidden;
|
|
87
|
-
max-height: 0;
|
|
88
|
-
opacity: 0;
|
|
89
|
-
padding: 0 15px;
|
|
90
|
-
font-family: var(--typography-fontFamily-sans);
|
|
91
|
-
font-weight: var(--font-weight-sans-medium);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
.bd-accordion-bg-item.open .bd-accordion-bg-answer {
|
|
95
|
-
max-height: 1000px;
|
|
96
|
-
opacity: 1;
|
|
97
|
-
padding: var(--spacing-0) var(--spacing-40);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
.bd-accordion-bg-answer > div {
|
|
101
|
-
overflow: hidden;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
.bd-accordion-bg-container {
|
|
105
|
-
width: 90%;
|
|
106
|
-
margin: auto;
|
|
107
|
-
padding-top: var(--spacing-64);
|
|
108
|
-
padding-bottom: var(--spacing-64);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
.bd-accordion-bg-link-noline {
|
|
112
|
-
text-decoration: none;
|
|
113
|
-
}
|
|
114
|
-
`;
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { LitElement, html } from "lit";
|
|
2
|
-
import { tokens } from "../../tokens/tokens.js";
|
|
3
|
-
import accordionCSS from "./accordion-no-bg.css";
|
|
4
|
-
|
|
5
|
-
class BdAccordionNoBg extends LitElement {
|
|
6
|
-
static properties = {
|
|
7
|
-
title: { type: String }
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
static styles = [tokens, accordionCSS];
|
|
11
|
-
|
|
12
|
-
render() {
|
|
13
|
-
return html`
|
|
14
|
-
<div class="bd-accordion-bg-container">
|
|
15
|
-
<div class="bd-accordion-bg-header">
|
|
16
|
-
<h1 class="bd-accordion-bg-title">${this.title}</h1>
|
|
17
|
-
</div>
|
|
18
|
-
<slot></slot>
|
|
19
|
-
</div>
|
|
20
|
-
`;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
class BdAccordionNoBgItem extends LitElement {
|
|
25
|
-
static properties = {
|
|
26
|
-
title: { type: String },
|
|
27
|
-
open : { type: Boolean, reflect: true }
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
constructor() {
|
|
31
|
-
super();
|
|
32
|
-
this.title = "";
|
|
33
|
-
this.open = false;
|
|
34
|
-
this.id = `accordion-${Math.random().toString(36)
|
|
35
|
-
.substr(2, 9)}`;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
static styles = [tokens, accordionCSS];
|
|
39
|
-
|
|
40
|
-
toggleItem() {
|
|
41
|
-
this.open = !this.open;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
handleKeyDown(event) {
|
|
45
|
-
if (event.key === "Enter" || event.key === " ") {
|
|
46
|
-
event.preventDefault();
|
|
47
|
-
this.toggleItem();
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
render() {
|
|
52
|
-
return html`
|
|
53
|
-
<div
|
|
54
|
-
class="bd-accordion-bg-item ${this.open ? "open" : ""}"
|
|
55
|
-
role="button"
|
|
56
|
-
aria-expanded="${this.open}"
|
|
57
|
-
aria-controls="${this.id}"
|
|
58
|
-
tabindex="0"
|
|
59
|
-
@click=${this.toggleItem}
|
|
60
|
-
@keydown=${this.handleKeyDown}
|
|
61
|
-
>
|
|
62
|
-
<div class="bd-accordion-bg-question">
|
|
63
|
-
<span class="bd-accordion-bg-icon">${this.open ? "−" : "+"}</span>
|
|
64
|
-
<span class="bd-accordion-bg-question-text">${this.title}</span>
|
|
65
|
-
</div>
|
|
66
|
-
<div
|
|
67
|
-
id="${this.id}"
|
|
68
|
-
class="bd-accordion-bg-answer"
|
|
69
|
-
role="region"
|
|
70
|
-
aria-labelledby="${this.id}"
|
|
71
|
-
>
|
|
72
|
-
<slot></slot>
|
|
73
|
-
</div>
|
|
74
|
-
</div>
|
|
75
|
-
`;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
customElements.define("bd-accordion-no-bg", BdAccordionNoBg);
|
|
80
|
-
customElements.define("bd-accordion-no-bg-item", BdAccordionNoBgItem);
|