@repobit/dex-system-design 0.22.12 → 0.23.2
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 +40 -0
- package/package.json +4 -3
- package/src/components/Button/button.stories.js +292 -120
- package/src/components/accordion/accordion-bg.css.js +7 -2
- package/src/components/accordion/accordion-bg.stories.js +268 -449
- package/src/components/accordion/accordion.stories.js +259 -265
- package/src/components/anchor/anchor.stories.js +160 -159
- package/src/components/awards/awards-icon.js +44 -0
- package/src/components/awards/awards.css.js +328 -0
- package/src/components/awards/awards.js +224 -0
- package/src/components/awards/awards.stories.js +447 -0
- package/src/components/back/back.stories.js +100 -375
- package/src/components/badge/badge.stories.js +241 -129
- package/src/components/breadcrumb/breadcrumb.stories.js +218 -219
- package/src/components/cards/card.stories.js +174 -622
- package/src/components/carousel/carousel.stories.js +196 -225
- package/src/components/checkbox/checkbox.stories.js +136 -51
- package/src/components/compare/compare.css.js +237 -0
- package/src/components/compare/compare.js +253 -0
- package/src/components/compare/compare.stories.js +372 -0
- package/src/components/display/display.stories.js +91 -297
- package/src/components/divider/divider.stories.js +160 -342
- package/src/components/footer/footer.stories.js +177 -402
- package/src/components/header/header.stories.js +130 -338
- package/src/components/heading/heading.js +8 -5
- package/src/components/heading/heading.stories.js +162 -471
- package/src/components/highlight/highlight.stories.js +153 -38
- package/src/components/image/image.stories.js +135 -563
- package/src/components/input/custom-form.stories.js +761 -224
- package/src/components/link/link.js +29 -12
- package/src/components/link/link.stories.js +130 -468
- package/src/components/modal/modal.stories.js +174 -28
- package/src/components/paragraph/paragraph.css.js +10 -1
- package/src/components/paragraph/paragraph.stories.js +85 -410
- package/src/components/picture/picture.stories.js +147 -561
- package/src/components/radio/radio.stories.js +230 -81
- package/src/components/tabs/tabs.stories.js +126 -10
- package/src/components/termsOfUse/terms.stories.js +223 -8
- package/src/tokens/tokens.js +1 -0
|
@@ -1,345 +1,339 @@
|
|
|
1
1
|
import { html } from 'lit';
|
|
2
|
-
import '../paragraph/paragraph.js';
|
|
3
2
|
import './accordion.js';
|
|
4
3
|
|
|
5
4
|
export default {
|
|
6
|
-
title
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
title : 'Components/Accordion',
|
|
6
|
+
tags : ['autodocs'],
|
|
7
|
+
parameters: {
|
|
8
|
+
docs: {
|
|
9
|
+
description: {
|
|
10
|
+
component: `
|
|
11
|
+
**BdAccordionItem** and **BdAccordionSection** are Lit web components for building structured, collapsible FAQ or guide sections.
|
|
12
|
+
|
|
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
|
+
\`\`\`html
|
|
19
|
+
<bd-accordion-section
|
|
20
|
+
title="General Questions"
|
|
21
|
+
guide-label="View User Guide"
|
|
22
|
+
guide-href="/guide"
|
|
23
|
+
>
|
|
24
|
+
<bd-accordion-item title="What is included?">
|
|
25
|
+
<p>All features are included in every plan.</p>
|
|
26
|
+
</bd-accordion-item>
|
|
27
|
+
</bd-accordion-section>
|
|
28
|
+
\`\`\`
|
|
29
|
+
|
|
30
|
+
### Notes
|
|
31
|
+
- \`bd-accordion-item\` uses \`+\` / \`−\` as toggle indicators
|
|
32
|
+
- \`bd-accordion-section\` renders a guide link only when \`guide-label\` is provided
|
|
33
|
+
- \`title\` on \`bd-accordion-section\` is optional — the \`<h2>\` is omitted when absent
|
|
34
|
+
`
|
|
35
|
+
}
|
|
36
|
+
}
|
|
12
37
|
},
|
|
13
38
|
argTypes: {
|
|
14
|
-
|
|
39
|
+
// BdAccordionItem
|
|
40
|
+
itemTitle: {
|
|
15
41
|
control : 'text',
|
|
16
|
-
description: 'Title
|
|
42
|
+
description: 'Title text displayed in the accordion item header',
|
|
17
43
|
table : {
|
|
18
44
|
type : { summary: 'string' },
|
|
19
|
-
defaultValue: { summary: '' }
|
|
45
|
+
defaultValue: { summary: '' },
|
|
46
|
+
category : 'BdAccordionItem'
|
|
20
47
|
}
|
|
21
48
|
},
|
|
22
|
-
|
|
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: {
|
|
23
60
|
control : 'text',
|
|
24
|
-
description: '
|
|
61
|
+
description: 'Section heading rendered as an `<h2>`',
|
|
25
62
|
table : {
|
|
26
63
|
type : { summary: 'string' },
|
|
27
|
-
defaultValue: { summary: '' }
|
|
64
|
+
defaultValue: { summary: '' },
|
|
65
|
+
category : 'BdAccordionSection'
|
|
28
66
|
}
|
|
29
67
|
},
|
|
30
68
|
guideLabel: {
|
|
31
69
|
control : 'text',
|
|
32
|
-
description: '
|
|
70
|
+
description: 'Label for the user guide link. If empty, the link is not rendered.',
|
|
33
71
|
table : {
|
|
34
72
|
type : { summary: 'string' },
|
|
35
|
-
defaultValue: { summary: '' }
|
|
73
|
+
defaultValue: { summary: '' },
|
|
74
|
+
category : 'BdAccordionSection'
|
|
36
75
|
}
|
|
37
76
|
},
|
|
38
77
|
guideHref: {
|
|
39
78
|
control : 'text',
|
|
40
|
-
description: 'URL for the guide link',
|
|
79
|
+
description: 'URL for the user guide link',
|
|
41
80
|
table : {
|
|
42
81
|
type : { summary: 'string' },
|
|
43
|
-
defaultValue: { summary: '#' }
|
|
82
|
+
defaultValue: { summary: '#' },
|
|
83
|
+
category : 'BdAccordionSection'
|
|
44
84
|
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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'
|
|
51
93
|
}
|
|
52
94
|
}
|
|
53
95
|
}
|
|
54
96
|
};
|
|
55
97
|
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
>
|
|
63
|
-
<bd-accordion-item title="What is Bitdefender?">
|
|
64
|
-
<bd-p kind="regular">Bitdefender is a leading cybersecurity company delivering robust security solutions to over 500 million users in more than 150 countries.</bd-p>
|
|
65
|
-
</bd-accordion-item>
|
|
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
|
+
];
|
|
66
104
|
|
|
67
|
-
|
|
68
|
-
<bd-p kind="regular"><strong>Operating Systems:</strong> Windows 10/11, macOS 10.12+, Android 5.0+, iOS 12+</bd-p>
|
|
69
|
-
<bd-p kind="regular"><strong>Hardware:</strong> 1GB RAM minimum, 2.5GB free disk space</bd-p>
|
|
70
|
-
</bd-accordion-item>
|
|
105
|
+
// ─── BdAccordionItem Stories ────────────────────────────────────────────────
|
|
71
106
|
|
|
72
|
-
|
|
73
|
-
|
|
107
|
+
export const ItemDefault = {
|
|
108
|
+
name : 'Item — Default (Collapsed)',
|
|
109
|
+
render: () => html`
|
|
110
|
+
<bd-accordion-item title="What is included in my plan?">
|
|
111
|
+
<p>All core features are included in every Bitdefender plan.</p>
|
|
74
112
|
</bd-accordion-item>
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
Default.args = {
|
|
82
|
-
title : 'Product Information',
|
|
83
|
-
guideIcon : '',
|
|
84
|
-
guideLabel: '',
|
|
85
|
-
guideHref : '#'
|
|
86
|
-
};
|
|
87
|
-
Default.parameters = {
|
|
88
|
-
docs: {
|
|
89
|
-
description: {
|
|
90
|
-
story: 'Default simple accordion with clean, minimal design using basic toggle indicators (+/-).'
|
|
113
|
+
`,
|
|
114
|
+
parameters: {
|
|
115
|
+
docs: {
|
|
116
|
+
description: {
|
|
117
|
+
story: 'A single accordion item in its default collapsed state, showing the `+` toggle.'
|
|
118
|
+
}
|
|
91
119
|
}
|
|
92
120
|
}
|
|
93
121
|
};
|
|
94
122
|
|
|
95
|
-
export const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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
|
+
}
|
|
106
135
|
}
|
|
107
136
|
}
|
|
108
137
|
};
|
|
109
138
|
|
|
110
|
-
export const
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
139
|
+
export const ItemRichContent = {
|
|
140
|
+
name : 'Item — Rich Slotted Content',
|
|
141
|
+
render: () => html`
|
|
142
|
+
<bd-accordion-item title="What platforms are supported?" open>
|
|
143
|
+
<ul>
|
|
144
|
+
<li>Windows 10 / 11</li>
|
|
145
|
+
<li>macOS 12+</li>
|
|
146
|
+
<li>Android 8.0+</li>
|
|
147
|
+
<li>iOS 14+</li>
|
|
148
|
+
</ul>
|
|
149
|
+
<p>Visit <a href="#">our compatibility page</a> for full details.</p>
|
|
118
150
|
</bd-accordion-item>
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
WithoutTitle.parameters = {
|
|
126
|
-
docs: {
|
|
127
|
-
description: {
|
|
128
|
-
story: 'Simple accordion without a section title, useful for standalone expandable content areas.'
|
|
151
|
+
`,
|
|
152
|
+
parameters: {
|
|
153
|
+
docs: {
|
|
154
|
+
description: {
|
|
155
|
+
story: 'Item with rich slotted content: a list, a paragraph, and an anchor link.'
|
|
156
|
+
}
|
|
129
157
|
}
|
|
130
158
|
}
|
|
131
159
|
};
|
|
132
160
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
story: 'Single accordion item in open state, perfect for highlighting important information that should be immediately visible.'
|
|
161
|
+
// ─── BdAccordionSection Stories ─────────────────────────────────────────────
|
|
162
|
+
|
|
163
|
+
export const SectionDefault = {
|
|
164
|
+
name : 'Section — Default',
|
|
165
|
+
render: () => html`
|
|
166
|
+
<bd-accordion-section title="General Questions">
|
|
167
|
+
${defaultItems.map(item => html`
|
|
168
|
+
<bd-accordion-item title="${item.title}">
|
|
169
|
+
<p>${item.content}</p>
|
|
170
|
+
</bd-accordion-item>
|
|
171
|
+
`)}
|
|
172
|
+
</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
|
+
}
|
|
152
179
|
}
|
|
153
180
|
}
|
|
154
181
|
};
|
|
155
182
|
|
|
156
|
-
export const
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
183
|
+
export const SectionWithGuideLink = {
|
|
184
|
+
name : 'Section — With Guide Link',
|
|
185
|
+
render: () => html`
|
|
186
|
+
<bd-accordion-section
|
|
187
|
+
title="Installation Help"
|
|
188
|
+
guide-label="View Installation Guide"
|
|
189
|
+
guide-href="/docs/install"
|
|
190
|
+
guide-icon="/assets/user_guide.png"
|
|
191
|
+
>
|
|
192
|
+
${defaultItems.map(item => html`
|
|
193
|
+
<bd-accordion-item title="${item.title}">
|
|
194
|
+
<p>${item.content}</p>
|
|
195
|
+
</bd-accordion-item>
|
|
196
|
+
`)}
|
|
165
197
|
</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
|
+
}
|
|
206
|
+
};
|
|
166
207
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
208
|
+
export const SectionWithGuideLinkNoIcon = {
|
|
209
|
+
name : 'Section — Guide Link Without Icon',
|
|
210
|
+
render: () => html`
|
|
211
|
+
<bd-accordion-section
|
|
212
|
+
title="Billing Questions"
|
|
213
|
+
guide-label="View Billing Guide"
|
|
214
|
+
guide-href="/docs/billing"
|
|
215
|
+
guide-icon=""
|
|
171
216
|
>
|
|
172
|
-
|
|
173
|
-
<bd-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
</bd-accordion-item>
|
|
217
|
+
${defaultItems.map(item => html`
|
|
218
|
+
<bd-accordion-item title="${item.title}">
|
|
219
|
+
<p>${item.content}</p>
|
|
220
|
+
</bd-accordion-item>
|
|
221
|
+
`)}
|
|
178
222
|
</bd-accordion-section>
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
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
|
+
}
|
|
185
229
|
}
|
|
186
230
|
}
|
|
187
231
|
};
|
|
188
232
|
|
|
189
|
-
export const
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
<
|
|
196
|
-
</
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
<div>
|
|
206
|
-
<bd-p kind="regular"><strong>iOS</strong></bd-p>
|
|
207
|
-
<bd-p kind="small">13.0+</bd-p>
|
|
208
|
-
</div>
|
|
209
|
-
</div>
|
|
210
|
-
</bd-accordion-item>
|
|
211
|
-
|
|
212
|
-
<bd-accordion-item title="Performance Impact">
|
|
213
|
-
<bd-p kind="regular">Bitdefender is designed for minimal system impact:</bd-p>
|
|
214
|
-
<div style="display: flex; gap: 1rem; margin-top: 1rem;">
|
|
215
|
-
<div style="text-align: center;">
|
|
216
|
-
<bd-p kind="large" style="color: #059669; margin: 0;"><2%</bd-p>
|
|
217
|
-
<bd-p kind="small" style="color: #64748b;">CPU Usage</bd-p>
|
|
218
|
-
</div>
|
|
219
|
-
<div style="text-align: center;">
|
|
220
|
-
<bd-p kind="large" style="color: #3b82f6; margin: 0;">~150MB</bd-p>
|
|
221
|
-
<bd-p kind="small" style="color: #64748b;">Memory</bd-p>
|
|
222
|
-
</div>
|
|
223
|
-
<div style="text-align: center;">
|
|
224
|
-
<bd-p kind="large" style="color: #8b5cf6; margin: 0;">+0.3s</bd-p>
|
|
225
|
-
<bd-p kind="small" style="color: #64748b;">Boot Time</bd-p>
|
|
226
|
-
</div>
|
|
227
|
-
</div>
|
|
228
|
-
</bd-accordion-item>
|
|
229
|
-
|
|
230
|
-
<bd-accordion-item title="Security Features">
|
|
231
|
-
<bd-p kind="regular">Comprehensive protection includes:</bd-p>
|
|
232
|
-
<bd-p kind="small" style="color: #64748b; margin-top: 0.5rem;">
|
|
233
|
-
• Real-time antivirus • Advanced threat defense • Behavioral analysis • Firewall protection •
|
|
234
|
-
Web protection • Anti-phishing • Ransomware remediation • Vulnerability assessment
|
|
235
|
-
</bd-p>
|
|
236
|
-
</bd-accordion-item>
|
|
237
|
-
</bd-accordion-section>
|
|
238
|
-
`;
|
|
239
|
-
TechnicalSpecifications.parameters = {
|
|
240
|
-
docs: {
|
|
241
|
-
description: {
|
|
242
|
-
story: 'Technical specifications presented in a simple accordion format with grid layouts and performance metrics.'
|
|
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
|
+
}
|
|
243
249
|
}
|
|
244
250
|
}
|
|
245
251
|
};
|
|
246
252
|
|
|
247
|
-
export const
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
devices simultaneously. Check your specific plan details for the exact number of
|
|
264
|
-
devices covered.
|
|
265
|
-
</bd-p>
|
|
266
|
-
</bd-accordion-item>
|
|
267
|
-
|
|
268
|
-
<bd-accordion-item title="How often are virus definitions updated?">
|
|
269
|
-
<bd-p kind="regular">
|
|
270
|
-
Bitdefender updates its virus definitions multiple times per day to ensure protection
|
|
271
|
-
against the latest threats. Updates are automatic and require an internet connection.
|
|
272
|
-
</bd-p>
|
|
273
|
-
</bd-accordion-item>
|
|
274
|
-
|
|
275
|
-
<bd-accordion-item title="What should I do if I find a virus?">
|
|
276
|
-
<bd-p kind="regular">
|
|
277
|
-
Bitdefender will automatically detect and quarantine most threats. If you suspect an
|
|
278
|
-
infection, run a full system scan and follow the recommended actions provided by the software.
|
|
279
|
-
</bd-p>
|
|
280
|
-
</bd-accordion-item>
|
|
281
|
-
</bd-accordion-section>
|
|
282
|
-
`;
|
|
283
|
-
FAQExample.parameters = {
|
|
284
|
-
docs: {
|
|
285
|
-
description: {
|
|
286
|
-
story: 'Classic FAQ implementation using the simple accordion component with clear, concise answers to common questions.'
|
|
253
|
+
export const SectionWithOpenItem = {
|
|
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
|
+
}
|
|
287
269
|
}
|
|
288
270
|
}
|
|
289
271
|
};
|
|
290
272
|
|
|
291
|
-
export const
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
<bd-accordion-section title="Accessibility Features">
|
|
298
|
-
<bd-accordion-item title="Keyboard Navigation">
|
|
299
|
-
<bd-p kind="regular">
|
|
300
|
-
Use <strong>Tab</strong> to navigate between accordion items and <strong>Enter/Space</strong>
|
|
301
|
-
to toggle them open and closed.
|
|
302
|
-
</bd-p>
|
|
273
|
+
export const MultipleSections = {
|
|
274
|
+
name : 'Multiple Sections',
|
|
275
|
+
render: () => html`
|
|
276
|
+
<bd-accordion-section title="General Questions">
|
|
277
|
+
<bd-accordion-item title="What is Bitdefender?">
|
|
278
|
+
<p>Bitdefender is a global cybersecurity company founded in 2001.</p>
|
|
303
279
|
</bd-accordion-item>
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
<bd-p kind="regular">
|
|
307
|
-
Proper ARIA attributes ensure screen readers can announce the accordion state and
|
|
308
|
-
structure correctly.
|
|
309
|
-
</bd-p>
|
|
280
|
+
<bd-accordion-item title="Where is Bitdefender based?">
|
|
281
|
+
<p>Bitdefender is headquartered in Bucharest, Romania.</p>
|
|
310
282
|
</bd-accordion-item>
|
|
283
|
+
</bd-accordion-section>
|
|
311
284
|
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
285
|
+
<bd-accordion-section
|
|
286
|
+
title="Technical Support"
|
|
287
|
+
guide-label="View Support Guide"
|
|
288
|
+
guide-href="/docs/support"
|
|
289
|
+
>
|
|
290
|
+
<bd-accordion-item title="How do I contact support?">
|
|
291
|
+
<p>You can reach support via live chat or email from your Central account.</p>
|
|
292
|
+
</bd-accordion-item>
|
|
293
|
+
<bd-accordion-item title="What are the support hours?">
|
|
294
|
+
<p>Support is available 24/7 for all premium plans.</p>
|
|
316
295
|
</bd-accordion-item>
|
|
317
296
|
</bd-accordion-section>
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
AccessibilityDemo.parameters = {
|
|
325
|
-
docs: {
|
|
326
|
-
description: {
|
|
327
|
-
story: 'Accessibility demonstration showing keyboard navigation and screen reader support in the simple accordion component.'
|
|
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
|
+
}
|
|
328
303
|
}
|
|
329
304
|
}
|
|
330
305
|
};
|
|
331
306
|
|
|
332
|
-
export const
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
307
|
+
export const Playground = {
|
|
308
|
+
name: '🛝 Playground',
|
|
309
|
+
args: {
|
|
310
|
+
sectionTitle: 'FAQ Section',
|
|
311
|
+
guideLabel : 'View User Guide',
|
|
312
|
+
guideHref : '/docs/guide',
|
|
313
|
+
guideIcon : '/assets/user_guide.png',
|
|
314
|
+
itemTitle : 'Can I cancel anytime?',
|
|
315
|
+
open : false
|
|
316
|
+
},
|
|
317
|
+
render: (args) => html`
|
|
318
|
+
<bd-accordion-section
|
|
319
|
+
title="${args.sectionTitle}"
|
|
320
|
+
guide-label="${args.guideLabel}"
|
|
321
|
+
guide-href="${args.guideHref}"
|
|
322
|
+
guide-icon="${args.guideIcon}"
|
|
323
|
+
>
|
|
324
|
+
<bd-accordion-item title="${args.itemTitle}" ?open="${args.open}">
|
|
325
|
+
<p>Yes, you can cancel your subscription at any time from your Bitdefender Central account.</p>
|
|
326
|
+
</bd-accordion-item>
|
|
327
|
+
<bd-accordion-item title="Is there a free trial?">
|
|
328
|
+
<p>Yes, a 30-day free trial is available.</p>
|
|
329
|
+
</bd-accordion-item>
|
|
330
|
+
</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
|
+
}
|
|
343
337
|
}
|
|
344
338
|
}
|
|
345
339
|
};
|