@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.
- package/CHANGELOG.md +14 -0
- package/package.json +4 -4
- package/src/components/accordion/accordion-bg.css.js +18 -6
- package/src/components/accordion/accordion-bg.js +162 -29
- package/src/components/accordion/accordion-bg.stories.js +123 -3
- package/src/components/accordion/accordion.css.js +25 -15
- package/src/components/accordion/accordion.js +38 -29
- package/src/components/awards/awards-icon.js +4 -4
- package/src/components/awards/awards.css.js +4 -3
- package/src/components/awards/awards.js +88 -148
- package/src/components/awards/awards.stories.js +11 -51
- package/src/components/badge/badge.css.js +0 -17
- package/src/components/badge/badge.js +5 -2
- package/src/components/footer/footer.css.js +0 -17
- package/src/components/footer/footer.js +23 -17
- package/src/components/icons/analysis-icon.js +25 -0
- package/src/components/icons/arrow-down-icon.js +28 -0
- package/src/components/icons/arrow-up-icon.js +28 -0
- package/src/components/icons/av-comparatives-icon.js +34 -0
- package/src/components/icons/best-brands-icon.js +36 -0
- package/src/components/icons/close-icon.js +28 -0
- package/src/components/icons/family-icon.js +31 -0
- package/src/components/icons/globe-icon.js +28 -0
- package/src/components/icons/guide-icon.js +28 -0
- package/src/components/icons/icons.stories.js +226 -0
- package/src/components/icons/individual-icon.js +29 -0
- package/src/components/icons/laurel-icon.js +39 -0
- package/src/components/icons/machine-learning-icon.js +26 -0
- package/src/components/icons/minus-icon.js +6 -4
- package/src/components/icons/pc-mag-2024-icon.js +35 -0
- package/src/components/icons/pc-mag-business-icon.js +35 -0
- package/src/components/icons/pc-mag-icon.js +35 -0
- package/src/components/icons/pc-mag-readers-icon.js +34 -0
- package/src/components/icons/plus-icon.js +6 -4
- package/src/components/icons/top-product-icon.js +35 -0
- package/src/components/light-carousel/light-carousel.stories.js +523 -76
- package/src/components/paragraph/paragraph.css.js +1 -0
- 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.
|
|
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.
|
|
74
|
-
"@repobit/dex-store-elements": "1.4.
|
|
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": "
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
<
|
|
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
|
|
36
|
-
noBg
|
|
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
|
|
43
|
-
this.noBg
|
|
44
|
-
|
|
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
|
-
|
|
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
|
-
|
|
178
|
+
// Design bd-accordion — pentru terms-of-use si system-requirements
|
|
179
|
+
_renderTerms() {
|
|
75
180
|
return html`
|
|
76
|
-
<
|
|
77
|
-
|
|
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
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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-
|
|
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-
|
|
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(--
|
|
92
|
+
color: var(--color-blue-500);
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
.header[aria-expanded="false"] .title {
|
|
96
|
-
color: var(--
|
|
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
|
-
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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:
|
|
244
|
-
gap: var(--spacing-
|
|
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 {
|