@repobit/dex-system-design 0.23.8 → 0.23.9
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 +7 -0
- package/package.json +2 -2
- package/src/components/accordion/accordion-bg.css.js +119 -100
- package/src/components/accordion/accordion-bg.js +53 -41
- package/src/components/accordion/accordion-bg.stories.js +140 -269
- package/src/components/accordion/accordion.css.js +202 -31
- package/src/components/accordion/accordion.js +73 -31
- package/src/components/accordion/accordion.stories.js +182 -278
- package/src/components/awards/awards-icon.js +44 -32
- package/src/components/awards/awards.css.js +219 -216
- package/src/components/awards/awards.js +156 -132
- package/src/components/awards/awards.stories.js +229 -243
- package/src/components/carousel/carousel.stories.js +13 -13
- package/src/components/pricing-cards/new-pricing-card.stories.js +4 -0
- package/src/components/pricing-cards/pricing-card-pricing.js +3 -1
- package/src/tokens/tokens.css +8 -0
- package/src/tokens/tokens.js +9 -0
|
@@ -1,339 +1,243 @@
|
|
|
1
|
-
import { html } from
|
|
2
|
-
import
|
|
1
|
+
import { html } from "lit";
|
|
2
|
+
import "./accordion.js";
|
|
3
3
|
|
|
4
4
|
export default {
|
|
5
|
-
title :
|
|
6
|
-
tags : [
|
|
5
|
+
title : "Components/Accordion",
|
|
6
|
+
tags : ["autodocs"],
|
|
7
7
|
parameters: {
|
|
8
|
-
|
|
8
|
+
layout: "padded",
|
|
9
|
+
docs : {
|
|
9
10
|
description: {
|
|
10
11
|
component: `
|
|
11
|
-
|
|
12
|
+
Two Lit web components for building accordion sections.
|
|
12
13
|
|
|
13
|
-
Two elements are available:
|
|
14
|
-
- \`<bd-accordion-item>\` — a single collapsible item with a +/− toggle
|
|
15
|
-
- \`<bd-accordion-section>\` — a section wrapper with optional title and user guide link
|
|
16
|
-
|
|
17
|
-
### Usage
|
|
18
14
|
\`\`\`html
|
|
19
|
-
<bd-accordion-section
|
|
20
|
-
title="
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
>
|
|
24
|
-
|
|
25
|
-
<p>All features are included in every plan.</p>
|
|
15
|
+
<bd-accordion-section title="Frequently Asked Questions">
|
|
16
|
+
<bd-accordion-item title="What is Bitdefender?">
|
|
17
|
+
<p>Bitdefender is a cybersecurity company...</p>
|
|
18
|
+
</bd-accordion-item>
|
|
19
|
+
<bd-accordion-item title="How do I install it?">
|
|
20
|
+
<p>Download the installer from our website...</p>
|
|
26
21
|
</bd-accordion-item>
|
|
27
22
|
</bd-accordion-section>
|
|
28
23
|
\`\`\`
|
|
29
24
|
|
|
30
|
-
###
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
### Attributes
|
|
26
|
+
|
|
27
|
+
#### \`bd-accordion-section\`
|
|
28
|
+
| Attribute | Type | Default | Description |
|
|
29
|
+
|---------------|--------|-------------|-----------------------------------------------------------------------------|
|
|
30
|
+
| \`title\` | String | — | Optional section heading rendered as \`<h2>\` |
|
|
31
|
+
| \`variant\` | String | \`default\` | \`default\` · \`default-blue\` · \`small\` |
|
|
32
|
+
| \`guide-icon\` | String | — | Path to icon shown next to the user guide link |
|
|
33
|
+
| \`guide-label\` | String | — | Text for the user guide link (renders the link when set) |
|
|
34
|
+
| \`guide-href\` | String | \`#\` | URL for the user guide link |
|
|
35
|
+
|
|
36
|
+
#### \`bd-accordion-item\`
|
|
37
|
+
| Attribute | Type | Default | Description |
|
|
38
|
+
|-----------|---------|---------|--------------------------------------|
|
|
39
|
+
| \`title\` | String | — | Trigger label |
|
|
40
|
+
| \`open\` | Boolean | \`false\`| Whether the panel is expanded |
|
|
34
41
|
`
|
|
35
42
|
}
|
|
36
43
|
}
|
|
37
|
-
},
|
|
38
|
-
argTypes: {
|
|
39
|
-
// BdAccordionItem
|
|
40
|
-
itemTitle: {
|
|
41
|
-
control : 'text',
|
|
42
|
-
description: 'Title text displayed in the accordion item header',
|
|
43
|
-
table : {
|
|
44
|
-
type : { summary: 'string' },
|
|
45
|
-
defaultValue: { summary: '' },
|
|
46
|
-
category : 'BdAccordionItem'
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
open: {
|
|
50
|
-
control : 'boolean',
|
|
51
|
-
description: 'Whether the accordion item is expanded by default',
|
|
52
|
-
table : {
|
|
53
|
-
type : { summary: 'boolean' },
|
|
54
|
-
defaultValue: { summary: 'false' },
|
|
55
|
-
category : 'BdAccordionItem'
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
// BdAccordionSection
|
|
59
|
-
sectionTitle: {
|
|
60
|
-
control : 'text',
|
|
61
|
-
description: 'Section heading rendered as an `<h2>`',
|
|
62
|
-
table : {
|
|
63
|
-
type : { summary: 'string' },
|
|
64
|
-
defaultValue: { summary: '' },
|
|
65
|
-
category : 'BdAccordionSection'
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
guideLabel: {
|
|
69
|
-
control : 'text',
|
|
70
|
-
description: 'Label for the user guide link. If empty, the link is not rendered.',
|
|
71
|
-
table : {
|
|
72
|
-
type : { summary: 'string' },
|
|
73
|
-
defaultValue: { summary: '' },
|
|
74
|
-
category : 'BdAccordionSection'
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
guideHref: {
|
|
78
|
-
control : 'text',
|
|
79
|
-
description: 'URL for the user guide link',
|
|
80
|
-
table : {
|
|
81
|
-
type : { summary: 'string' },
|
|
82
|
-
defaultValue: { summary: '#' },
|
|
83
|
-
category : 'BdAccordionSection'
|
|
84
|
-
}
|
|
85
|
-
},
|
|
86
|
-
guideIcon: {
|
|
87
|
-
control : 'text',
|
|
88
|
-
description: 'Path to the icon image shown next to the guide link',
|
|
89
|
-
table : {
|
|
90
|
-
type : { summary: 'string' },
|
|
91
|
-
defaultValue: { summary: '/assets/user_guide.png' },
|
|
92
|
-
category : 'BdAccordionSection'
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
44
|
}
|
|
96
45
|
};
|
|
97
46
|
|
|
98
|
-
const defaultItems = [
|
|
99
|
-
{ title: 'What is included in my plan?', content: 'All core features are included in every Bitdefender plan.' },
|
|
100
|
-
{ title: 'Can I use it on multiple devices?', content: 'Yes, depending on your subscription you can protect up to unlimited devices.' },
|
|
101
|
-
{ title: 'How do I renew my subscription?', content: 'You can renew from your Bitdefender Central account at any time.' },
|
|
102
|
-
{ title: 'Is there a free trial?', content: 'Yes, a 30-day free trial is available for most products.' }
|
|
103
|
-
];
|
|
104
47
|
|
|
105
|
-
// ───
|
|
48
|
+
// ─── Default ─────────────────────────────────────────────────────────────────
|
|
106
49
|
|
|
107
|
-
export const
|
|
108
|
-
name :
|
|
50
|
+
export const Default = {
|
|
51
|
+
name : "Default",
|
|
109
52
|
render: () => html`
|
|
110
|
-
<bd-accordion-
|
|
111
|
-
<
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
53
|
+
<bd-accordion-section title="Frequently Asked Questions">
|
|
54
|
+
<bd-accordion-item title="What is Bitdefender Total Security?">
|
|
55
|
+
<p>Bitdefender Total Security offers real-time protection against viruses, malware, spyware, ransomware, and other cyber threats across Windows, macOS, iOS, and Android.</p>
|
|
56
|
+
</bd-accordion-item>
|
|
57
|
+
<bd-accordion-item title="How many devices can I protect?">
|
|
58
|
+
<p>Depending on your subscription plan, you can protect between 1 and 10 devices simultaneously with a single Bitdefender account.</p>
|
|
59
|
+
</bd-accordion-item>
|
|
60
|
+
<bd-accordion-item title="Does Bitdefender slow down my computer?">
|
|
61
|
+
<p>Bitdefender is consistently rated as one of the lightest security solutions on system performance in independent AV-TEST benchmarks.</p>
|
|
62
|
+
</bd-accordion-item>
|
|
63
|
+
</bd-accordion-section>
|
|
64
|
+
`
|
|
121
65
|
};
|
|
122
66
|
|
|
123
|
-
export const ItemOpen = {
|
|
124
|
-
name : 'Item — Open',
|
|
125
|
-
render: () => html`
|
|
126
|
-
<bd-accordion-item title="What is included in my plan?" open>
|
|
127
|
-
<p>All core features are included in every Bitdefender plan.</p>
|
|
128
|
-
</bd-accordion-item>
|
|
129
|
-
`,
|
|
130
|
-
parameters: {
|
|
131
|
-
docs: {
|
|
132
|
-
description: {
|
|
133
|
-
story: 'Accordion item rendered in the open/expanded state using the `open` attribute. Shows the `−` toggle.'
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
};
|
|
138
67
|
|
|
139
|
-
|
|
140
|
-
|
|
68
|
+
// ─── One item open by default ─────────────────────────────────────────────────
|
|
69
|
+
|
|
70
|
+
export const OpenByDefault = {
|
|
71
|
+
name : "Item open by default",
|
|
141
72
|
render: () => html`
|
|
142
|
-
<bd-accordion-
|
|
143
|
-
<
|
|
144
|
-
<
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
<
|
|
148
|
-
</
|
|
149
|
-
<
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
description: {
|
|
155
|
-
story: 'Item with rich slotted content: a list, a paragraph, and an anchor link.'
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
73
|
+
<bd-accordion-section title="Getting Started">
|
|
74
|
+
<bd-accordion-item title="How do I install Bitdefender?" open>
|
|
75
|
+
<p>Download the installer from your Bitdefender account, run it, and follow the on-screen instructions. The process takes under two minutes.</p>
|
|
76
|
+
</bd-accordion-item>
|
|
77
|
+
<bd-accordion-item title="Do I need to uninstall my previous antivirus?">
|
|
78
|
+
<p>Yes. Running two security solutions simultaneously can cause conflicts. Bitdefender will prompt you to remove any detected antivirus during installation.</p>
|
|
79
|
+
</bd-accordion-item>
|
|
80
|
+
<bd-accordion-item title="What operating systems are supported?">
|
|
81
|
+
<p>Bitdefender supports Windows 7 and later, macOS 10.14 and later, Android 5.0 and later, and iOS 12 and later.</p>
|
|
82
|
+
</bd-accordion-item>
|
|
83
|
+
</bd-accordion-section>
|
|
84
|
+
`
|
|
159
85
|
};
|
|
160
86
|
|
|
161
|
-
// ─── BdAccordionSection Stories ─────────────────────────────────────────────
|
|
162
87
|
|
|
163
|
-
|
|
164
|
-
|
|
88
|
+
// ─── No section title ─────────────────────────────────────────────────────────
|
|
89
|
+
|
|
90
|
+
export const NoSectionTitle = {
|
|
91
|
+
name : "No section title",
|
|
165
92
|
render: () => html`
|
|
166
|
-
<bd-accordion-section
|
|
167
|
-
|
|
168
|
-
<
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
93
|
+
<bd-accordion-section>
|
|
94
|
+
<bd-accordion-item title="What payment methods are accepted?">
|
|
95
|
+
<p>We accept all major credit and debit cards, PayPal, and bank transfers depending on your region.</p>
|
|
96
|
+
</bd-accordion-item>
|
|
97
|
+
<bd-accordion-item title="Can I get a refund?">
|
|
98
|
+
<p>Yes. Bitdefender offers a 30-day money-back guarantee on all subscription plans.</p>
|
|
99
|
+
</bd-accordion-item>
|
|
100
|
+
<bd-accordion-item title="Is my subscription renewed automatically?">
|
|
101
|
+
<p>Subscriptions auto-renew by default. You can disable auto-renewal at any time from your Bitdefender account dashboard.</p>
|
|
102
|
+
</bd-accordion-item>
|
|
172
103
|
</bd-accordion-section>
|
|
173
|
-
|
|
174
|
-
parameters: {
|
|
175
|
-
docs: {
|
|
176
|
-
description: {
|
|
177
|
-
story: 'A full accordion section with a title and four collapsed items. No guide link.'
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|
|
104
|
+
`
|
|
181
105
|
};
|
|
182
106
|
|
|
183
|
-
|
|
184
|
-
|
|
107
|
+
|
|
108
|
+
// ─── Variant: default-blue ────────────────────────────────────────────────────
|
|
109
|
+
|
|
110
|
+
export const VariantDefaultBlue = {
|
|
111
|
+
name : "Variant — default-blue",
|
|
185
112
|
render: () => html`
|
|
186
113
|
<bd-accordion-section
|
|
187
|
-
title="
|
|
188
|
-
|
|
189
|
-
guide-href="/docs/install"
|
|
190
|
-
guide-icon="/assets/user_guide.png"
|
|
114
|
+
title="Product Features"
|
|
115
|
+
variant="default-blue"
|
|
191
116
|
>
|
|
192
|
-
|
|
193
|
-
<
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
117
|
+
<bd-accordion-item title="What is VPN and do I need it?">
|
|
118
|
+
<p>A VPN encrypts your internet traffic and hides your IP address, protecting your privacy on public Wi-Fi networks and preventing tracking.</p>
|
|
119
|
+
</bd-accordion-item>
|
|
120
|
+
<bd-accordion-item title="What is Bitdefender Photon™?">
|
|
121
|
+
<p>Photon is Bitdefender's adaptive technology that learns the patterns of your hardware and software to optimize scanning speed and efficiency.</p>
|
|
122
|
+
</bd-accordion-item>
|
|
123
|
+
<bd-accordion-item title="Does it include parental controls?">
|
|
124
|
+
<p>Yes. Bitdefender Total Security and Family Pack include comprehensive parental controls with content filtering, screen time limits, and location tracking.</p>
|
|
125
|
+
</bd-accordion-item>
|
|
197
126
|
</bd-accordion-section>
|
|
198
|
-
|
|
199
|
-
parameters: {
|
|
200
|
-
docs: {
|
|
201
|
-
description: {
|
|
202
|
-
story: 'Section with all three guide link props set: `guide-label`, `guide-href`, and `guide-icon`. The link and icon are rendered below the items.'
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
127
|
+
`
|
|
206
128
|
};
|
|
207
129
|
|
|
208
|
-
|
|
209
|
-
|
|
130
|
+
|
|
131
|
+
// ─── Variant: small ───────────────────────────────────────────────────────────
|
|
132
|
+
|
|
133
|
+
export const VariantSmall = {
|
|
134
|
+
name : "Variant — small",
|
|
210
135
|
render: () => html`
|
|
211
136
|
<bd-accordion-section
|
|
212
|
-
title="
|
|
213
|
-
|
|
214
|
-
guide-href="/docs/billing"
|
|
215
|
-
guide-icon=""
|
|
137
|
+
title="System Requirements"
|
|
138
|
+
variant="small"
|
|
216
139
|
>
|
|
217
|
-
|
|
218
|
-
<
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
140
|
+
<bd-accordion-item title="Windows requirements">
|
|
141
|
+
<p>Windows 7 with Service Pack 1, Windows 8, Windows 8.1, Windows 10, Windows 11. Minimum 2 GB RAM and 2.5 GB free disk space.</p>
|
|
142
|
+
</bd-accordion-item>
|
|
143
|
+
<bd-accordion-item title="macOS requirements">
|
|
144
|
+
<p>macOS 10.14 (Mojave) or later. Minimum 1 GB RAM and 1 GB free disk space.</p>
|
|
145
|
+
</bd-accordion-item>
|
|
146
|
+
<bd-accordion-item title="Android requirements">
|
|
147
|
+
<p>Android 5.0 or later. At least 150 MB free storage space.</p>
|
|
148
|
+
</bd-accordion-item>
|
|
149
|
+
<bd-accordion-item title="iOS requirements">
|
|
150
|
+
<p>iOS 12.0 or later. Compatible with iPhone, iPad, and iPod touch.</p>
|
|
151
|
+
</bd-accordion-item>
|
|
222
152
|
</bd-accordion-section>
|
|
223
|
-
|
|
224
|
-
parameters: {
|
|
225
|
-
docs: {
|
|
226
|
-
description: {
|
|
227
|
-
story: '`guide-icon` is set to an empty string — only the text label is rendered inside the guide link, without an icon image.'
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
153
|
+
`
|
|
231
154
|
};
|
|
232
155
|
|
|
233
|
-
export const SectionNoTitle = {
|
|
234
|
-
name : 'Section — No Title',
|
|
235
|
-
render: () => html`
|
|
236
|
-
<bd-accordion-section>
|
|
237
|
-
${defaultItems.map(item => html`
|
|
238
|
-
<bd-accordion-item title="${item.title}">
|
|
239
|
-
<p>${item.content}</p>
|
|
240
|
-
</bd-accordion-item>
|
|
241
|
-
`)}
|
|
242
|
-
</bd-accordion-section>
|
|
243
|
-
`,
|
|
244
|
-
parameters: {
|
|
245
|
-
docs: {
|
|
246
|
-
description: {
|
|
247
|
-
story: 'Section without a `title` prop. The `<h2>` is conditionally omitted.'
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
};
|
|
252
156
|
|
|
253
|
-
|
|
254
|
-
name : 'Section — First Item Open',
|
|
255
|
-
render: () => html`
|
|
256
|
-
<bd-accordion-section title="FAQ">
|
|
257
|
-
${defaultItems.map((item, i) => html`
|
|
258
|
-
<bd-accordion-item title="${item.title}" ?open="${i === 0}">
|
|
259
|
-
<p>${item.content}</p>
|
|
260
|
-
</bd-accordion-item>
|
|
261
|
-
`)}
|
|
262
|
-
</bd-accordion-section>
|
|
263
|
-
`,
|
|
264
|
-
parameters: {
|
|
265
|
-
docs: {
|
|
266
|
-
description: {
|
|
267
|
-
story: 'First item is open by default. Remaining items are collapsed.'
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
};
|
|
157
|
+
// ─── With user guide link ─────────────────────────────────────────────────────
|
|
272
158
|
|
|
273
|
-
export const
|
|
274
|
-
name :
|
|
159
|
+
export const WithGuideLink = {
|
|
160
|
+
name : "With user guide link",
|
|
275
161
|
render: () => html`
|
|
276
|
-
<bd-accordion-section
|
|
277
|
-
|
|
278
|
-
|
|
162
|
+
<bd-accordion-section
|
|
163
|
+
title="Troubleshooting"
|
|
164
|
+
guide-label="View the full user guide"
|
|
165
|
+
guide-href="https://www.bitdefender.com/consumer/support/"
|
|
166
|
+
>
|
|
167
|
+
<bd-accordion-item title="Bitdefender won't install — what should I do?">
|
|
168
|
+
<p>Make sure you have administrator rights, temporarily disable any other security software, and check that your system meets the minimum requirements.</p>
|
|
169
|
+
</bd-accordion-item>
|
|
170
|
+
<bd-accordion-item title="My subscription is not activating">
|
|
171
|
+
<p>Verify that you entered the correct activation code and that it has not already been used on the maximum number of devices allowed by your plan.</p>
|
|
279
172
|
</bd-accordion-item>
|
|
280
|
-
<bd-accordion-item title="
|
|
281
|
-
<p>
|
|
173
|
+
<bd-accordion-item title="Scans are taking very long">
|
|
174
|
+
<p>Run a Quick Scan first to address active threats. For full system scans, schedule them during low-activity periods such as overnight.</p>
|
|
282
175
|
</bd-accordion-item>
|
|
283
176
|
</bd-accordion-section>
|
|
177
|
+
`
|
|
178
|
+
};
|
|
284
179
|
|
|
180
|
+
|
|
181
|
+
// ─── With user guide link + icon ─────────────────────────────────────────────
|
|
182
|
+
|
|
183
|
+
export const WithGuideLinkAndIcon = {
|
|
184
|
+
name : "With user guide link + icon",
|
|
185
|
+
render: () => html`
|
|
285
186
|
<bd-accordion-section
|
|
286
|
-
title="
|
|
287
|
-
guide-
|
|
288
|
-
guide-
|
|
187
|
+
title="Troubleshooting"
|
|
188
|
+
guide-icon="/assets/book.svg"
|
|
189
|
+
guide-label="View the full user guide"
|
|
190
|
+
guide-href="https://www.bitdefender.com/consumer/support/"
|
|
289
191
|
>
|
|
290
|
-
<bd-accordion-item title="
|
|
291
|
-
<p>
|
|
192
|
+
<bd-accordion-item title="Bitdefender won't install — what should I do?">
|
|
193
|
+
<p>Make sure you have administrator rights, temporarily disable any other security software, and check that your system meets the minimum requirements.</p>
|
|
292
194
|
</bd-accordion-item>
|
|
293
|
-
<bd-accordion-item title="
|
|
294
|
-
<p>
|
|
195
|
+
<bd-accordion-item title="My subscription is not activating">
|
|
196
|
+
<p>Verify that you entered the correct activation code and that it has not already been used on the maximum number of devices allowed by your plan.</p>
|
|
295
197
|
</bd-accordion-item>
|
|
296
198
|
</bd-accordion-section>
|
|
297
|
-
|
|
298
|
-
parameters: {
|
|
299
|
-
docs: {
|
|
300
|
-
description: {
|
|
301
|
-
story: 'Two separate `bd-accordion-section` components rendered sequentially — one without a guide link, one with.'
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
}
|
|
199
|
+
`
|
|
305
200
|
};
|
|
306
201
|
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
202
|
+
|
|
203
|
+
// ─── bd-accordion-item isolated ──────────────────────────────────────────────
|
|
204
|
+
|
|
205
|
+
export const ItemIsolated = {
|
|
206
|
+
name : "bd-accordion-item (isolated)",
|
|
207
|
+
render: () => html`
|
|
208
|
+
<div style="max-width: 680px; padding: 1rem;">
|
|
209
|
+
<bd-accordion-item title="What is two-factor authentication?">
|
|
210
|
+
<p>Two-factor authentication (2FA) adds an extra layer of security by requiring a second form of verification — such as a code sent to your phone — in addition to your password.</p>
|
|
211
|
+
</bd-accordion-item>
|
|
212
|
+
</div>
|
|
213
|
+
`
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
// ─── Many items ───────────────────────────────────────────────────────────────
|
|
218
|
+
|
|
219
|
+
export const ManyItems = {
|
|
220
|
+
name : "Many items",
|
|
221
|
+
render: () => html`
|
|
222
|
+
<bd-accordion-section title="Everything You Need to Know">
|
|
223
|
+
<bd-accordion-item title="What is ransomware protection?">
|
|
224
|
+
<p>Ransomware protection detects and blocks attempts to encrypt your files without authorization, keeping your documents, photos, and videos safe.</p>
|
|
225
|
+
</bd-accordion-item>
|
|
226
|
+
<bd-accordion-item title="What is Safe Online Banking?">
|
|
227
|
+
<p>Safe Online Banking opens a dedicated, isolated browser for financial transactions, protecting against keyloggers, screen capture malware, and phishing.</p>
|
|
228
|
+
</bd-accordion-item>
|
|
229
|
+
<bd-accordion-item title="Can I use one subscription on multiple platforms?">
|
|
230
|
+
<p>Yes. Multi-device plans allow you to mix and match Windows, macOS, Android, and iOS devices up to your plan limit.</p>
|
|
326
231
|
</bd-accordion-item>
|
|
327
|
-
<bd-accordion-item title="
|
|
328
|
-
<p>
|
|
232
|
+
<bd-accordion-item title="What is Bitdefender Central?">
|
|
233
|
+
<p>Bitdefender Central is the web and mobile dashboard where you manage all your protected devices, subscriptions, and security reports from one place.</p>
|
|
234
|
+
</bd-accordion-item>
|
|
235
|
+
<bd-accordion-item title="Is my data sent to Bitdefender servers?">
|
|
236
|
+
<p>Bitdefender uses cloud-assisted detection to identify new threats quickly. Only suspicious file hashes and metadata are transmitted — never your personal files.</p>
|
|
237
|
+
</bd-accordion-item>
|
|
238
|
+
<bd-accordion-item title="What happens when my subscription expires?">
|
|
239
|
+
<p>Protection stops when your subscription expires. You will receive notifications before expiry so you can renew without a gap in coverage.</p>
|
|
329
240
|
</bd-accordion-item>
|
|
330
241
|
</bd-accordion-section>
|
|
331
|
-
|
|
332
|
-
parameters: {
|
|
333
|
-
docs: {
|
|
334
|
-
description: {
|
|
335
|
-
story: 'Interactive playground. Adjust section title, guide link props, and the first item\'s title and open state via Controls.'
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
}
|
|
242
|
+
`
|
|
339
243
|
};
|
|
@@ -1,44 +1,56 @@
|
|
|
1
|
-
import { LitElement, html } from
|
|
1
|
+
import { LitElement, html, css } from "lit";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Optional `src` (image URL) with `label` for alt text, or default slot for inline SVG.
|
|
5
|
+
*/
|
|
6
|
+
class BdIcon extends LitElement {
|
|
4
7
|
static properties = {
|
|
5
|
-
src
|
|
6
|
-
label
|
|
7
|
-
width
|
|
8
|
+
src: { type: String },
|
|
9
|
+
label: { type: String },
|
|
10
|
+
width: { type: String },
|
|
8
11
|
height: { type: String }
|
|
9
12
|
};
|
|
10
13
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
static styles = css`
|
|
15
|
+
:host {
|
|
16
|
+
display: inline-block;
|
|
17
|
+
vertical-align: middle;
|
|
18
|
+
line-height: 0;
|
|
19
|
+
color: var(--color-blue-500);
|
|
20
|
+
}
|
|
21
|
+
.wrap,
|
|
22
|
+
img {
|
|
23
|
+
display: block;
|
|
24
|
+
width: var(--bd-icon-w, auto);
|
|
25
|
+
height: var(--bd-icon-h, auto);
|
|
26
|
+
}
|
|
27
|
+
img {
|
|
28
|
+
object-fit: contain;
|
|
29
|
+
}
|
|
30
|
+
::slotted(svg) {
|
|
21
31
|
display: block;
|
|
22
32
|
width: 100%;
|
|
23
33
|
height: 100%;
|
|
24
|
-
|
|
34
|
+
}
|
|
35
|
+
`;
|
|
25
36
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
render() {
|
|
38
|
+
const w = this.width || "";
|
|
39
|
+
const h = this.height || "";
|
|
40
|
+
const style = `${w ? `--bd-icon-w:${w};` : ""}${h ? `--bd-icon-h:${h};` : ""}`;
|
|
41
|
+
if (this.src) {
|
|
42
|
+
return html`
|
|
43
|
+
<img
|
|
44
|
+
src="${this.src}"
|
|
45
|
+
alt="${this.label || ""}"
|
|
46
|
+
style="${style}"
|
|
47
|
+
loading="lazy"
|
|
48
|
+
decoding="async"
|
|
49
|
+
/>
|
|
50
|
+
`;
|
|
51
|
+
}
|
|
52
|
+
return html`<span class="wrap" style="${style}"><slot></slot></span>`;
|
|
41
53
|
}
|
|
42
54
|
}
|
|
43
55
|
|
|
44
|
-
customElements.define(
|
|
56
|
+
customElements.define("bd-icon", BdIcon);
|