@repobit/dex-system-design 0.19.2 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,29 @@
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.20.0](https://github.com/bitdefender/dex-core/compare/@repobit/dex-system-design@0.19.2...@repobit/dex-system-design@0.20.0) (2025-10-08)
7
+
8
+
9
+ ### Features
10
+
11
+ * **DEX-1001:** new version for tokens.css - previous was outdated ([97acf3a](https://github.com/bitdefender/dex-core/commit/97acf3a5002fdad340eaf73e7b79049073eb908e))
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * **DEX-1003:** footer adjustments on tablets and new card components created ([f8d5cf5](https://github.com/bitdefender/dex-core/commit/f8d5cf5af9dbcf81dbd7bf6e307ce9af202e2aa9))
17
+ * **DEX-1003:** modified light carousel storybook due to images issue ([69224b1](https://github.com/bitdefender/dex-core/commit/69224b1c6eab9562e31b215ddc06039093e90b6b))
18
+ * **DEX-1003:** modified svg icons into inline svg ([12eb99b](https://github.com/bitdefender/dex-core/commit/12eb99b6652e214798876c24fa186da2db675a8c))
19
+ * **DEX-1003:** remove accordion-no-bg and merge with accordion-bg, add SVG inline icons ([cfbc2da](https://github.com/bitdefender/dex-core/commit/cfbc2da3a6879244d1e9d2db0c1da113e32e1ad3))
20
+ * **DEX-1003:** remove accordion-no-bg, merge with accordion-bg, add inline SVG icons ([2f35df4](https://github.com/bitdefender/dex-core/commit/2f35df4389cb3a42bb5c739653b3b513c876a031))
21
+ * **DEX-1003:** remove forgotten line from index.html ([57f203a](https://github.com/bitdefender/dex-core/commit/57f203a4cdbf2e8942663e08124d2950cd8149ea))
22
+ * **DEX-1003:** svg icons modified into svg in line + card components ([fc536e2](https://github.com/bitdefender/dex-core/commit/fc536e2e62d24cd2354d3e5d420e4e17856cbf9a))
23
+ * **DEX-1003:** token name updated to fix gap problems between quick links columns ([40a1375](https://github.com/bitdefender/dex-core/commit/40a1375172bec391a7144eb3e6045e65e064712d))
24
+ * **DEX-1003:** update footer stories ([b55074d](https://github.com/bitdefender/dex-core/commit/b55074d801bf4ca99c39b33360783013d1257198))
25
+ * **DEX-999:** new version for tokens (previous was outdated) ([d4d73fc](https://github.com/bitdefender/dex-core/commit/d4d73fcdafeff82c61a742711b11bd9c98d9636c))
26
+
27
+
28
+
6
29
  ## [0.19.2](https://github.com/bitdefender/dex-core/compare/@repobit/dex-system-design@0.19.1...@repobit/dex-system-design@0.19.2) (2025-10-06)
7
30
 
8
31
  **Note:** Version bump only for package @repobit/dex-system-design
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@repobit/dex-system-design",
3
- "version": "0.19.2",
3
+ "version": "0.20.0",
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",
@@ -17,7 +17,6 @@
17
17
  ],
18
18
  "exports": {
19
19
  "./accordion-bg": "./src/components/accordion/accordion-bg.js",
20
- "./accordion-no-bg": "./src/components/accordion/accordion-no-bg.js",
21
20
  "./accordion": "./src/components/accordion/accordion.js",
22
21
  "./anchor": "./src/components/anchor/anchor-nav.js",
23
22
  "./badge": "./src/components/badge/badge.js",
@@ -79,5 +78,5 @@
79
78
  "volta": {
80
79
  "node": "22.14.0"
81
80
  },
82
- "gitHead": "4719cfeb84a6e363a78a33460197661f23aac5a5"
81
+ "gitHead": "a8089d8dbd8b06f741f5d710fbe98d70d1a56c7e"
83
82
  }
@@ -85,21 +85,33 @@ export default css`
85
85
  bottom: 1px;
86
86
  }
87
87
 
88
- .bd-accordion-bg-answer {
89
- overflow: hidden;
90
- max-height: 0;
91
- opacity: 0;
92
- padding: 0 15px;
93
- background-color: var(--color-blue-50);
94
- font-family: var(--typography-fontFamily-sans);
95
- font-weight: var(--font-weight-sans-medium);
96
- }
88
+ .bd-accordion-bg-icon {
89
+ transition: transform 0.3s ease;
90
+ width: var(--spacing-14);
91
+ height: var(--spacing-14);
92
+ color: var(--color-blue-500);
93
+ text-align: center;
94
+ position: relative;
95
+ }
96
+
97
+ .bd-accordion-bg-item:not(.open) .bd-accordion-bg-icon {
98
+ content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14"><rect x="6" width="2" height="14" fill="%23006DFF"/><rect x="14" y="6" width="2" height="14" transform="rotate(90 14 6)" fill="%23006DFF"/></svg>');
99
+ }
100
+
101
+ .bd-accordion-bg-item.open .bd-accordion-bg-icon {
102
+ content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14"><rect x="14" y="6" width="2" height="14" transform="rotate(90 14 6)" fill="%23006DFF"/></svg>');
103
+ }
104
+
105
+ .bd-accordion-bg-answer {
106
+ overflow: hidden;
107
+ max-height: 0;
108
+ opacity: 0;
109
+ padding: 0 15px;
110
+ background-color: var(--color-blue-50);
111
+ font-family: var(--typography-fontFamily-sans);
112
+ font-weight: var(--font-weight-sans-medium);
113
+ }
97
114
 
98
- .bd-accordion-bg-item.open .bd-accordion-bg-answer {
99
- max-height: 1000px;
100
- opacity: 1;
101
- padding: var(--spacing-0) var(--spacing-40);
102
- }
103
115
 
104
116
  .bd-accordion-bg-answer > div {
105
117
  overflow: hidden;
@@ -124,4 +136,40 @@ export default css`
124
136
  font-size: 20px;
125
137
  }
126
138
  }
139
+ .bd-accordion-bg-container.no-bg {
140
+ background: none;
141
+ }
142
+
143
+ .bd-accordion-bg-item.no-bg {
144
+ background-color: transparent;
145
+ border: none;
146
+ }
147
+
148
+ .bd-accordion-bg-item.no-bg .bd-accordion-bg-question {
149
+ background-color: transparent;
150
+ }
151
+
152
+ .bd-accordion-bg-item.no-bg .bd-accordion-bg-answer {
153
+ background-color: transparent;
154
+ padding: var(--spacing-0) var(--spacing-40);
155
+ }
156
+
157
+ .bd-accordion-bg-item.no-bg:hover {
158
+ background-color: transparent;
159
+ }
160
+
161
+ .bd-accordion-bg-item.no-bg:hover .bd-accordion-bg-question-text {
162
+ text-decoration-line: none;
163
+ }
164
+
165
+ .bd-accordion-bg-item:hover .bd-accordion-bg-question-text {
166
+ text-decoration-line: none;
167
+ }
168
+ .bd-accordion-bg-item:focus .bd-accordion-bg-question-text {
169
+ text-decoration-line: none;
170
+ }
171
+ .bd-accordion-bg-item.no-bg:focus .bd-accordion-bg-question-text {
172
+ text-decoration-line: none;
173
+ }
174
+
127
175
  `;
@@ -4,14 +4,20 @@ import accordionCSS from "./accordion-bg.css";
4
4
 
5
5
  class BdAccordionBg extends LitElement {
6
6
  static properties = {
7
- title: { type: String }
7
+ title: { type: String },
8
+ noBg : { type: Boolean, attribute: 'no-bg' }
8
9
  };
9
10
 
11
+ constructor() {
12
+ super();
13
+ this.noBg = false;
14
+ }
15
+
10
16
  static styles = [tokens, accordionCSS];
11
17
 
12
18
  render() {
13
19
  return html`
14
- <div class="bd-accordion-bg-container">
20
+ <div class="bd-accordion-bg-container ${this.noBg ? 'no-bg' : ''}">
15
21
  <div class="bd-accordion-bg-header">
16
22
  <h1 class="bd-accordion-bg-title">${this.title}</h1>
17
23
  </div>
@@ -24,13 +30,15 @@ class BdAccordionBg extends LitElement {
24
30
  class BdAccordionBgItem extends LitElement {
25
31
  static properties = {
26
32
  title: { type: String },
27
- open : { type: Boolean, reflect: true }
33
+ open : { type: Boolean, reflect: true },
34
+ noBg : { type: Boolean, attribute: 'no-bg' }
28
35
  };
29
36
 
30
37
  constructor() {
31
38
  super();
32
39
  this.title = "";
33
40
  this.open = false;
41
+ this.noBg = false;
34
42
  this.id = `accordion-${Math.random().toString(36)
35
43
  .substr(2, 9)}`;
36
44
  }
@@ -59,7 +67,7 @@ class BdAccordionBgItem extends LitElement {
59
67
  render() {
60
68
  return html`
61
69
  <div
62
- class="bd-accordion-bg-item ${this.open ? "open" : ""}"
70
+ class="bd-accordion-bg-item ${this.open ? "open" : ""} ${this.noBg ? 'no-bg' : ''}"
63
71
  role="button"
64
72
  aria-expanded="${this.open}"
65
73
  aria-controls="${this.id}"
@@ -68,7 +76,7 @@ class BdAccordionBgItem extends LitElement {
68
76
  @keydown=${this.handleKeyDown}
69
77
  >
70
78
  <div class="bd-accordion-bg-question">
71
- <span class="bd-accordion-bg-icon">${this.open ? "−" : "+"}</span>
79
+ <div class="bd-accordion-bg-icon"></div>
72
80
  <span class="bd-accordion-bg-question-text">${this.title}</span>
73
81
  </div>
74
82
  <div
@@ -0,0 +1,251 @@
1
+ // accordion-bg.stories.js
2
+
3
+ import { html } from 'lit';
4
+ import './accordion-bg.js';
5
+
6
+ export default {
7
+ title : 'Components/Accordion BG',
8
+ component : 'bd-accordion-bg',
9
+ subcomponents: { 'bd-accordion-bg-item': 'bd-accordion-bg-item' },
10
+ argTypes : {
11
+ title: {
12
+ control : 'text',
13
+ description: 'Title of the accordion section'
14
+ },
15
+ noBg: {
16
+ control : 'boolean',
17
+ description: 'Remove background from accordion items'
18
+ }
19
+ },
20
+ parameters: {
21
+ docs: {
22
+ description: {
23
+ component: 'A customizable accordion component with background options and accessibility features.'
24
+ }
25
+ }
26
+ }
27
+ };
28
+
29
+ const Template = ({ title, noBg }) => html`
30
+ <bd-accordion-bg title="${title}" ?no-bg="${noBg}">
31
+ <bd-accordion-bg-item title="How does Bitdefender Internet Security protect me?" ?no-bg="${noBg}">
32
+ <p>Bitdefender Internet Security provides the best protection against all e-threats, combining antimalware, e-mail, and web protection with firewall and privacy features.</p>
33
+ <p>It uses advanced behavioral detection to close the window of zero-day vulnerability and keeps you safe from ransomware, spyware, and advanced persistent threats.</p>
34
+ </bd-accordion-bg-item>
35
+
36
+ <bd-accordion-bg-item title="Does Bitdefender protect me against ransomware?" ?no-bg="${noBg}">
37
+ <p>Yes! Bitdefender Internet Security offers unbeatable ransomware protection by safeguarding your most important files from encryption by ransomware.</p>
38
+ <p>Our multi-layer ransomware protection includes:</p>
39
+ <ul>
40
+ <li>Behavioral detection of ransomware</li>
41
+ <li>Safe Files feature to protect important folders</li>
42
+ <li>Real-time protection against encryption attempts</li>
43
+ </ul>
44
+ </bd-accordion-bg-item>
45
+
46
+ <bd-accordion-bg-item title="Do I get a VPN with Bitdefender Internet Security?" ?no-bg="${noBg}">
47
+ <p>Bitdefender Internet Security includes a basic VPN with 200MB per day to protect your privacy when browsing on public Wi-Fi networks.</p>
48
+ <p>For unlimited VPN traffic, you can upgrade to Bitdefender Premium VPN or Bitdefender Total Security which includes unlimited VPN.</p>
49
+ </bd-accordion-bg-item>
50
+
51
+ <bd-accordion-bg-item title="Can I use Bitdefender on multiple devices?" ?no-bg="${noBg}">
52
+ <p>Yes, depending on your subscription. Bitdefender offers multi-device plans that allow you to protect:</p>
53
+ <ul>
54
+ <li>Windows computers</li>
55
+ <li>Mac computers</li>
56
+ <li>Android devices</li>
57
+ <li>iOS devices</li>
58
+ </ul>
59
+ </bd-accordion-bg-item>
60
+
61
+ <bd-accordion-bg-item title="How often are virus definitions updated?" ?no-bg="${noBg}">
62
+ <p>Bitdefender updates its virus definitions multiple times per day to ensure you're protected against the latest threats.</p>
63
+ <p>Our cloud-based threat intelligence network processes over 500 million queries daily, providing real-time protection against emerging threats.</p>
64
+ </bd-accordion-bg-item>
65
+ </bd-accordion-bg>
66
+ `;
67
+
68
+ export const Default = Template.bind({});
69
+ Default.args = {
70
+ title: 'Frequently Asked Questions',
71
+ noBg : false
72
+ };
73
+ Default.parameters = {
74
+ docs: {
75
+ description: {
76
+ story: 'Default accordion with background styling.'
77
+ }
78
+ }
79
+ };
80
+
81
+ export const NoBackground = Template.bind({});
82
+ NoBackground.args = {
83
+ title: 'Frequently Asked Questions',
84
+ noBg : true
85
+ };
86
+ NoBackground.parameters = {
87
+ docs: {
88
+ description: {
89
+ story: 'Accordion without background styling for cleaner, minimalist design.'
90
+ }
91
+ }
92
+ };
93
+
94
+ export const MixedBackground = () => html`
95
+ <bd-accordion-bg title="Mixed Background Accordion">
96
+ <bd-accordion-bg-item title="Item with background">
97
+ <p>This item has the default background styling.</p>
98
+ <p>It uses the blue background color as defined in the CSS.</p>
99
+ </bd-accordion-bg-item>
100
+
101
+ <bd-accordion-bg-item title="Item without background" no-bg>
102
+ <p>This item has no background styling.</p>
103
+ <p>It appears transparent and integrates seamlessly with the page background.</p>
104
+ </bd-accordion-bg-item>
105
+
106
+ <bd-accordion-bg-item title="Another item with background">
107
+ <p>This item returns to the default background styling.</p>
108
+ <p>You can mix and match background styles within the same accordion.</p>
109
+ </bd-accordion-bg-item>
110
+ </bd-accordion-bg>
111
+ `;
112
+ MixedBackground.parameters = {
113
+ docs: {
114
+ description: {
115
+ story: 'Accordion with mixed background styles - some items with background, some without.'
116
+ }
117
+ }
118
+ };
119
+
120
+ export const ContainerNoBackground = () => html`
121
+ <bd-accordion-bg title="Container without Background" no-bg>
122
+ <bd-accordion-bg-item title="First question">
123
+ <p>When the container has no-bg, all items inherit the transparent background unless specifically overridden.</p>
124
+ </bd-accordion-bg-item>
125
+
126
+ <bd-accordion-bg-item title="Second question">
127
+ <p>All items in this accordion have transparent backgrounds because the container has no-bg set.</p>
128
+ </bd-accordion-bg-item>
129
+
130
+ <bd-accordion-bg-item title="Third question">
131
+ <p>This creates a clean, minimalist look that blends with the page background.</p>
132
+ </bd-accordion-bg-item>
133
+ </bd-accordion-bg>
134
+ `;
135
+ ContainerNoBackground.parameters = {
136
+ docs: {
137
+ description: {
138
+ story: 'Accordion container with no-bg attribute, making all items transparent by default.'
139
+ }
140
+ }
141
+ };
142
+
143
+ export const WithCustomContent = () => html`
144
+ <bd-accordion-bg title="Product Features">
145
+ <bd-accordion-bg-item title="Advanced Threat Defense">
146
+ <div>
147
+ <h4>Multi-layer Protection</h4>
148
+ <p>Our advanced threat defense uses multiple layers of protection:</p>
149
+ <ul>
150
+ <li>Behavioral detection</li>
151
+ <li>Machine learning algorithms</li>
152
+ <li>Cloud-based analysis</li>
153
+ <li>Real-time scanning</li>
154
+ </ul>
155
+ <p><strong>System Requirements:</strong> Windows 10/11, 2GB RAM, 2.5GB free space</p>
156
+ </div>
157
+ </bd-accordion-bg-item>
158
+
159
+ <bd-accordion-bg-item title="Privacy Protection" no-bg>
160
+ <div>
161
+ <h4>Complete Privacy Suite</h4>
162
+ <p>Protect your online privacy with our comprehensive tools:</p>
163
+ <div style="display: flex; gap: 20px; margin-top: 15px;">
164
+ <div>
165
+ <h5>VPN</h5>
166
+ <p>200MB/day included</p>
167
+ </div>
168
+ <div>
169
+ <h5>Password Manager</h5>
170
+ <p>Secure credential storage</p>
171
+ </div>
172
+ <div>
173
+ <h5>Webcam Protection</h5>
174
+ <p>Block unauthorized access</p>
175
+ </div>
176
+ </div>
177
+ </div>
178
+ </bd-accordion-bg-item>
179
+
180
+ <bd-accordion-bg-item title="Performance Impact">
181
+ <div>
182
+ <h4>Lightweight Design</h4>
183
+ <p>Bitdefender is designed to have minimal impact on system performance:</p>
184
+ <table style="width: 100%; border-collapse: collapse; margin-top: 10px;">
185
+ <tr>
186
+ <th style="text-align: left; padding: 8px; border-bottom: 1px solid #ccc;">Resource</th>
187
+ <th style="text-align: left; padding: 8px; border-bottom: 1px solid #ccc;">Usage</th>
188
+ </tr>
189
+ <tr>
190
+ <td style="padding: 8px; border-bottom: 1px solid #ccc;">CPU</td>
191
+ <td style="padding: 8px; border-bottom: 1px solid #ccc;">&lt; 2% average</td>
192
+ </tr>
193
+ <tr>
194
+ <td style="padding: 8px; border-bottom: 1px solid #ccc;">Memory</td>
195
+ <td style="padding: 8px; border-bottom: 1px solid #ccc;">~150MB</td>
196
+ </tr>
197
+ <tr>
198
+ <td style="padding: 8px;">Disk</td>
199
+ <td style="padding: 8px;">&lt; 500MB</td>
200
+ </tr>
201
+ </table>
202
+ </div>
203
+ </bd-accordion-bg-item>
204
+ </bd-accordion-bg>
205
+ `;
206
+ WithCustomContent.parameters = {
207
+ docs: {
208
+ description: {
209
+ story: 'Accordion with rich custom content including lists, tables, and formatted text.'
210
+ }
211
+ }
212
+ };
213
+
214
+ export const AccessibilityDemo = () => html`
215
+ <bd-accordion-bg title="Accessibility Features">
216
+ <bd-accordion-bg-item title="Keyboard Navigation">
217
+ <p>This accordion supports full keyboard navigation:</p>
218
+ <ul>
219
+ <li>Use <kbd>Tab</kbd> to navigate between accordion items</li>
220
+ <li>Press <kbd>Enter</kbd> or <kbd>Space</kbd> to toggle items</li>
221
+ <li>Proper ARIA attributes for screen readers</li>
222
+ </ul>
223
+ </bd-accordion-bg-item>
224
+
225
+ <bd-accordion-bg-item title="Screen Reader Support">
226
+ <p>All accordion items include proper ARIA attributes:</p>
227
+ <ul>
228
+ <li><code>role="button"</code> for the clickable header</li>
229
+ <li><code>aria-expanded</code> to indicate state</li>
230
+ <li><code>aria-controls</code> to associate with content</li>
231
+ <li><code>role="region"</code> for the content area</li>
232
+ </ul>
233
+ </bd-accordion-bg-item>
234
+
235
+ <bd-accordion-bg-item title="Focus Management">
236
+ <p>Focus indicators are clearly visible for keyboard users:</p>
237
+ <ul>
238
+ <li>Clear focus outline</li>
239
+ <li>High contrast colors</li>
240
+ <li>Smooth transitions</li>
241
+ </ul>
242
+ </bd-accordion-bg-item>
243
+ </bd-accordion-bg>
244
+ `;
245
+ AccessibilityDemo.parameters = {
246
+ docs: {
247
+ description: {
248
+ story: 'Demonstration of accessibility features including keyboard navigation and ARIA attributes.'
249
+ }
250
+ }
251
+ };
@@ -0,0 +1,216 @@
1
+ // accordion-light.stories.js
2
+
3
+ import { html } from 'lit';
4
+ import './accordion.js';
5
+
6
+ export default {
7
+ title : 'Components/Accordion Light',
8
+ component : 'bd-accordion-section',
9
+ subcomponents: {
10
+ 'bd-accordion-item' : 'bd-accordion-item',
11
+ 'bd-accordion-section': 'bd-accordion-section'
12
+ },
13
+ argTypes: {
14
+ title: {
15
+ control : 'text',
16
+ description: 'Title of the accordion section'
17
+ },
18
+ guideIcon: {
19
+ control : 'text',
20
+ description: 'URL for the guide icon image'
21
+ },
22
+ guideLabel: {
23
+ control : 'text',
24
+ description: 'Text label for the guide link'
25
+ },
26
+ guideHref: {
27
+ control : 'text',
28
+ description: 'URL for the guide link'
29
+ }
30
+ },
31
+ parameters: {
32
+ docs: {
33
+ description: {
34
+ component: 'A lightweight accordion component ideal for menus, terms of use, FAQs, and other content that requires expandable sections. Features a clean, minimalist design with optional user guide links.'
35
+ }
36
+ }
37
+ }
38
+ };
39
+
40
+ // Template for basic accordion items
41
+ const BasicTemplate = ({ title, guideIcon, guideLabel, guideHref }) => html`
42
+ <bd-accordion-section
43
+ title="${title}"
44
+ guide-icon="${guideIcon}"
45
+ guide-label="${guideLabel}"
46
+ guide-href="${guideHref}"
47
+ >
48
+ <bd-accordion-item title="What is Bitdefender?">
49
+ <p>Bitdefender is a leading cybersecurity company delivering robust security solutions to over 500 million users in more than 150 countries.</p>
50
+ <p>Our products protect devices, data, and privacy against the full spectrum of cyberthreats.</p>
51
+ </bd-accordion-item>
52
+
53
+ <bd-accordion-item title="System Requirements">
54
+ <p><strong>Operating Systems:</strong> Windows 10/11, macOS 10.12+, Android 5.0+, iOS 12+</p>
55
+ <p><strong>Hardware:</strong> 1GB RAM minimum, 2.5GB free disk space</p>
56
+ <p><strong>Internet:</strong> Required for activation and updates</p>
57
+ </bd-accordion-item>
58
+
59
+ <bd-accordion-item title="Installation Process">
60
+ <p>Follow these simple steps to install Bitdefender:</p>
61
+ <ol>
62
+ <li>Download the installation file from our website</li>
63
+ <li>Run the installer and follow on-screen instructions</li>
64
+ <li>Activate with your product key</li>
65
+ <li>Run your first scan</li>
66
+ </ol>
67
+ </bd-accordion-item>
68
+ </bd-accordion-section>
69
+ `;
70
+
71
+ export const Default = BasicTemplate.bind({});
72
+ Default.args = {
73
+ title : 'Product Information',
74
+ guideIcon : '',
75
+ guideLabel: '',
76
+ guideHref : '#'
77
+ };
78
+ Default.parameters = {
79
+ docs: {
80
+ description: {
81
+ story: 'Default lightweight accordion with simple toggle indicators and clean design.'
82
+ }
83
+ }
84
+ };
85
+
86
+ export const WithUserGuide = BasicTemplate.bind({});
87
+ WithUserGuide.args = {
88
+ title : 'Installation Guide',
89
+ guideIcon : '/assets/user_guide.png',
90
+ guideLabel: 'View Complete User Guide',
91
+ guideHref : '/user-guide'
92
+ };
93
+ WithUserGuide.parameters = {
94
+ docs: {
95
+ description: {
96
+ story: 'Accordion with user guide link, perfect for documentation and help sections.'
97
+ }
98
+ }
99
+ };
100
+
101
+ export const TermsOfUse = () => html`
102
+ <bd-accordion-section title="Terms of Use">
103
+ <bd-accordion-item title="Acceptance of Terms">
104
+ <p>By accessing and using Bitdefender products, you accept and agree to be bound by the terms and provision of this agreement.</p>
105
+ <p><strong>Last Updated:</strong> January 15, 2024</p>
106
+ </bd-accordion-item>
107
+
108
+ <bd-accordion-item title="License Grant">
109
+ <p>Bitdefender grants you a limited, non-exclusive, non-transferable license to use the software for personal or internal business purposes.</p>
110
+ <ul>
111
+ <li>Single-user license for personal use</li>
112
+ <li>Multi-device options available</li>
113
+ <li>Non-commercial use unless specified</li>
114
+ </ul>
115
+ </bd-accordion-item>
116
+
117
+ <bd-accordion-item title="Privacy Policy">
118
+ <p>Our privacy policy explains how we collect, use, and protect your personal information.</p>
119
+ <p><strong>Data Collection:</strong> We collect minimal data necessary for security functionality.</p>
120
+ <p><strong>Data Usage:</strong> Data is used solely for threat detection and product improvement.</p>
121
+ </bd-accordion-item>
122
+
123
+ <bd-accordion-item title="Limitation of Liability">
124
+ <p>To the maximum extent permitted by law, Bitdefender shall not be liable for any indirect, special, incidental, or consequential damages.</p>
125
+ <p>This includes but is not limited to damages for loss of profits, business interruption, or loss of information.</p>
126
+ </bd-accordion-item>
127
+ </bd-accordion-section>
128
+ `;
129
+ TermsOfUse.parameters = {
130
+ docs: {
131
+ description: {
132
+ story: 'Perfect for legal documents like Terms of Use with multiple expandable sections.'
133
+ }
134
+ }
135
+ };
136
+
137
+ export const NavigationMenu = () => html`
138
+ <bd-accordion-section>
139
+ <bd-accordion-item title="Products">
140
+ <ul style="list-style: none; padding: 0; margin: 0;">
141
+ <li style="padding: 8px 0;"><a href="/antivirus" style="text-decoration: none; color: #0066cc;">Antivirus Plus</a></li>
142
+ <li style="padding: 8px 0;"><a href="/internet-security" style="text-decoration: none; color: #0066cc;">Internet Security</a></li>
143
+ <li style="padding: 8px 0;"><a href="/total-security" style="text-decoration: none; color: #0066cc;">Total Security</a></li>
144
+ <li style="padding: 8px 0;"><a href="/premium-security" style="text-decoration: none; color: #0066cc;">Premium Security</a></li>
145
+ </ul>
146
+ </bd-accordion-item>
147
+
148
+ <bd-accordion-item title="Support">
149
+ <ul style="list-style: none; padding: 0; margin: 0;">
150
+ <li style="padding: 8px 0;"><a href="/downloads" style="text-decoration: none; color: #0066cc;">Downloads</a></li>
151
+ <li style="padding: 8px 0;"><a href="/knowledge-base" style="text-decoration: none; color: #0066cc;">Knowledge Base</a></li>
152
+ <li style="padding: 8px 0;"><a href="/contact" style="text-decoration: none; color: #0066cc;">Contact Support</a></li>
153
+ <li style="padding: 8px 0;"><a href="/community" style="text-decoration: none; color: #0066cc;">Community Forum</a></li>
154
+ </ul>
155
+ </bd-accordion-item>
156
+
157
+ <bd-accordion-item title="Company">
158
+ <ul style="list-style: none; padding: 0; margin: 0;">
159
+ <li style="padding: 8px 0;"><a href="/about" style="text-decoration: none; color: #0066cc;">About Us</a></li>
160
+ <li style="padding: 8px 0;"><a href="/press" style="text-decoration: none; color: #0066cc;">Press Center</a></li>
161
+ <li style="padding: 8px 0;"><a href="/careers" style="text-decoration: none; color: #0066cc;">Careers</a></li>
162
+ <li style="padding: 8px 0;"><a href="/partners" style="text-decoration: none; color: #0066cc;">Partners</a></li>
163
+ </ul>
164
+ </bd-accordion-item>
165
+ </bd-accordion-section>
166
+ `;
167
+ NavigationMenu.parameters = {
168
+ docs: {
169
+ description: {
170
+ story: 'Used as a navigation menu with expandable categories and internal links.'
171
+ }
172
+ }
173
+ };
174
+
175
+ export const MultipleSections = () => html`
176
+ <div style="display: flex; flex-direction: column; gap: 40px;">
177
+ <bd-accordion-section title="Getting Started">
178
+ <bd-accordion-item title="System Requirements">
179
+ <p>Minimum requirements for optimal performance...</p>
180
+ </bd-accordion-item>
181
+ <bd-accordion-item title="Installation Guide">
182
+ <p>Step-by-step installation instructions...</p>
183
+ </bd-accordion-item>
184
+ </bd-accordion-section>
185
+
186
+ <bd-accordion-section
187
+ title="Troubleshooting"
188
+ guide-icon="/assets/user_guide.png"
189
+ guide-label="Advanced Troubleshooting Guide"
190
+ guide-href="/troubleshooting"
191
+ >
192
+ <bd-accordion-item title="Common Installation Issues">
193
+ <p>Solutions for frequent installation problems...</p>
194
+ </bd-accordion-item>
195
+ <bd-accordion-item title="Performance Optimization">
196
+ <p>Tips to improve system performance...</p>
197
+ </bd-accordion-item>
198
+ </bd-accordion-section>
199
+
200
+ <bd-accordion-section title="Advanced Features">
201
+ <bd-accordion-item title="VPN Configuration">
202
+ <p>How to set up and use the included VPN...</p>
203
+ </bd-accordion-item>
204
+ <bd-accordion-item title="Parental Controls">
205
+ <p>Setting up and managing parental controls...</p>
206
+ </bd-accordion-item>
207
+ </bd-accordion-section>
208
+ </div>
209
+ `;
210
+ MultipleSections.parameters = {
211
+ docs: {
212
+ description: {
213
+ story: 'Multiple accordion sections grouped together, perfect for comprehensive documentation.'
214
+ }
215
+ }
216
+ };