@repobit/dex-system-design 0.23.32 → 0.23.34

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 (38) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.json +4 -4
  3. package/src/components/accordion/accordion-bg.css.js +18 -6
  4. package/src/components/accordion/accordion-bg.js +162 -29
  5. package/src/components/accordion/accordion-bg.stories.js +123 -3
  6. package/src/components/accordion/accordion.css.js +25 -15
  7. package/src/components/accordion/accordion.js +38 -29
  8. package/src/components/awards/awards-icon.js +4 -4
  9. package/src/components/awards/awards.css.js +4 -3
  10. package/src/components/awards/awards.js +88 -148
  11. package/src/components/awards/awards.stories.js +11 -51
  12. package/src/components/badge/badge.css.js +0 -17
  13. package/src/components/badge/badge.js +5 -2
  14. package/src/components/footer/footer.css.js +0 -17
  15. package/src/components/footer/footer.js +23 -17
  16. package/src/components/icons/analysis-icon.js +25 -0
  17. package/src/components/icons/arrow-down-icon.js +28 -0
  18. package/src/components/icons/arrow-up-icon.js +28 -0
  19. package/src/components/icons/av-comparatives-icon.js +34 -0
  20. package/src/components/icons/best-brands-icon.js +36 -0
  21. package/src/components/icons/close-icon.js +28 -0
  22. package/src/components/icons/family-icon.js +31 -0
  23. package/src/components/icons/globe-icon.js +28 -0
  24. package/src/components/icons/guide-icon.js +28 -0
  25. package/src/components/icons/icons.stories.js +226 -0
  26. package/src/components/icons/individual-icon.js +29 -0
  27. package/src/components/icons/laurel-icon.js +39 -0
  28. package/src/components/icons/machine-learning-icon.js +26 -0
  29. package/src/components/icons/minus-icon.js +6 -4
  30. package/src/components/icons/pc-mag-2024-icon.js +35 -0
  31. package/src/components/icons/pc-mag-business-icon.js +35 -0
  32. package/src/components/icons/pc-mag-icon.js +35 -0
  33. package/src/components/icons/pc-mag-readers-icon.js +34 -0
  34. package/src/components/icons/plus-icon.js +6 -4
  35. package/src/components/icons/top-product-icon.js +35 -0
  36. package/src/components/light-carousel/light-carousel.stories.js +523 -76
  37. package/src/components/paragraph/paragraph.css.js +1 -0
  38. package/src/components/paragraph/paragraph.js +34 -2
package/CHANGELOG.md CHANGED
@@ -3,6 +3,20 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.23.34](https://github.com/bitdefender/dex-core/compare/@repobit/dex-system-design@0.23.33...@repobit/dex-system-design@0.23.34) (2026-05-21)
7
+
8
+ ### Bug Fixes
9
+
10
+ * **DEX-1014:** refactor accordion structure
11
+
12
+
13
+ ## [0.23.33](https://github.com/bitdefender/dex-core/compare/@repobit/dex-system-design@0.23.32...@repobit/dex-system-design@0.23.33) (2026-05-21)
14
+
15
+ ### Bug Fixes
16
+
17
+ * **DEX-1014:** refactor accordion and replace static SVG assets
18
+
19
+
6
20
  ## [0.23.32](https://github.com/bitdefender/dex-core/compare/@repobit/dex-system-design@0.23.31...@repobit/dex-system-design@0.23.32) (2026-05-18)
7
21
 
8
22
  ### Bug Fixes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@repobit/dex-system-design",
3
- "version": "0.23.32",
3
+ "version": "0.23.34",
4
4
  "description": "Design system based on Web Components.",
5
5
  "author": "Iordache Matei Cezar <miordache@bitdefender.com>",
6
6
  "homepage": "https://github.com/bitdefender/dex-core#readme",
@@ -70,8 +70,8 @@
70
70
  "url": "https://github.com/bitdefender/dex-core/issues"
71
71
  },
72
72
  "dependencies": {
73
- "@repobit/dex-store": "1.3.28",
74
- "@repobit/dex-store-elements": "1.4.20",
73
+ "@repobit/dex-store": "1.3.30",
74
+ "@repobit/dex-store-elements": "1.4.22",
75
75
  "lit": "^3.3.2"
76
76
  },
77
77
  "devDependencies": {
@@ -88,5 +88,5 @@
88
88
  "volta": {
89
89
  "node": "24.14.0"
90
90
  },
91
- "gitHead": "fad52633a951246bb6cab80a5b6966044d833a8c"
91
+ "gitHead": "7d7e902dcbbb5deee029ea3e70d7cd27758b950e"
92
92
  }
@@ -9,10 +9,16 @@ export default css`
9
9
  --bd-accesibility-focus: var(--color-blue-500);
10
10
  display: block;
11
11
  }
12
+ :host(bd-accordion-bg-item[data-variant="terms-of-use"]) {
13
+ background-color: transparent !important;
14
+ padding: 0;
15
+ border-radius: 0;
16
+ }
17
+
12
18
 
13
19
  :host(bd-accordion-bg-item) {
14
20
  display: block;
15
- margin-bottom: var(--spacing-12);
21
+ margin-bottom: var(--spacing-16);
16
22
  padding: 0 var(--spacing-16);
17
23
  box-sizing: border-box;
18
24
  background-color: var(--color-blue-50);
@@ -51,6 +57,13 @@ export default css`
51
57
  box-shadow: var(--focus-outline-primary);
52
58
  }
53
59
 
60
+ ::slotted(bd-p) {
61
+ padding-bottom: var(--spacing-16);
62
+ }
63
+
64
+ ::slotted(bd-p:last-child) {
65
+ padding-bottom: 0;
66
+ }
54
67
  .bd-accordion-bg-item {
55
68
  margin-bottom: 0;
56
69
  border-radius: 0;
@@ -67,7 +80,7 @@ export default css`
67
80
  align-items: flex-start;
68
81
  gap: var(--spacing-12);
69
82
  width: 100%;
70
- padding: var(--spacing-12) 0;
83
+ padding: var(--spacing-16) 0;
71
84
  margin: 0;
72
85
  border: none;
73
86
  font: inherit;
@@ -165,7 +178,7 @@ export default css`
165
178
  display: block;
166
179
  max-height: 5000px;
167
180
  opacity: 1;
168
- padding: var(--spacing-0) var(--spacing-0) var(--spacing-12)
181
+ padding: var(--spacing-0) var(--spacing-0) var(--spacing-16)
169
182
  calc(var(--icon-sm-size) + var(--spacing-12));
170
183
  }
171
184
 
@@ -179,10 +192,9 @@ export default css`
179
192
  }
180
193
 
181
194
  .bd-accordion-bg-container {
182
- width: 100%;
195
+ // width: 100%;
183
196
  margin: auto;
184
- padding-top: var(--spacing-64);
185
- padding-bottom: var(--spacing-64);
197
+ padding: var(--spacing-64) var(--spacing-32) var(--spacing-64) var(--spacing-32)
186
198
  }
187
199
 
188
200
  .bd-accordion-bg-container.no-bg {
@@ -1,62 +1,166 @@
1
1
  import { LitElement, html } from "lit";
2
2
  import { tokens } from "../../tokens/tokens.js";
3
+ import "../heading/heading.js";
3
4
  import "../icons/minus-icon.js";
4
5
  import "../icons/plus-icon.js";
6
+ import "../paragraph/paragraph.js";
5
7
  import accordionCSS from "./accordion-bg.css.js";
8
+ import { accordionItem, accordionSection } from "./accordion.css.js";
6
9
 
7
10
  class BdAccordionBg extends LitElement {
8
11
  static properties = {
9
- title: { type: String },
10
- noBg : { type: Boolean, reflect: true, attribute: "no-bg" }
11
- };
12
+ title : { type: String },
13
+ noBg : { type: Boolean, reflect: true, attribute: "no-bg" },
14
+ guideIcon : { type: String, reflect: true, attribute: "guide-icon" },
15
+ guideLabel: { type: String, reflect: true, attribute: "guide-label" },
16
+ guideHref : { type: String, reflect: true, attribute: "guide-href" },
17
+ _variant : { state: true },
18
+ variant : { type: String, reflect: true, attribute: "data-variant" }
19
+ }
12
20
 
13
21
  constructor() {
14
22
  super();
15
- this.noBg = false;
23
+ this.noBg = false;
24
+ this._variant = "default";
25
+ this.variant = "default";
26
+ this.guideIcon = "";
27
+ this.guideLabel = "";
28
+ this.guideHref = "#";
16
29
  }
17
30
 
18
- static styles = [tokens, accordionCSS];
31
+ static styles = [tokens, accordionCSS, accordionSection];
19
32
 
20
- render() {
33
+ connectedCallback() {
34
+ super.connectedCallback();
35
+ Promise.resolve().then(() => this._detectVariant());
36
+ }
37
+
38
+ // În BdAccordionBg, înlocuiește _detectVariant și adaugă firstUpdated:
39
+
40
+ _detectVariant() {
41
+ let el = this.parentElement;
42
+ while (el) {
43
+ if (el.classList.contains("faq")) {
44
+ this._variant = "faq";
45
+ this.variant = "faq";
46
+ this._propagateVariant("faq");
47
+ return;
48
+ }
49
+ if (
50
+ el.classList.contains("terms-of-use") ||
51
+ el.classList.contains("system-requirements")
52
+ ) {
53
+ this._variant = "terms-of-use";
54
+ this.variant = "terms-of-use";
55
+ this._propagateVariant("terms-of-use");
56
+ return;
57
+ }
58
+ el = el.parentElement;
59
+ }
60
+ this._variant = "default";
61
+ this.variant = "default";
62
+ this._propagateVariant("default");
63
+ }
64
+
65
+ _propagateVariant(variant) {
66
+ // Setam data-variant pe toti copiii slotted bd-accordion-bg-item
67
+ this.querySelectorAll("bd-accordion-bg-item").forEach(item => {
68
+ item.setAttribute("data-variant", variant);
69
+ });
70
+ }
71
+
72
+ _renderFaq() {
21
73
  return html`
22
74
  <div class="bd-accordion-bg-container ${this.noBg ? "no-bg" : ""}">
23
75
  <div class="bd-accordion-bg-header">
24
- <h1 class="bd-accordion-bg-title">${this.title}</h1>
76
+ <bd-h as="h2" class="bd-accordion-bg-title">${this.title}</bd-h>
25
77
  </div>
26
78
  <slot></slot>
27
79
  </div>
28
80
  `;
29
81
  }
82
+
83
+ _renderTerms() {
84
+ return html`
85
+ <div class="bd-accordion-section-container">
86
+ ${this.title
87
+ ? html`<bd-h as="h6" paddingBottom=var(--spacing-32) fontWeight="700" class="section-title">${this.title}</bd-h>`
88
+ : ""}
89
+ <slot></slot>
90
+ ${this.guideLabel
91
+ ? html`
92
+ <p class="user-guide-link">
93
+ <a href=${this.guideHref}>
94
+ ${this.guideIcon
95
+ ? html`<bd-plus-icon size="16" color="#006DFF"></bd-plus-icon>`
96
+ : ""}
97
+ ${this.guideLabel}
98
+ </a>
99
+ </p>`
100
+ : ""}
101
+ </div>
102
+ `;
103
+ }
104
+
105
+ render() {
106
+ return this._variant === "terms-of-use"
107
+ ? this._renderTerms()
108
+ : this._renderFaq();
109
+ }
30
110
  }
31
111
 
32
112
  class BdAccordionBgItem extends LitElement {
33
113
  static properties = {
34
- title: { type: String },
35
- open : { type: Boolean, reflect: true },
36
- noBg : { type: Boolean, reflect: true, attribute: "no-bg" }
114
+ title : { type: String },
115
+ open : { type: Boolean, reflect: true },
116
+ noBg : { type: Boolean, reflect: true, attribute: "no-bg" },
117
+ _variant: { state: true }
37
118
  };
38
119
 
39
120
  constructor() {
40
121
  super();
41
- this.title = "";
42
- this.open = false;
43
- this.noBg = false;
44
- const id = Math.random().toString(36)
122
+ this.title = "";
123
+ this.open = false;
124
+ this.noBg = false;
125
+ this._variant = "default";
126
+ const id = Math.random().toString(36)
45
127
  .slice(2, 11);
46
- /** @type {string} */
47
128
  this._headerId = `acc-bg-h-${id}`;
48
- /** @type {string} */
49
- this._panelId = `acc-bg-p-${id}`;
129
+ this._panelId = `acc-bg-p-${id}`;
50
130
  }
51
131
 
52
- static styles = [tokens, accordionCSS];
132
+ static styles = [tokens, accordionCSS, accordionItem];
133
+
134
+ connectedCallback() {
135
+ super.connectedCallback();
136
+ Promise.resolve().then(() => this._detectVariant());
137
+ }
138
+
139
+ _detectVariant() {
140
+ let el = this.parentElement;
141
+ while (el) {
142
+ if (el.classList.contains("faq")) {
143
+ this._variant = "faq";
144
+ return;
145
+ }
146
+ if (
147
+ el.classList.contains("terms-of-use") ||
148
+ el.classList.contains("system-requirements")
149
+ ) {
150
+ this._variant = "terms-of-use";
151
+ return;
152
+ }
153
+ el = el.parentElement;
154
+ }
155
+ this._variant = "default";
156
+ }
53
157
 
54
158
  toggleItem() {
55
159
  this.open = !this.open;
56
160
  }
57
161
 
58
162
  _onTriggerFocusIn() {
59
- const btn = this.renderRoot?.querySelector(".bd-accordion-bg-question");
163
+ const btn = this.renderRoot?.querySelector(".bd-accordion-bg-question, .header");
60
164
  if (!btn) return;
61
165
  requestAnimationFrame(() => {
62
166
  requestAnimationFrame(() => {
@@ -71,11 +175,35 @@ class BdAccordionBgItem extends LitElement {
71
175
  this.removeAttribute("data-bd-acc-focus");
72
176
  }
73
177
 
74
- render() {
178
+ // Design bd-accordion — pentru terms-of-use si system-requirements
179
+ _renderTerms() {
75
180
  return html`
76
- <div
77
- class="bd-accordion-bg-item ${this.open ? "open" : ""} ${this.noBg ? "no-bg" : ""}"
181
+ <button
182
+ type="button"
183
+ class="header"
184
+ aria-expanded="${this.open}"
185
+ aria-controls="${this._panelId}"
186
+ @click=${this.toggleItem}
187
+ @focusin=${this._onTriggerFocusIn}
188
+ @focusout=${this._onTriggerFocusOut}
78
189
  >
190
+ <span class="toggle" aria-hidden="true">
191
+ ${this.open
192
+ ? html`<bd-minus-icon size="16" color="#006DFF"></bd-minus-icon>`
193
+ : html`<bd-plus-icon size="16" color="#006DFF"></bd-plus-icon>`}
194
+ </span>
195
+ <span class="title">${this.title}</span>
196
+ </button>
197
+ <div id="${this._panelId}" class="content" ?hidden=${!this.open}>
198
+ <slot></slot>
199
+ </div>
200
+ `;
201
+ }
202
+
203
+ // Design bd-accordion-bg — pentru faq (default)
204
+ _renderDefault() {
205
+ return html`
206
+ <div class="bd-accordion-bg-item ${this.open ? "open" : ""} ${this.noBg ? "no-bg" : ""}">
79
207
  <button
80
208
  type="button"
81
209
  id="${this._headerId}"
@@ -86,12 +214,11 @@ class BdAccordionBgItem extends LitElement {
86
214
  @focusin=${this._onTriggerFocusIn}
87
215
  @focusout=${this._onTriggerFocusOut}
88
216
  >
89
- <span class="bd-accordion-bg-icon" aria-hidden="true">
90
- ${this.open
91
- ? html`<bd-minus-icon size="16" color="#006DFF"></minus-icon>`
92
- : html`<bd-plus-icon size="16" color="#006DFF"></plus-icon>`
93
- }
94
- </span>
217
+ <span class="bd-accordion-bg-icon" aria-hidden="true">
218
+ ${this.open
219
+ ? html`<bd-minus-icon size="16" color="#006DFF"></bd-minus-icon>`
220
+ : html`<bd-plus-icon size="16" color="#006DFF"></bd-plus-icon>`}
221
+ </span>
95
222
  <span class="bd-accordion-bg-question-text">${this.title}</span>
96
223
  </button>
97
224
  <div
@@ -106,7 +233,13 @@ class BdAccordionBgItem extends LitElement {
106
233
  </div>
107
234
  `;
108
235
  }
236
+
237
+ render() {
238
+ return this._variant === "terms-of-use"
239
+ ? this._renderTerms()
240
+ : this._renderDefault();
241
+ }
109
242
  }
110
243
 
111
244
  customElements.define("bd-accordion-bg", BdAccordionBg);
112
- customElements.define("bd-accordion-bg-item", BdAccordionBgItem);
245
+ customElements.define("bd-accordion-bg-item", BdAccordionBgItem);
@@ -1,4 +1,9 @@
1
1
  import { html } from "lit";
2
+ import "../accordion/accordion.js";
3
+ import "../divider/divider-horizontal.js";
4
+ import "../list/list-item/list-item.js";
5
+ import "../list/list.js";
6
+ import "../paragraph/paragraph.js";
2
7
  import "./accordion-bg.js";
3
8
 
4
9
  export default {
@@ -16,9 +21,6 @@ Two Lit web components for building FAQ-style accordion sections with an optiona
16
21
  <bd-accordion-bg-item title="What is Bitdefender?">
17
22
  <p>Bitdefender is a global cybersecurity leader...</p>
18
23
  </bd-accordion-bg-item>
19
- <bd-accordion-bg-item title="How do I renew my subscription?">
20
- <p>Log in to Bitdefender Central and go to My Subscriptions...</p>
21
- </bd-accordion-bg-item>
22
24
  </bd-accordion-bg>
23
25
  \`\`\`
24
26
 
@@ -43,6 +45,124 @@ Two Lit web components for building FAQ-style accordion sections with an optiona
43
45
  };
44
46
 
45
47
 
48
+ // ─── Toate 3 variantele pe aceeasi pagina ─────────────────────────────────────
49
+
50
+ export const AllVariants = {
51
+ name : "FAQ + Terms of Use + System Requirements",
52
+ render: () => html`
53
+
54
+ <!-- FAQ -->
55
+ <div class="accordion faq block">
56
+ <bd-accordion-bg title="Questions? Answers." id="anchor-1-section">
57
+ <bd-accordion-bg-item title="How does Bitdefender Internet Security protect me?">
58
+ <bd-p kind="small">Bitdefender Internet Security provides the best protection through multiple layers of security:</bd-p>
59
+ <bd-list type="unordered" spacing="md" variant="default" orientation="vertical">
60
+ <bd-li kind="bullet" size="md"><bd-p kind="small">Advanced threat detection using artificial intelligence</bd-p></bd-li>
61
+ <bd-li kind="bullet" size="md"><bd-p kind="small">Real-time protection against viruses, malware, and ransomware</bd-p></bd-li>
62
+ <bd-li kind="bullet" size="md"><bd-p kind="small">Secure browsing with anti-phishing technology</bd-p></bd-li>
63
+ <bd-li kind="bullet" size="md"><bd-p kind="small">Firewall protection for network security</bd-p></bd-li>
64
+ </bd-list>
65
+ <bd-p kind="small">All these features work together to provide comprehensive protection for your devices.</bd-p>
66
+ </bd-accordion-bg-item>
67
+
68
+ <bd-accordion-bg-item title="Does Bitdefender protect me against ransomware?">
69
+ <bd-p kind="small">Yes! Bitdefender Internet Security offers unbeatable ransomware protection with:</bd-p>
70
+ <bd-list type="unordered" spacing="md" variant="default" orientation="vertical">
71
+ <bd-li kind="bullet" size="md"><bd-p kind="small">Multi-layer ransomware protection</bd-p></bd-li>
72
+ <bd-li kind="bullet" size="md"><bd-p kind="small">Behavioral detection to stop unknown threats</bd-p></bd-li>
73
+ <bd-li kind="bullet" size="md"><bd-p kind="small">Safe Files feature to protect your important documents</bd-p></bd-li>
74
+ <bd-li kind="bullet" size="md"><bd-p kind="small">Real-time monitoring of file encryption attempts</bd-p></bd-li>
75
+ </bd-list>
76
+ </bd-accordion-bg-item>
77
+
78
+ <bd-accordion-bg-item title="Do I get a VPN with Bitdefender Internet Security?">
79
+ <bd-p kind="small">Bitdefender Internet Security includes a basic VPN with 200MB per day. Additional features include:</bd-p>
80
+ <bd-list type="unordered" spacing="md" variant="default" orientation="vertical">
81
+ <bd-li kind="bullet" size="md"><bd-p kind="small">200MB daily VPN traffic for secure browsing</bd-p></bd-li>
82
+ <bd-li kind="bullet" size="md"><bd-p kind="small">Automatic activation on unsecured Wi-Fi networks</bd-p></bd-li>
83
+ <bd-li kind="bullet" size="md"><bd-p kind="small">Banking encryption for financial transactions</bd-p></bd-li>
84
+ <bd-li kind="bullet" size="md"><bd-p kind="small">Option to upgrade to unlimited VPN</bd-p></bd-li>
85
+ </bd-list>
86
+ </bd-accordion-bg-item>
87
+
88
+ <bd-accordion-bg-item title="What devices are supported?">
89
+ <bd-p kind="small">Bitdefender Internet Security supports a wide range of devices:</bd-p>
90
+ <bd-list type="unordered" spacing="md" variant="default" orientation="vertical">
91
+ <bd-li kind="bullet" size="md"><bd-p kind="small">Windows 10, 11 (32-bit and 64-bit)</bd-p></bd-li>
92
+ <bd-li kind="bullet" size="md"><bd-p kind="small">macOS 10.12 or later</bd-p></bd-li>
93
+ <bd-li kind="bullet" size="md"><bd-p kind="small">Android 5.0 or later</bd-p></bd-li>
94
+ <bd-li kind="bullet" size="md"><bd-p kind="small">iOS 12 or later</bd-p></bd-li>
95
+ </bd-list>
96
+ </bd-accordion-bg-item>
97
+
98
+ <bd-accordion-bg-item title="System requirements">
99
+ <bd-p kind="small">Minimum system requirements for optimal performance:</bd-p>
100
+ <bd-list type="unordered" spacing="md" variant="default" orientation="vertical">
101
+ <bd-li kind="bullet" size="md"><bd-p kind="small">1GB RAM minimum (2GB recommended)</bd-p></bd-li>
102
+ <bd-li kind="bullet" size="md"><bd-p kind="small">2.5GB available hard disk space</bd-p></bd-li>
103
+ <bd-li kind="bullet" size="md"><bd-p kind="small">Internet connection for activation and updates</bd-p></bd-li>
104
+ <bd-li kind="bullet" size="md"><bd-p kind="small">Intel Core 2 Duo processor or equivalent</bd-p></bd-li>
105
+ </bd-list>
106
+ </bd-accordion-bg-item>
107
+ </bd-accordion-bg>
108
+ </div>
109
+
110
+ <!-- Terms of Use -->
111
+ <div class="accordion terms-of-use block">
112
+ <bd-accordion-section title="Terms of use">
113
+ <bd-accordion-item title="Auto renewal terms" open>
114
+ <bd-p kind="small">Your subscription automatically begins at the purchase date;</bd-p>
115
+ <bd-p kind="small">By subscribing, you are purchasing a recurring subscription which will automatically renew;</bd-p>
116
+ <bd-p kind="small">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.</bd-p>
117
+ </bd-accordion-item>
118
+
119
+ <bd-accordion-item title="Here is what the Bitdefender Auto Renewal Plan means for you">
120
+ <bd-p kind="small"><a href="#">Here is what the Bitdefender Auto Renewal Plan means for you</a></bd-p>
121
+ </bd-accordion-item>
122
+
123
+ <bd-accordion-item title="Affirmative consent">
124
+ <bd-p kind="small"><a href="#">Affirmative consent</a></bd-p>
125
+ </bd-accordion-item>
126
+
127
+ <bd-accordion-item title="How to cancel + email address cancelation support">
128
+ <bd-p kind="small"><a href="#">How to cancel + email address cancelation support</a></bd-p>
129
+ </bd-accordion-item>
130
+ </bd-accordion-section>
131
+ </div>
132
+
133
+ <bd-divider-horizontal width="95%"></bd-divider-horizontal>
134
+
135
+ <!-- System Requirements -->
136
+ <div class="accordion system-requirements block">
137
+ <bd-accordion-section title="System Requirements" guide-icon="src/assets/user_guide.png" guide-label="User guide >" guide-href="#">
138
+ <bd-accordion-item title="Bitdefender Parental Control" open>
139
+ <bd-p kind="small">
140
+ <strong>Windows™ Operating Systems</strong><br />
141
+ Microsoft Windows 7 (all versions) with Service Pack 1 (SP 1) or later.
142
+ </bd-p>
143
+ <bd-p kind="small">
144
+ <strong>Mac® Operating Systems</strong><br />
145
+ macOS X Yosemite (10.10) or later
146
+ </bd-p>
147
+ <bd-p kind="small">
148
+ <strong>Android™ Operating Systems</strong><br />
149
+ Android 5.0 or later
150
+ </bd-p>
151
+ <bd-p kind="small">
152
+ <strong>iOS Operating Systems</strong><br />
153
+ Android 5.0 or later
154
+ </bd-p>
155
+ </bd-accordion-item>
156
+
157
+ <bd-accordion-item title="Bitdefender Central">
158
+ <bd-p kind="small">Bitdefender Central</bd-p>
159
+ </bd-accordion-item>
160
+ </bd-accordion-section>
161
+ </div>
162
+ `
163
+ };
164
+
165
+
46
166
  // ─── Default ─────────────────────────────────────────────────────────────────
47
167
 
48
168
  export const Default = {
@@ -8,7 +8,7 @@ import { css } from "lit";
8
8
  export const accordionItem = css`
9
9
  :host {
10
10
  display: block;
11
- margin-bottom: var(--bd-acc-item-margin-bottom, var(--spacing-8));
11
+ margin-bottom: var(--bd-acc-item-margin-bottom, var(--spacing-16));
12
12
  box-sizing: border-box;
13
13
  border-radius: var(--radius-sm);
14
14
  }
@@ -80,7 +80,7 @@ export const accordionItem = css`
80
80
  var(--typography-fontWeight-semibold)
81
81
  );
82
82
  line-height: var(--bd-acc-title-line-height, var(--typography-lineHeight-normal));
83
- margin-bottom: var(--bd-acc-header-margin-bottom, var(--spacing-8));
83
+ margin-bottom: var(--bd-acc-header-margin-bottom, var(--spacing-16));
84
84
  }
85
85
 
86
86
  .header:focus-visible {
@@ -89,11 +89,11 @@ export const accordionItem = css`
89
89
  }
90
90
 
91
91
  .header[aria-expanded="true"] .title {
92
- color: var(--bd-acc-title-color-expanded, var(--color-neutral-900));
92
+ color: var(--color-blue-500);
93
93
  }
94
94
 
95
95
  .header[aria-expanded="false"] .title {
96
- color: var(--bd-acc-title-color-collapsed, var(--color-neutral-900));
96
+ color: var(--color-blue-500);
97
97
  }
98
98
 
99
99
  :host-context(bd-accordion-section[variant="small"])
@@ -175,7 +175,12 @@ export const accordionItem = css`
175
175
  .content[hidden] {
176
176
  display: none !important;
177
177
  }
178
-
178
+ ::slotted(bd-p) {
179
+ padding-bottom: var(--spacing-16);
180
+ }
181
+ ::slotted(bd-p:last-child) {
182
+ padding-bottom: 0px;
183
+ }
179
184
  ::slotted(p) {
180
185
  margin-top: 0;
181
186
  margin-bottom: var(--bd-acc-panel-paragraph-gap, var(--spacing-16));
@@ -192,11 +197,16 @@ export const accordionItem = css`
192
197
  `;
193
198
 
194
199
  export const accordionSection = css`
195
- :host {
196
- display: block;
200
+ // :host {
201
+ // display: block;
202
+ // background-color: var(--bd-acc-section-bg, var(--color-neutral-25));
203
+ // padding: var(--bd-acc-section-padding, var(--spacing-32));
204
+ // box-sizing: border-box;
205
+ // }
206
+ .bd-accordion-section-container {
197
207
  background-color: var(--bd-acc-section-bg, var(--color-neutral-25));
198
208
  padding: var(--bd-acc-section-padding, var(--spacing-32));
199
- box-sizing: border-box;
209
+ border-radius: var(--bd-acc-section-radius, var(--radius-lg));
200
210
  }
201
211
 
202
212
  :host([variant="small"]) {
@@ -220,7 +230,7 @@ export const accordionSection = css`
220
230
  font-weight: var(--typography-fontWeight-bold);
221
231
  font-size: var(--typography-body-regular-fontSize);
222
232
  line-height: var(--typography-lineHeight-normal);
223
- color: var(--color-neutral-900);
233
+ color: var(--color-neutral-1000);
224
234
  }
225
235
 
226
236
  :host([variant="small"]) .section-title {
@@ -229,19 +239,19 @@ export const accordionSection = css`
229
239
  }
230
240
 
231
241
  .user-guide-link {
232
- margin-top: var(--spacing-16);
233
- font-family: var(--typography-fontFamily-sans);
234
- font-size: var(--typography-fontSize-xs);
242
+ margin-top: var(--spacing-32);
235
243
  color: var(--color-blue-600);
236
- margin-left: var(--spacing-8);
237
244
  }
238
245
 
239
246
  .user-guide-link a {
240
247
  display: inline-flex;
241
248
  align-items: center;
242
249
  text-decoration: none;
243
- color: inherit;
244
- gap: var(--spacing-6);
250
+ color: var(--color-blue-500);
251
+ gap: var(--spacing-12);
252
+ font-family: Arial, Helvetica, sans-serif;
253
+ font-size: var(--typography-fontSize-xs);
254
+
245
255
  }
246
256
 
247
257
  .user-guide-link a:focus-visible {