@repobit/dex-system-design 0.19.1 → 0.20.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.
@@ -1,60 +1,178 @@
1
- // BdFooter.stories.js
1
+ // footer.stories.js - Varianta ultra-simplă
2
2
  import { html } from 'lit';
3
3
  import './footer.js';
4
4
 
5
5
  export default {
6
- title : 'Components/Footer',
7
- component: 'bd-footer',
8
- argTypes : {
9
- currentLocale : { control: 'text' },
10
- selectedCountry : { control: 'text' },
11
- maxColumnsPerRow: { control: { type: 'number', min: 1, max: 4 } },
12
- quickLinks1 : { control: 'object' },
13
- quickLinks2 : { control: 'object' },
14
- address : { control: 'text' }
6
+ title : 'Components/Footer/BdFooter',
7
+ component : 'bd-footer',
8
+ parameters: {
9
+ layout: 'fullscreen'
15
10
  }
16
11
  };
17
12
 
18
- const Template = ({ currentLocale, selectedCountry, maxColumnsPerRow, quickLinks1, quickLinks2, address }) => {
19
- return html`
20
- <bd-footer
21
- .currentLocale=${currentLocale}
22
- .selectedCountry=${selectedCountry}
23
- .maxColumnsPerRow=${maxColumnsPerRow}
24
- >
25
- <span slot="logo"><img src="/assets/BD_logo.png" alt="Bitdefender Logo"></span>
26
-
27
- <bd-footer-links-group slot="quick-links" title="Quick Links 1">
28
- ${quickLinks1.map(
29
- link => html`<a href="${link.href}" target="_blank">${link.label}</a>`
30
- )}
31
- </bd-footer-links-group>
13
+ export const Default = () => html`
14
+ <bd-footer maxColumnsPerRow="3">
15
+ <bd-footer-nav slot="nav" class="footer-nav-main" bold>
16
+ <a href="/en/consumer/">For Consumer</a>
17
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
18
+ <a href="/en/small-business/">For Small Business</a>
19
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
20
+ <a href="/en/business/">For Enterprise</a>
21
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
22
+ <a href="/en/partners/">For Partners</a>
23
+ </bd-footer-nav>
24
+ <bd-footer-links-group slot="quick-links" title="Quick links">
25
+ <a href="https://central.bitdefender.com/">Bitdefender Central</a>
26
+ <a href="https://gravityzone.bitdefender.com/">GravityZone Cloud Control Center</a>
27
+ <a href="https://www.bitdefender.com/en-us/cyberpedia/">Bitdefender Cyberpedia</a>
28
+ <a href="https://pan.bitdefender.com/partners/save/">Partner Advantage Network Portal</a>
29
+ <a href="https://brand.bitdefender.com/point/en/bitdefenderhub/component/default/">Brand Portal</a>
30
+ </bd-footer-links-group>
31
+
32
+ <bd-footer-links-group slot="quick-links">
33
+ <a href="https://www.bitdefender.com/consumer/support/">Support for Home Products</a>
34
+ <a href="https://www.bitdefender.com/business/support/">Support for Business Products</a>
35
+ <a href="/company/">Investors</a>
36
+ <a href="/company/job-opportunities/">Careers</a>
37
+ <a href="/business/infozone/">InfoZone</a>
38
+ </bd-footer-links-group>
39
+
40
+ <bd-footer-nav slot="secondary-nav">
41
+ <a href="/legal/">Legal Information</a>
42
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
43
+ <a href="/site/view/legal-privacy-policy-for-bitdefender-websites/">Privacy Policy</a>
44
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
45
+ <a href="/sitemap/">Site Map</a>
46
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
47
+ <a href="/company/">Company</a>
48
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
49
+ <a href="https://www.bitdefender.com/consumer/support/">Contact Us</a>
50
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
51
+ <a href="#">Privacy Settings</a>
52
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
53
+ <a href="#" class="impressum-link">Impressum</a>
54
+ </bd-footer-nav>
55
+ </bd-footer>
56
+ `;
57
+
58
+ export const Romanian = () => html`
59
+ <bd-footer maxColumnsPerRow="3">
60
+ <bd-footer-nav slot="nav" class="footer-nav-main" bold>
61
+ <a href="/ro-ro/consumer/">Pentru Consumatori</a>
62
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
63
+ <a href="/ro-ro/small-business/">Pentru Afaceri Mici</a>
64
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
65
+ <a href="/ro-ro/business/">Pentru Întreprinderi</a>
66
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
67
+ <a href="/ro-ro/partners/">Pentru Parteneri</a>
68
+ </bd-footer-nav>
69
+
70
+ <bd-footer-links-group slot="quick-links" title="Linkuri rapide">
71
+ <a href="https://central.bitdefender.com/">Bitdefender Central</a>
72
+ <a href="https://gravityzone.bitdefender.com/">GravityZone Cloud Control Center</a>
73
+ <a href="https://www.bitdefender.com/ro-ro/cyberpedia/">Bitdefender Cyberpedia</a>
74
+ <a href="https://pan.bitdefender.com/partners/save/">Partner Advantage Network Portal</a>
75
+ <a href="https://brand.bitdefender.com/point/en/bitdefenderhub/component/default/">Brand Portal</a>
76
+ </bd-footer-links-group>
77
+
78
+ <bd-footer-links-group slot="quick-links">
79
+ <a href="https://www.bitdefender.com/consumer/support/">Suport pentru Produse Casnice</a>
80
+ <a href="https://www.bitdefender.com/business/support/">Suport pentru Produse Business</a>
81
+ <a href="/company/">Investitori</a>
82
+ <a href="/company/job-opportunities/">Cariere</a>
83
+ <a href="/business/infozone/">InfoZone</a>
84
+ </bd-footer-links-group>
85
+
86
+ <bd-footer-nav slot="secondary-nav">
87
+ <a href="/legal/">Informații Legale</a>
88
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
89
+ <a href="/site/view/legal-privacy-policy-for-bitdefender-websites/">Politica de Confidențialitate</a>
90
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
91
+ <a href="/sitemap/">Harta Site</a>
92
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
93
+ <a href="/company/">Companie</a>
94
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
95
+ <a href="https://www.bitdefender.com/consumer/support/">Contactați-ne</a>
96
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
97
+ <a href="#">Setări Confidențialitate</a>
98
+ </bd-footer-nav>
99
+ </bd-footer>
100
+ `;
32
101
 
33
- <bd-footer-links-group slot="quick-links" title="Quick Links 2">
34
- ${quickLinks2.map(
35
- link => html`<a href="${link.href}" target="_blank">${link.label}</a>`
36
- )}
102
+ export const German = () => html`
103
+ <bd-footer maxColumnsPerRow="3">
104
+ <bd-footer-nav slot="nav" class="footer-nav-main" bold>
105
+ <a href="/de-de/consumer/">Für Verbraucher</a>
106
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
107
+ <a href="/de-de/small-business/">Für Kleinunternehmen</a>
108
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
109
+ <a href="/de-de/business/">Für Unternehmen</a>
110
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
111
+ <a href="/de-de/partners/">Für Partner</a>
112
+ </bd-footer-nav>
113
+
114
+ <bd-footer-links-group slot="quick-links" title="Schnelllinks">
115
+ <a href="https://central.bitdefender.com/">Bitdefender Central</a>
116
+ <a href="https://gravityzone.bitdefender.com/">GravityZone Cloud Control Center</a>
117
+ <a href="https://www.bitdefender.com/de-de/cyberpedia/">Bitdefender Cyberpedia</a>
118
+ <a href="https://pan.bitdefender.com/partners/save/">Partner Advantage Network Portal</a>
119
+ <a href="https://brand.bitdefender.com/point/en/bitdefenderhub/component/default/">Brand Portal</a>
120
+ </bd-footer-links-group>
121
+
122
+ <bd-footer-links-group slot="quick-links">
123
+ <a href="https://www.bitdefender.com/consumer/support/">Support für Home-Produkte</a>
124
+ <a href="https://www.bitdefender.com/business/support/">Support für Business-Produkte</a>
125
+ <a href="/company/">Investoren</a>
126
+ <a href="/company/job-opportunities/">Karriere</a>
127
+ <a href="/business/infozone/">InfoZone</a>
128
+ </bd-footer-links-group>
129
+
130
+ <bd-footer-nav slot="secondary-nav">
131
+ <a href="/legal/">Rechtliche Informationen</a>
132
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
133
+ <a href="/site/view/legal-privacy-policy-for-bitdefender-websites/">Datenschutzrichtlinie</a>
134
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
135
+ <a href="/sitemap/">Sitemap</a>
136
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
137
+ <a href="/company/">Unternehmen</a>
138
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
139
+ <a href="https://www.bitdefender.com/consumer/support/">Kontakt</a>
140
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
141
+ <a href="#">Datenschutzeinstellungen</a>
142
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
143
+ <a href="#" class="impressum-link">Impressum</a>
144
+ </bd-footer-nav>
145
+ </bd-footer>
146
+ `;
147
+
148
+ export const WithDividers = () => html`
149
+ <div>
150
+ <bd-footer maxColumnsPerRow="3">
151
+ <bd-footer-nav slot="nav" class="footer-nav-main" bold>
152
+ <a href="/en/consumer/">For Consumer</a>
153
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
154
+ <a href="/en/small-business/">For Small Business</a>
155
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
156
+ <a href="/en/business/">For Enterprise</a>
157
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
158
+ <a href="/en/partners/">For Partners</a>
159
+ </bd-footer-nav>
160
+
161
+ <bd-footer-links-group slot="quick-links" title="Quick links">
162
+ <a href="https://central.bitdefender.com/">Bitdefender Central</a>
163
+ <a href="https://gravityzone.bitdefender.com/">GravityZone Cloud Control Center</a>
37
164
  </bd-footer-links-group>
38
165
 
39
- <div slot="address">${address}</div>
166
+ <bd-footer-nav slot="secondary-nav">
167
+ <a href="/legal/">Legal Information</a>
168
+ <bd-divider-vertical color="white" height="18px"></bd-divider-vertical>
169
+ <a href="/privacy/">Privacy Policy</a>
170
+ </bd-footer-nav>
40
171
  </bd-footer>
41
- `;
42
- };
43
172
 
44
- export const Default = Template.bind({});
45
- Default.args = {
46
- currentLocale : 'en',
47
- selectedCountry : 'Choose your country',
48
- maxColumnsPerRow: 2,
49
- quickLinks1 : [
50
- { label: 'Bitdefender Central', href: 'https://central.bitdefender.com/' },
51
- { label: 'GravityZone Cloud Control Center', href: 'https://gravityzone.bitdefender.com/' },
52
- { label: 'Bitdefender Cyberpedia', href: 'https://www.bitdefender.com/en-us/cyberpedia/' }
53
- ],
54
- quickLinks2: [
55
- { label: 'Support for Home Products', href: 'https://www.bitdefender.com/consumer/support/' },
56
- { label: 'Support for Business Products', href: 'https://www.bitdefender.com/business/support/' },
57
- { label: 'Careers', href: '/en/company/job-opportunities/' }
58
- ],
59
- address: '111 W. Houston Street, Suite 2105, Frost Tower Building<br/>San Antonio, Texas 78205'
60
- };
173
+ <bd-divider-horizontal width="95%"></bd-divider-horizontal>
174
+ <bd-divider-horizontal width="95%"></bd-divider-horizontal>
175
+ <bd-divider-horizontal width="95%"></bd-divider-horizontal>
176
+ <bd-divider-horizontal width="95%"></bd-divider-horizontal>
177
+ </div>
178
+ `;
@@ -50,7 +50,7 @@ const TemplateSimple = (args) => html`
50
50
  <bd-light-carousel-simple-section title="${args.title}">
51
51
  <bd-light-carousel-simple-item
52
52
  title="Scam Copilot Chatbot"
53
- icon="src/assets//assets/light-carousel-img1.png"
53
+ icon="/assets/light-carousel-img1.png"
54
54
  >
55
55
  <p>
56
56
  Specialized AI chatbot that helps you identify suspicious online
@@ -60,7 +60,7 @@ const TemplateSimple = (args) => html`
60
60
 
61
61
  <bd-light-carousel-simple-item
62
62
  title="Scam Wave Alerts"
63
- icon="src/assets//assets/light-carousel-img1.png"
63
+ icon="/assets/light-carousel-img1.png"
64
64
  >
65
65
  <p>
66
66
  Stay informed with real-time alerts about ongoing scam outbreaks
@@ -70,7 +70,7 @@ const TemplateSimple = (args) => html`
70
70
 
71
71
  <bd-light-carousel-simple-item
72
72
  title="Online Scam Protection"
73
- icon="src/assets//assets/light-carousel-img1.png"
73
+ icon="/assets/light-carousel-img1.png"
74
74
  >
75
75
  <p>
76
76
  Focused on browsing activities, it specializes in detecting the newest
@@ -8,7 +8,7 @@ class PricingCardActions extends LitElement {
8
8
  render() {
9
9
  return html`
10
10
  <div class="actions">
11
- <bd-button label="Buy Now" kind="danger" size="md" fullWidth strong>
11
+ <bd-button kind="danger" size="md" fullWidth strong>
12
12
  Buy Now
13
13
  </bd-button>
14
14
  </div>
@@ -41,6 +41,22 @@ export default css`
41
41
  font-family: var(--typography-fontFamily-sans);
42
42
  font-weight: var(--typography-fontWeight-semibold);
43
43
  }
44
+ .icon-user-sharp-regular {
45
+ display: inline-block;
46
+ width: 22px;
47
+ height: 22px;
48
+ background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22' fill='none'><path d='M11 11C13.2091 11 15 9.20914 15 7C15 4.79086 13.2091 3 11 3C8.79086 3 7 4.79086 7 7C7 9.20914 8.79086 11 11 11Z' fill='%23000'/><path d='M4 19C4 15.6863 6.68629 13 10 13H12C15.3137 13 18 15.6863 18 19V20H4V19Z' fill='%23000'/></svg>")
49
+ no-repeat center center;
50
+ background-size: contain;
51
+ }
52
+ .icon-family-pants-sharp-regular {
53
+ display: inline-block;
54
+ width: 24px; /* dimensiunea dorită */
55
+ height: 24px;
56
+ background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32' fill='none'><path d='M24 25.1591V27H8V25.1591C8 23.3048 9.20796 21.6667 10.9795 21.1187L11.8455 20.8509C12.2644 20.7213 12.55 20.334 12.55 19.8955V19.7449C10.8538 18.295 10.1 16.0583 10.1 13.2778C10.1 10.8447 11.1289 9.23277 12.423 8.25708C13.6668 7.3193 15.1097 7 16 7C16.8903 7 18.3332 7.3193 19.577 8.25708C20.8711 9.23277 21.9 10.8447 21.9 13.2778C21.9 16.0583 21.1462 18.295 19.45 19.7449V19.8955C19.45 20.334 19.7356 20.7213 20.1545 20.8509L21.0205 21.1187C22.792 21.6667 24 23.3048 24 25.1591Z' fill='%23000'/><path d='M7.4663 23C8.03861 21.7386 9.10189 20.7276 10.4549 20.2401C10.103 19.7558 9.59938 19.382 8.99905 19.1939L8.86534 19.152C8.71342 19.1044 8.58812 19.0057 8.50596 18.8783C9.41844 17.937 9.8 16.5994 9.8 15.0556C9.8 13.5167 9.1507 12.4609 8.30704 11.8164C7.51308 11.2099 6.59336 11 6 11C5.40664 11 4.48692 11.2099 3.69296 11.8164C2.8493 12.4609 2.2 13.5167 2.2 15.0556C2.2 16.5845 2.57424 17.9112 3.46779 18.851L3.46121 18.8574L3.48918 18.8858C3.40698 19.0095 3.28362 19.1053 3.13466 19.152L3.00095 19.1939C1.81034 19.567 1 20.6702 1 21.9179V23C3.57036 23 7.4663 23 7.4663 23Z' fill='%23000'/><path d='M21.5451 20.2401C22.8981 20.7276 23.9614 21.7386 24.5337 23C24.5337 23 28.2313 23 31 23V21.9179C31 20.6702 30.1897 19.567 28.9991 19.1939L28.8653 19.152C28.7134 19.1044 28.5881 19.0057 28.506 18.8783C29.4184 17.937 29.8 16.5994 29.8 15.0556C29.8 13.5167 29.1507 12.4609 28.307 11.8164C27.5131 11.2099 26.5934 11 26 11C25.4066 11 24.4869 11.2099 23.693 11.8164C22.8493 12.4609 22.2 13.5167 22.2 15.0556C22.2 16.5845 22.5742 17.9112 23.4678 18.851L23.4612 18.8574L23.4892 18.8858C23.407 19.0095 23.2836 19.1053 23.1347 19.152L23.0009 19.1939C22.4006 19.382 21.897 19.7558 21.5451 20.2401Z' fill='%23000'/></svg>") no-repeat center center;
57
+ background-size: contain;
58
+ }
59
+
44
60
 
45
61
  .highlight {
46
62
  border: var(--spacing-2) solid var(--border-card-green);
@@ -309,7 +325,17 @@ export default css`
309
325
  transition: color 0.4s;
310
326
  cursor: pointer;
311
327
  }
312
-
328
+ .switchBox .label .icon {
329
+ vertical-align: middle;
330
+ position: relative;
331
+ }
332
+
333
+ .icon-user-sharp-regular,
334
+ .icon-family-pants-sharp-regular {
335
+ vertical-align: middle;
336
+ position: relative;
337
+ top: -2px;
338
+ }
313
339
  .switchBox .label.right {
314
340
  z-index: 10;
315
341
  color: black;
@@ -327,8 +353,7 @@ export default css`
327
353
  .switchBox .switch input ~ .label .icon {
328
354
  position: relative;
329
355
  margin-right: var(--spacing-10);
330
- top: var(--spacing-2);
331
- }
356
+ }
332
357
 
333
358
  .switchBox .switch input ~ .label .icon svg {
334
359
  width: var(--spacing-24);
@@ -360,25 +360,12 @@ class PricingSwitch extends LitElement {
360
360
  <span class="slider round"></span>
361
361
  <span class="label right">
362
362
  <span class="icon icon-user-sharp-regular">
363
- <img
364
- src="/assets/bd-icon-user.png"
365
- alt="icon"
366
- class="badge-icon-user"
367
- height="22"
368
- width="22"
369
- />
370
363
  </span>
371
364
  Individual
372
365
  </span>
373
366
  <span class="label left">
374
367
  <span class="icon icon-family-pants-sharp-regular">
375
- <img
376
- src="/assets/bd-icon-family.png"
377
- alt="icon"
378
- class="badge-icon-family"
379
- height="24"
380
- width="24"
381
- />
368
+
382
369
  </span>
383
370
  Family
384
371
  </span>
@@ -25,15 +25,15 @@
25
25
  .bd-container {
26
26
  max-width: 1200px;
27
27
  margin: 0 auto;
28
- padding: var(--size-16);
28
+ padding: var(--spacing-16);
29
29
  display: flex;
30
30
  flex-direction: column;
31
- gap: var(--size-8);
31
+ gap: var(--spacing-8);
32
32
  }
33
33
 
34
34
  .bd-container-fluid {
35
35
  width: 100%;
36
- padding: var(--size-16);
36
+ padding: var(--spacing-16);
37
37
  }
38
38
 
39
39
  .pricing-container {
@@ -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,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);