@repobit/dex-system-design 0.23.31 → 0.23.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.json +4 -4
  3. package/src/components/accordion/accordion-bg.css.js +12 -6
  4. package/src/components/accordion/accordion-bg.js +108 -28
  5. package/src/components/accordion/accordion-bg.stories.js +123 -3
  6. package/src/components/accordion/accordion.css.js +25 -15
  7. package/src/components/accordion/accordion.js +38 -29
  8. package/src/components/awards/awards-icon.js +4 -4
  9. package/src/components/awards/awards.css.js +4 -3
  10. package/src/components/awards/awards.js +88 -148
  11. package/src/components/awards/awards.stories.js +11 -51
  12. package/src/components/badge/badge.css.js +0 -17
  13. package/src/components/badge/badge.js +5 -2
  14. package/src/components/footer/footer.css.js +0 -17
  15. package/src/components/footer/footer.js +23 -17
  16. package/src/components/icons/analysis-icon.js +25 -0
  17. package/src/components/icons/arrow-down-icon.js +28 -0
  18. package/src/components/icons/arrow-up-icon.js +28 -0
  19. package/src/components/icons/av-comparatives-icon.js +34 -0
  20. package/src/components/icons/best-brands-icon.js +36 -0
  21. package/src/components/icons/close-icon.js +28 -0
  22. package/src/components/icons/family-icon.js +31 -0
  23. package/src/components/icons/globe-icon.js +28 -0
  24. package/src/components/icons/guide-icon.js +28 -0
  25. package/src/components/icons/icons.stories.js +226 -0
  26. package/src/components/icons/individual-icon.js +29 -0
  27. package/src/components/icons/laurel-icon.js +39 -0
  28. package/src/components/icons/machine-learning-icon.js +26 -0
  29. package/src/components/icons/minus-icon.js +6 -4
  30. package/src/components/icons/pc-mag-2024-icon.js +35 -0
  31. package/src/components/icons/pc-mag-business-icon.js +35 -0
  32. package/src/components/icons/pc-mag-icon.js +35 -0
  33. package/src/components/icons/pc-mag-readers-icon.js +34 -0
  34. package/src/components/icons/plus-icon.js +6 -4
  35. package/src/components/icons/top-product-icon.js +35 -0
  36. package/src/components/light-carousel/light-carousel.stories.js +523 -76
  37. package/src/components/paragraph/paragraph.css.js +1 -0
  38. package/src/components/paragraph/paragraph.js +34 -2
@@ -1,13 +1,14 @@
1
1
  import { css } from "lit";
2
2
 
3
- /** Orbit Awards — desktop: Figma 1882:9342 (Frame 14); mobile: 1882:9346 (Frame 15, 360) */
4
3
  export const awardsCSS = css`
5
- :host {
4
+
5
+ bd-awards-section {
6
6
  display: block;
7
7
  font-family: var(--typography-fontFamily-sans);
8
8
  background: var(--layout-awards-section-background);
9
9
  box-sizing: border-box;
10
- // padding-bottom: var(--spacing-32);
10
+ padding: var(--spacing-32);
11
+
11
12
  }
12
13
 
13
14
  .bd-awards-root {
@@ -1,8 +1,30 @@
1
+ // awards.js - varianta cu Shadow DOM (ca la celelalte componente)
1
2
  import { LitElement, html } from "lit";
2
3
  import { tokens } from "../../tokens/tokens.js";
3
- import "./awards-icon.js";
4
+ import "../icons/analysis-icon.js";
5
+ import "../icons/av-comparatives-icon.js";
6
+ import "../icons/best-brands-icon.js";
7
+ import "../icons/laurel-icon.js";
8
+ import "../icons/machine-learning-icon.js";
9
+ import "../icons/pc-mag-2024-icon.js";
10
+ import "../icons/pc-mag-business-icon.js";
11
+ import "../icons/pc-mag-icon.js";
12
+ import "../icons/pc-mag-readers-icon.js";
13
+ import "../icons/top-product-icon.js";
4
14
  import { awardsCSS } from "./awards.css.js";
5
15
 
16
+ const ICON_RENDERERS = {
17
+ "bd-pc-mag-icon" : () => html`<bd-pc-mag-icon></bd-pc-mag-icon>`,
18
+ "bd-av-comparatives-icon" : () => html`<bd-av-comparatives-icon></bd-av-comparatives-icon>`,
19
+ "bd-best-brands-icon" : () => html`<bd-best-brands-icon></bd-best-brands-icon>`,
20
+ "bd-pc-mag-2024-icon" : () => html`<bd-pc-mag-2024-icon></bd-pc-mag-2024-icon>`,
21
+ "bd-pc-mag-readers-icon" : () => html`<bd-pc-mag-readers-icon height="64" width="37"></bd-pc-mag-readers-icon>`,
22
+ "bd-pc-mag-business-icon" : () => html`<bd-pc-mag-business-icon></bd-pc-mag-business-icon>`,
23
+ "bd-top-product-icon" : () => html`<bd-top-product-icon></bd-top-product-icon>`,
24
+ "bd-machine-learning-icon": () => html`<bd-machine-learning-icon></bd-machine-learning-icon>`,
25
+ "bd-analysis-icon" : () => html`<bd-analysis-icon></bd-analysis-icon>`
26
+ };
27
+
6
28
  export class AwardsSection extends LitElement {
7
29
  static properties = {
8
30
  tagline : { type: String },
@@ -18,105 +40,52 @@ export class AwardsSection extends LitElement {
18
40
 
19
41
  static styles = [tokens, awardsCSS];
20
42
 
21
- /** @type {MediaQueryList | null} */
22
43
  _mql599 = null;
23
- /** @type {MediaQueryList | null} */
24
44
  _mql767 = null;
25
- _on599 = () => {
26
- this._narrow = this._mql599?.matches ?? false;
27
- };
28
- _on767 = () => {
29
- this._featureNarrow = this._mql767?.matches ?? false;
30
- };
45
+ _on599 = () => { this._narrow = this._mql599?.matches ?? false; };
46
+ _on767 = () => { this._featureNarrow = this._mql767?.matches ?? false; };
31
47
 
32
48
  constructor() {
33
49
  super();
34
- this.tagline = "You're Making A Great Choice";
35
- this.headline =
36
- "World-class security software you can trust. Always.";
37
- this.subtext =
38
- "We've added 25 new accolades in the past two years to the hundreds we have won since we started in 2001 - so you know you are in good hands.";
39
- this.secretTitle = "What's our secret";
40
- this.secretSubtext =
41
- "At the heart of Bitdefender lies a powerhouse of proprietary technology, setting it miles apart from the competition.";
50
+ this.tagline = "You're Making A Great Choice";
51
+ this.headline = "World-class security software you can trust. Always.";
52
+ this.subtext = "We've added 25 new accolades in the past two years to the hundreds we have won since we started in 2001 - so you know you are in good hands.";
53
+ this.secretTitle = "What's our secret";
54
+ this.secretSubtext = "At the heart of Bitdefender lies a powerhouse of proprietary technology, setting it miles apart from the competition.";
42
55
 
43
56
  this.desktopAwards = [
44
- {
45
- label : "PC MAG\nEDITORS' CHOICE",
46
- type : "red",
47
- format: "svg",
48
- src : "/assets/pc-mag.svg",
49
- id : "pc-mag"
50
- },
51
- {
52
- label : "AV\ncomparatives",
53
- type : "dark",
54
- format: "svg",
55
- src : "/assets/av-comparatives.svg",
56
- id : "av-comparatives"
57
- },
58
- {
59
- label : "Best\nBrands\n2024",
60
- type : "dark",
61
- format: "svg",
62
- src : "/assets/best-brands.svg",
63
- id : "best-brands"
64
- },
65
- {
66
- label : "PC\nChoice\n2024",
67
- type : "red",
68
- format: "svg",
69
- src : "/assets/pc-mag-2024.svg",
70
- id : "pc-mag-2024"
71
- },
72
- {
73
- label : "PC MAG\nREADERS'\nCHOICE",
74
- type : "red",
75
- format: "svg",
76
- src : "/assets/pc-mag-readers.svg",
77
- id : "pc-mag-readers"
78
- },
79
- {
80
- label : "PC\nBusiness\nChoice",
81
- type : "red",
82
- format: "svg",
83
- src : "/assets/pc-mag-business.svg",
84
- id : "pc-mag-business"
85
- },
86
- {
87
- label : "AV\nTEST\nTOP\nPRODUCT",
88
- type : "red",
89
- format: "svg",
90
- src : "/assets/top-product.svg",
91
- id : "top-product"
92
- }
57
+ { label: "PC MAG\nEDITORS' CHOICE", type: "red", tag: "bd-pc-mag-icon", id: "pc-mag" },
58
+ { label: "AV\ncomparatives", type: "dark", tag: "bd-av-comparatives-icon", id: "av-comparatives" },
59
+ { label: "Best\nBrands\n2024", type: "dark", tag: "bd-best-brands-icon", id: "best-brands" },
60
+ { label: "PC\nChoice\n2024", type: "red", tag: "bd-pc-mag-2024-icon", id: "pc-mag-2024" },
61
+ { label: "PC MAG\nREADERS'\nCHOICE", type: "red", tag: "bd-pc-mag-readers-icon", id: "pc-mag-readers" },
62
+ { label: "PC\nBusiness\nChoice", type: "red", tag: "bd-pc-mag-business-icon", id: "pc-mag-business" },
63
+ { label: "AV\nTEST\nTOP\nPRODUCT", type: "red", tag: "bd-top-product-icon", id: "top-product" }
93
64
  ];
94
65
 
95
66
  this.features = [
96
67
  {
97
- icon : "brain",
98
- title: "Machine Learning",
99
- description:
100
- "Imagine Bitdefender as a super-smart detective, constantly learning and getting better at spotting bad guys. Just like how you learn from your experiences, Bitdefender learns from millions of cyber threats it encounters every day. It studies their patterns, figures out their tricks, and uses that knowledge to protect your devices from future attacks."
68
+ tag : "bd-machine-learning-icon",
69
+ title : "Machine Learning",
70
+ description: "Imagine Bitdefender as a super-smart detective, constantly learning and getting better at spotting bad guys. Just like how you learn from your experiences, Bitdefender learns from millions of cyber threats it encounters every day. It studies their patterns, figures out their tricks, and uses that knowledge to protect your devices from future attacks."
101
71
  },
102
72
  {
103
- icon : "chart",
104
- title: "Behavioral Analysis",
105
- description:
106
- "Bitdefender keeps an eye on how you and your devices normally behave. So, when something unusual happens, like a strange file trying to sneak into your computer or a suspicious website trying to steal your info, Bitdefender sounds the alarm. It's like having a loyal sidekick that never sleeps, always on the lookout for trouble and ready to jump into action to keep you safe."
73
+ tag : "bd-analysis-icon",
74
+ title : "Behavioral Analysis",
75
+ description: "Bitdefender keeps an eye on how you and your devices normally behave. So, when something unusual happens, like a strange file trying to sneak into your computer or a suspicious website trying to steal your info, Bitdefender sounds the alarm. It's like having a loyal sidekick that never sleeps, always on the lookout for trouble and ready to jump into action to keep you safe."
107
76
  }
108
77
  ];
109
78
 
110
- this._narrow = false;
79
+ this._narrow = false;
111
80
  this._featureNarrow = false;
112
81
  }
113
82
 
114
83
  connectedCallback() {
115
84
  super.connectedCallback();
116
85
  if (typeof window !== "undefined" && window.matchMedia) {
117
- this._mql599 = window.matchMedia("(max-width: 599px)");
118
- this._mql767 = window.matchMedia("(max-width: 767px)");
119
- this._narrow = this._mql599.matches;
86
+ this._mql599 = window.matchMedia("(max-width: 599px)");
87
+ this._mql767 = window.matchMedia("(max-width: 767px)");
88
+ this._narrow = this._mql599.matches;
120
89
  this._featureNarrow = this._mql767.matches;
121
90
  this._mql599.addEventListener("change", this._on599);
122
91
  this._mql767.addEventListener("change", this._on767);
@@ -130,26 +99,23 @@ export class AwardsSection extends LitElement {
130
99
  }
131
100
 
132
101
  _renderBadge(award) {
102
+ const iconFn = ICON_RENDERERS[award.tag];
133
103
  const ariaLabel = award.label.replace(/\n/g, " ");
134
- const classes = `bd-awards-badge ${award.type === "dark" ? "bd-awards-badge--dark" : ""}`;
104
+ const classes = `bd-awards-badge ${award.type === "dark" ? "bd-awards-badge--dark" : ""}`;
135
105
  return html`
136
- <div class="${classes}" data-award-id="${award.id}" role="listitem">
137
- <bd-icon src="${award.src}" label="${ariaLabel}"></bd-icon>
106
+ <div class="${classes}" data-award-id="${award.id}" role="listitem" aria-label="${ariaLabel}">
107
+ ${iconFn ? iconFn() : ""}
138
108
  </div>
139
109
  `;
140
110
  }
141
111
 
142
112
  _renderFeature(f) {
143
113
  const narrow = this._featureNarrow;
144
- const iconSrc =
145
- f.icon === "brain"
146
- ? "/assets/machine-learning.svg"
147
- : "/assets/analysis.svg";
148
-
114
+ const iconFn = ICON_RENDERERS[f.tag];
149
115
  return html`
150
116
  <article class="bd-awards-feature-card">
151
117
  <div class="bd-awards-feature-icon" aria-hidden="true">
152
- <bd-icon src="${iconSrc}" label=""></bd-icon>
118
+ ${iconFn ? iconFn() : ""}
153
119
  </div>
154
120
  <div class="bd-awards-feature-text">
155
121
  ${narrow
@@ -165,58 +131,33 @@ export class AwardsSection extends LitElement {
165
131
 
166
132
  render() {
167
133
  const narrow = this._narrow;
168
-
169
134
  return html`
170
- <section
171
- class="bd-awards-root"
172
- aria-label="Awards and recognition"
173
- >
174
135
  <div class="bd-awards-trust-banner">
175
136
  <div class="bd-awards-trust-intro">
176
- <span class="bd-awards-laurel-icon" aria-hidden="true">
177
- <bd-icon
178
- label=""
179
- >
180
- <svg
181
- width="80"
182
- height="80"
183
- viewBox="0 0 80 80"
184
- fill="none"
185
- xmlns="http://www.w3.org/2000/svg"
186
- aria-hidden="true"
187
- >
188
- <path
189
- d="M48.0751 11.994C48.0751 17.6107 52.457 21.9791 58.0908 21.9791C58.0908 16.4873 53.5837 11.994 48.0751 11.994ZM61.8466 19.7325C62.9734 16.737 65.1017 13.9911 68.1064 12.2437C68.9828 11.7444 70.1096 12.1189 70.6103 12.8677L72.7387 16.6121C75.3678 21.1054 75.493 26.3476 73.615 30.8409C74.9922 30.3417 76.6197 29.9672 78.2473 29.9672C79.2488 29.9672 80 30.8409 80 31.8394V35.9583C80 41.2005 77.4961 45.8186 73.615 48.8141C75.2426 49.0637 76.7449 49.563 78.1221 50.4367C78.9984 50.9359 79.2488 52.0592 78.8732 52.8081L76.7449 56.5525C73.2394 62.5436 66.4789 65.4143 60.0939 64.291L59.4679 64.0414C57.9656 63.2925 56.4632 62.6684 54.9609 62.0443C53.8341 61.6699 52.7074 61.2955 51.4554 61.0458C58.9671 57.0518 64.1002 49.0637 64.1002 39.9523C64.1002 34.835 62.2222 29.9672 59.0923 25.9732H58.0908C50.3286 25.9732 44.0689 19.7325 44.0689 11.994V9.99702C44.0689 8.99851 44.9452 8 46.072 8H48.0751C54.9609 8 60.8451 13.1174 61.8466 19.7325ZM39.9374 67.9106V68.0354H37.5587C32.9264 68.0354 28.2942 69.0339 24.1628 71.1558L22.9108 71.7798C21.9092 72.2791 20.6573 71.9046 20.1565 70.9061C19.6557 69.9076 20.1565 68.6595 21.0329 68.1602L22.2848 67.5362C24.1628 66.6625 26.0407 65.9136 28.0438 65.2895C26.6667 64.6654 25.2895 63.9166 24.0376 63.0429C23.1612 63.4173 22.2848 63.6669 21.5336 63.9166C14.6479 65.7888 7.01095 62.918 3.25509 56.5525L1.25196 52.8081C0.751174 52.0592 1.00156 50.9359 1.87793 50.4367C3.25509 49.563 4.75743 49.0637 6.38498 48.8141C2.50391 45.8186 0 41.2005 0 35.9583V31.8394C0 30.8409 0.751174 29.9672 1.75274 29.9672C3.38028 29.9672 5.00782 30.3417 6.38498 30.8409C4.50704 26.3476 4.75743 21.1054 7.26135 16.6121L9.38967 12.8677C9.89045 12.1189 11.0172 11.7444 11.8936 12.2437C14.8983 13.9911 17.0266 16.737 18.1534 19.7325C19.2801 13.1174 25.0391 8 32.0501 8H34.0532C35.0548 8 36.0563 8.99851 36.0563 9.99702V11.994C36.0563 19.7325 29.6714 25.9732 22.0344 25.9732H20.9077C17.7778 29.9672 16.025 34.835 16.025 39.9523C16.025 53.1826 26.7919 63.9166 40.0626 63.9166H42.4413C47.6995 63.9166 52.9577 65.1647 57.7152 67.5362L58.9671 68.1602C59.9687 68.6595 60.3443 69.9076 59.8435 70.9061C59.3427 71.7798 58.0908 72.2791 57.0892 71.7798L55.8372 71.1558C51.7058 69.0339 47.0736 67.9106 42.4413 67.9106H40.0626H39.9374ZM22.0344 21.9791C27.543 21.9791 32.0501 17.6107 32.0501 11.994C29.1706 11.994 26.6667 13.2422 24.7887 15.1144C23.036 16.8618 22.0344 19.3581 22.0344 21.9791ZM12.0188 44.196C12.0188 39.3282 8.5133 35.2094 4.00626 34.2109V35.9583C4.00626 41.2005 7.26135 45.6937 12.0188 47.3163V44.196ZM68.1064 47.3163C72.7387 45.6937 76.1189 41.2005 76.1189 35.9583V34.2109C71.4867 35.3342 68.1064 39.3282 68.1064 44.196V47.3163ZM17.7778 57.6759C15.3991 53.4322 10.3912 51.56 5.88419 53.0578L6.76056 54.5555C9.38967 59.0488 14.5227 61.1707 19.4053 60.297L17.7778 57.6759ZM12.0188 32.3387L13.6463 29.7176C16.025 25.4739 15.1487 20.2317 11.6432 17.1114L10.7668 18.6092C8.13772 23.1025 8.88889 28.5943 12.0188 32.3387ZM66.3537 29.7176L67.9812 32.3387C71.1111 28.5943 71.8623 23.1025 69.2332 18.6092L68.3568 17.1114C64.8513 20.2317 63.975 25.4739 66.3537 29.7176ZM62.2222 57.6759L60.5947 60.297C65.4773 61.1707 70.6103 59.0488 73.2394 54.5555L74.1158 53.0578C69.6088 51.56 64.6009 53.4322 62.2222 57.6759Z"
190
- fill="currentColor"
191
- />
192
- </svg>
193
- </bd-icon>
194
- </span>
195
-
196
- ${narrow
197
- ? html`<bd-p kind="small" class="bd-awards-tagline">${this.tagline}</bd-p>`
198
- : html`<bd-p kind="large" class="bd-awards-tagline">${this.tagline}</bd-p>`}
199
-
200
- ${narrow
201
- ? html`
202
- <bd-h as="h4" class="bd-awards-headline">
203
- <span class="bd-awards-headline-line">World-class security</span>
204
- <span class="bd-awards-headline-line">software you can trust.</span>
205
- <span class="bd-awards-headline-line">Always.</span>
206
- </bd-h>
207
- `
208
- : html`<bd-h as="h3" class="bd-awards-headline">${this.headline}</bd-h>`}
209
-
210
- ${narrow
211
- ? html`<bd-p kind="small" class="bd-awards-subtext">${this.subtext}</bd-p>`
212
- : html`<bd-p kind="regular" class="bd-awards-subtext">${this.subtext}</bd-p>`}
137
+ <span class="bd-awards-laurel-icon" aria-hidden="true">
138
+ <bd-laurel-icon size="80"></bd-laurel-icon>
139
+ </span>
140
+
141
+ ${narrow
142
+ ? html`<bd-p kind="small" class="bd-awards-tagline">${this.tagline}</bd-p>`
143
+ : html`<bd-p kind="large" class="bd-awards-tagline">${this.tagline}</bd-p>`}
144
+
145
+ ${narrow
146
+ ? html`
147
+ <bd-h as="h4" class="bd-awards-headline">
148
+ <span class="bd-awards-headline-line">World-class security</span>
149
+ <span class="bd-awards-headline-line">software you can trust.</span>
150
+ <span class="bd-awards-headline-line">Always.</span>
151
+ </bd-h>
152
+ `
153
+ : html`<bd-h as="h3" class="bd-awards-headline">${this.headline}</bd-h>`}
154
+
155
+ ${narrow
156
+ ? html`<bd-p kind="small" class="bd-awards-subtext">${this.subtext}</bd-p>`
157
+ : html`<bd-p kind="regular" class="bd-awards-subtext">${this.subtext}</bd-p>`}
213
158
  </div>
214
159
 
215
- <div
216
- class="bd-awards-bar"
217
- role="list"
218
- aria-label="Industry awards"
219
- >
160
+ <div class="bd-awards-bar" role="list" aria-label="Industry awards">
220
161
  <div class="bd-awards-row" role="presentation">
221
162
  ${this.desktopAwards.slice(0, 3).map((a) => this._renderBadge(a))}
222
163
  </div>
@@ -227,22 +168,21 @@ export class AwardsSection extends LitElement {
227
168
  </div>
228
169
 
229
170
  <div class="bd-awards-lower">
230
- <section class="bd-awards-secret-section">
231
- ${narrow
232
- ? html`<bd-h as="h4" class="bd-awards-section-title">${this.secretTitle}</bd-h>`
233
- : html`<bd-h as="h3" class="bd-awards-section-title">${this.secretTitle}</bd-h>`}
234
- ${narrow
235
- ? html`<bd-p kind="small" class="bd-awards-section-subtext">${this.secretSubtext}</bd-p>`
236
- : html`<bd-p kind="regular" class="bd-awards-section-subtext">${this.secretSubtext}</bd-p>`}
237
- </section>
238
-
239
- <div class="bd-awards-features-grid">
240
- ${this.features.map((f) => this._renderFeature(f))}
241
- </div>
171
+ <section class="bd-awards-secret-section">
172
+ ${narrow
173
+ ? html`<bd-h as="h4" class="bd-awards-section-title">${this.secretTitle}</bd-h>`
174
+ : html`<bd-h as="h3" class="bd-awards-section-title">${this.secretTitle}</bd-h>`}
175
+ ${narrow
176
+ ? html`<bd-p kind="small" class="bd-awards-section-subtext">${this.secretSubtext}</bd-p>`
177
+ : html`<bd-p kind="regular" class="bd-awards-section-subtext">${this.secretSubtext}</bd-p>`}
178
+ </section>
179
+
180
+ <div class="bd-awards-features-grid">
181
+ ${this.features.map((f) => this._renderFeature(f))}
182
+ </div>
242
183
  </div>
243
- </section>
244
184
  `;
245
185
  }
246
186
  }
247
187
 
248
- customElements.define("bd-awards-section", AwardsSection);
188
+ customElements.define("bd-awards-section", AwardsSection);
@@ -107,65 +107,25 @@ const defaultArgs = {
107
107
  subtext : "We've added 25 new accolades in the past two years to the hundreds we have won since we started in 2001 - so you know you are in good hands.",
108
108
  secretTitle : "What's our secret",
109
109
  secretSubtext: "At the heart of Bitdefender lies a powerhouse of proprietary technology, setting it miles apart from the competition.",
110
+
110
111
  desktopAwards: [
111
- {
112
- label : "PC MAG\nEDITORS' CHOICE",
113
- type : "red",
114
- format: "svg",
115
- src : "/assets/pc-mag.svg",
116
- id : "pc-mag"
117
- },
118
- {
119
- label : "AV\ncomparatives",
120
- type : "dark",
121
- format: "svg",
122
- src : "/assets/av-comparatives.svg",
123
- id : "av-comparatives"
124
- },
125
- {
126
- label : "Best\nBrands\n2024",
127
- type : "dark",
128
- format: "svg",
129
- src : "/assets/best-brands.svg",
130
- id : "best-brands"
131
- },
132
- {
133
- label : "PC\nChoice\n2024",
134
- type : "red",
135
- format: "svg",
136
- src : "/assets/pc-mag-2024.svg",
137
- id : "pc-mag-2024"
138
- },
139
- {
140
- label : "PC MAG\nREADERS'\nCHOICE",
141
- type : "red",
142
- format: "svg",
143
- src : "/assets/pc-mag-readers.svg",
144
- id : "pc-mag-readers"
145
- },
146
- {
147
- label : "PC\nBusiness\nChoice",
148
- type : "red",
149
- format: "svg",
150
- src : "/assets/pc-mag-business.svg",
151
- id : "pc-mag-business"
152
- },
153
- {
154
- label : "AV\nTEST\nTOP\nPRODUCT",
155
- type : "red",
156
- format: "svg",
157
- src : "/assets/top-product.svg",
158
- id : "top-product"
159
- }
112
+ { label: "PC MAG\nEDITORS' CHOICE", type: "red", tag: "bd-pc-mag-icon", id: "pc-mag" },
113
+ { label: "AV\ncomparatives", type: "dark", tag: "bd-av-comparatives-icon", id: "av-comparatives" },
114
+ { label: "Best\nBrands\n2024", type: "dark", tag: "bd-best-brands-icon", id: "best-brands" },
115
+ { label: "PC\nChoice\n2024", type: "red", tag: "bd-pc-mag-2024-icon", id: "pc-mag-2024" },
116
+ { label: "PC MAG\nREADERS'\nCHOICE", type: "red", tag: "bd-pc-mag-readers-icon", id: "pc-mag-readers" },
117
+ { label: "PC\nBusiness\nChoice", type: "red", tag: "bd-pc-mag-business-icon", id: "pc-mag-business" },
118
+ { label: "AV\nTEST\nTOP\nPRODUCT", type: "red", tag: "bd-top-product-icon", id: "top-product" }
160
119
  ],
120
+
161
121
  features: [
162
122
  {
163
- icon : "brain",
123
+ tag : "bd-machine-learning-icon",
164
124
  title : "Machine Learning",
165
125
  description: "Imagine Bitdefender as a super-smart detective, constantly learning and getting better at spotting bad guys. Just like how you learn from your experiences, Bitdefender learns from millions of cyber threats it encounters every day. It studies their patterns, figures out their tricks, and uses that knowledge to protect your devices from future attacks."
166
126
  },
167
127
  {
168
- icon : "chart",
128
+ tag : "bd-analysis-icon",
169
129
  title : "Behavioral Analysis",
170
130
  description: "Bitdefender keeps an eye on how you and your devices normally behave. So, when something unusual happens, like a strange file trying to sneak into your computer or a suspicious website trying to steal your info, Bitdefender sounds the alarm. It's like having a loyal sidekick that never sleeps, always on the lookout for trouble and ready to jump into action to keep you safe."
171
131
  }
@@ -40,15 +40,7 @@ export default css`
40
40
  background-size: contain;
41
41
  }
42
42
 
43
- /* Iconița pentru individual - ALBĂ */
44
- .badge-icon.icon-individual {
45
- background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32' fill='none'><path fill-rule='evenodd' clip-rule='evenodd' d='M12.1154 5.42846C11.0158 6.39902 10.1576 7.97293 10.1576 10.4303C10.1576 14.2122 11.2398 16.6474 13.1651 18.0413C13.7542 18.4678 14.5777 18.842 15.9997 18.842C17.4157 18.842 18.2942 18.4324 18.8344 18.0413C20.7597 16.6474 21.8419 14.2122 21.8419 10.4303C21.8419 7.97293 20.9837 6.39902 19.8841 5.42846C18.7585 4.43503 17.2951 3.99994 15.9997 3.99994C14.7044 3.99994 13.241 4.43503 12.1154 5.42846ZM10.792 3.929C12.3375 2.56485 14.2951 1.99994 15.9997 1.99994C17.7044 1.99994 19.662 2.56485 21.2075 3.929C22.779 5.31602 23.8419 7.45729 23.8419 10.4303C23.8419 14.3066 22.793 17.3385 20.4997 19.276V20.3089C20.4997 20.7959 20.8184 21.2255 21.2845 21.3667L22.9476 21.8707C25.2447 22.5667 26.8155 24.6841 26.8155 27.0843V30.0526H24.8155V27.0843C24.8155 25.5653 23.8214 24.2252 22.3676 23.7847L20.7045 23.2807C19.4382 22.897 18.5591 21.7556 18.5026 20.4434C17.8123 20.6859 16.9853 20.842 15.9997 20.842C15.005 20.842 14.1865 20.6944 13.4965 20.4513C13.4369 21.7602 12.5587 22.8978 11.295 23.2807L9.63186 23.7847C8.17811 24.2252 7.18396 25.5653 7.18396 27.0843V30.0526H5.18396V27.0843C5.18396 24.6841 6.75481 22.5667 9.05185 21.8707L10.715 21.3667C11.1811 21.2255 11.4997 20.7959 11.4997 20.3089V19.276C9.2065 17.3385 8.15764 14.3066 8.15764 10.4303C8.15764 7.45729 9.22051 5.31602 10.792 3.929Z' fill='white'/></svg>");
46
- }
47
43
 
48
- /* Iconița pentru family - ALBĂ */
49
- .badge-icon.icon-family {
50
- background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32' fill='none'><path fill-rule='evenodd' clip-rule='evenodd' d='M16.0394 21.0955C16.5717 21.0955 17.093 21.0063 17.6014 20.8372C17.9 21.7401 18.6188 22.4693 19.5635 22.7615L20.4295 23.0294C21.3633 23.3183 22 24.1817 22 25.1591V27H24V25.1591C24 23.3048 22.792 21.6667 21.0205 21.1187L20.1545 20.8509C19.7356 20.7213 19.45 20.334 19.45 19.8955V19.7449C21.1462 18.295 21.9 16.0583 21.9 13.2778C21.9 10.8447 20.8711 9.23277 19.577 8.25708C18.3332 7.3193 16.8903 7 16 7C15.1097 7 13.6668 7.3193 12.423 8.25708C11.1289 9.23277 10.1 10.8447 10.1 13.2778C10.1 16.0583 10.8538 18.295 12.55 19.7449V19.8955C12.55 20.334 12.2644 20.7213 11.8455 20.8509L10.9795 21.1187C9.20796 21.6667 8 23.3048 8 25.1591V27H10V25.1591C10 24.1817 10.6367 23.3183 11.5705 23.0294L12.4365 22.7615C13.3896 22.4667 14.1128 21.727 14.4065 20.813C14.9375 20.9979 15.4826 21.0955 16.0394 21.0955ZM12.1 13.2778C12.1 11.4886 12.8211 10.4617 13.627 9.85403C14.4832 9.20848 15.4903 9 16 9C16.5097 9 17.5168 9.20848 18.373 9.85403C19.1789 10.4617 19.9 11.4886 19.9 13.2778C19.9 15.9088 19.1434 17.5302 17.8667 18.447L17.4753 18.728C16.9672 18.9837 16.4907 19.0955 16.0394 19.0955C15.4812 19.0955 14.8855 18.9245 14.2393 18.5231L14.1333 18.447C12.8566 17.5302 12.1 15.9088 12.1 13.2778Z' fill='white'/><path fill-rule='evenodd' clip-rule='evenodd' d='M6 19.955C6.24301 19.955 6.50063 19.9153 6.75514 19.8475C7.0813 20.4138 7.61269 20.8554 8.26724 21.0605L8.40095 21.1024C8.52133 21.1401 8.62873 21.2028 8.71818 21.2836C9.21418 20.834 9.80066 20.4758 10.4549 20.2401C10.103 19.7558 9.59939 19.382 8.99905 19.1939L8.86534 19.152C8.71342 19.1044 8.58812 19.0057 8.50596 18.8783C9.41844 17.937 9.8 16.5994 9.8 15.0556C9.8 13.5167 9.1507 12.4609 8.30704 11.8164C7.51308 11.2099 6.59336 11 6 11C5.40664 11 4.48692 11.2099 3.69296 11.8164C2.8493 12.4609 2.2 13.5167 2.2 15.0556C2.2 16.5845 2.57424 17.9112 3.46779 18.851L3.46121 18.8574L3.48918 18.8858C3.40698 19.0095 3.28362 19.1053 3.13466 19.152L3.00095 19.1939C1.81034 19.567 1 20.6702 1 21.9179V23H3V21.9179C3 21.5444 3.2426 21.2141 3.59905 21.1024L3.73276 21.0605C4.3858 20.8558 4.91624 20.4158 5.2426 19.8514C5.49788 19.9168 5.75644 19.955 6 19.955ZM4.2 15.0556C4.2 14.15 4.5507 13.678 4.90704 13.4058C5.31308 13.0956 5.79336 13 6 13C6.20664 13 6.68692 13.0956 7.09296 13.4058C7.4493 13.678 7.8 14.15 7.8 15.0556C7.8 16.2132 7.5391 16.9456 7.13947 17.4082L7.13758 17.4065C6.99679 17.5579 6.78144 17.7035 6.53517 17.8109C6.28066 17.9219 6.07954 17.955 6 17.955C5.90858 17.955 5.70643 17.922 5.46088 17.8209C5.29102 17.751 5.14074 17.665 5.02308 17.5752C4.5331 17.1288 4.2 16.3637 4.2 15.0556Z' fill='white'/><path fill-rule='evenodd' clip-rule='evenodd' d='M26 19.955C26.2431 19.955 26.5007 19.9153 26.7552 19.8475C27.0813 20.4138 27.6127 20.8554 28.2673 21.0605L28.401 21.1024C28.7574 21.2141 29 21.5444 29 21.9179V23H31V21.9179C31 20.6702 30.1897 19.567 28.9991 19.1939L28.8654 19.152C28.7135 19.1044 28.5882 19.0057 28.506 18.8783C29.4185 17.937 29.8 16.5994 29.8 15.0556C29.8 13.5167 29.1507 12.4609 28.3071 11.8164C27.5131 11.2099 26.5934 11 26 11C25.4067 11 24.487 11.2099 23.693 11.8164C22.8493 12.4609 22.2 13.5167 22.2 15.0556C22.2 16.5845 22.5743 17.9112 23.4678 18.851L23.4613 18.8574L23.4892 18.8858C23.407 19.0095 23.2837 19.1053 23.1347 19.152L23.001 19.1939C22.4007 19.382 21.897 19.7558 21.5452 20.2401C22.1994 20.4758 22.7859 20.834 23.2819 21.2836C23.3713 21.2028 23.4787 21.1401 23.5991 21.1024L23.7328 21.0605C24.3858 20.8558 24.9163 20.4158 25.2426 19.8514C25.4979 19.9168 25.7565 19.955 26 19.955ZM24.2 15.0556C24.2 14.15 24.5507 13.678 24.9071 13.4058C25.3131 13.0956 25.7934 13 26 13C26.2067 13 26.687 13.0956 27.093 13.4058C27.4493 13.678 27.8 14.15 27.8 15.0556C27.8 16.2132 27.5391 16.9456 27.1395 17.4082L27.1376 17.4065C26.9968 17.5579 26.7815 17.7035 26.5352 17.8109C26.2807 17.9219 26.0796 17.955 26 17.955C25.9086 17.955 25.7065 17.922 25.4609 17.8209C25.2911 17.751 25.1408 17.665 25.0231 17.5752C24.5331 17.1288 24.2 16.3637 24.2 15.0556Z' fill='white'/></svg>");
51
- }
52
44
 
53
45
  /* Stil pentru badge-ul bd-light-blue */
54
46
  .badge.bd-light-blue {
@@ -77,13 +69,4 @@ export default css`
77
69
  --badge-icon-size: 18px;
78
70
  --badge-gap: var(--spacing-6);
79
71
  }
80
-
81
- /* Green badge icons use dark green fill for WCAG contrast on --color-green-100 background */
82
- .badge.bd-light-green .badge-icon.icon-individual {
83
- background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32' fill='none'><path fill-rule='evenodd' clip-rule='evenodd' d='M12.1154 5.42846C11.0158 6.39902 10.1576 7.97293 10.1576 10.4303C10.1576 14.2122 11.2398 16.6474 13.1651 18.0413C13.7542 18.4678 14.5777 18.842 15.9997 18.842C17.4157 18.842 18.2942 18.4324 18.8344 18.0413C20.7597 16.6474 21.8419 14.2122 21.8419 10.4303C21.8419 7.97293 20.9837 6.39902 19.8841 5.42846C18.7585 4.43503 17.2951 3.99994 15.9997 3.99994C14.7044 3.99994 13.241 4.43503 12.1154 5.42846ZM10.792 3.929C12.3375 2.56485 14.2951 1.99994 15.9997 1.99994C17.7044 1.99994 19.662 2.56485 21.2075 3.929C22.779 5.31602 23.8419 7.45729 23.8419 10.4303C23.8419 14.3066 22.793 17.3385 20.4997 19.276V20.3089C20.4997 20.7959 20.8184 21.2255 21.2845 21.3667L22.9476 21.8707C25.2447 22.5667 26.8155 24.6841 26.8155 27.0843V30.0526H24.8155V27.0843C24.8155 25.5653 23.8214 24.2252 22.3676 23.7847L20.7045 23.2807C19.4382 22.897 18.5591 21.7556 18.5026 20.4434C17.8123 20.6859 16.9853 20.842 15.9997 20.842C15.005 20.842 14.1865 20.6944 13.4965 20.4513C13.4369 21.7602 12.5587 22.8978 11.295 23.2807L9.63186 23.7847C8.17811 24.2252 7.18396 25.5653 7.18396 27.0843V30.0526H5.18396V27.0843C5.18396 24.6841 6.75481 22.5667 9.05185 21.8707L10.715 21.3667C11.1811 21.2255 11.4997 20.7959 11.4997 20.3089V19.276C9.2065 17.3385 8.15764 14.3066 8.15764 10.4303C8.15764 7.45729 9.22051 5.31602 10.792 3.929Z' fill='%230b6a26'/></svg>");
84
- }
85
-
86
- .badge.bd-light-green .badge-icon.icon-family {
87
- background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32' fill='none'><path fill-rule='evenodd' clip-rule='evenodd' d='M16.0394 21.0955C16.5717 21.0955 17.093 21.0063 17.6014 20.8372C17.9 21.7401 18.6188 22.4693 19.5635 22.7615L20.4295 23.0294C21.3633 23.3183 22 24.1817 22 25.1591V27H24V25.1591C24 23.3048 22.792 21.6667 21.0205 21.1187L20.1545 20.8509C19.7356 20.7213 19.45 20.334 19.45 19.8955V19.7449C21.1462 18.295 21.9 16.0583 21.9 13.2778C21.9 10.8447 20.8711 9.23277 19.577 8.25708C18.3332 7.3193 16.8903 7 16 7C15.1097 7 13.6668 7.3193 12.423 8.25708C11.1289 9.23277 10.1 10.8447 10.1 13.2778C10.1 16.0583 10.8538 18.295 12.55 19.7449V19.8955C12.55 20.334 12.2644 20.7213 11.8455 20.8509L10.9795 21.1187C9.20796 21.6667 8 23.3048 8 25.1591V27H10V25.1591C10 24.1817 10.6367 23.3183 11.5705 23.0294L12.4365 22.7615C13.3896 22.4667 14.1128 21.727 14.4065 20.813C14.9375 20.9979 15.4826 21.0955 16.0394 21.0955ZM12.1 13.2778C12.1 11.4886 12.8211 10.4617 13.627 9.85403C14.4832 9.20848 15.4903 9 16 9C16.5097 9 17.5168 9.20848 18.373 9.85403C19.1789 10.4617 19.9 11.4886 19.9 13.2778C19.9 15.9088 19.1434 17.5302 17.8667 18.447L17.4753 18.728C16.9672 18.9837 16.4907 19.0955 16.0394 19.0955C15.4812 19.0955 14.8855 18.9245 14.2393 18.5231L14.1333 18.447C12.8566 17.5302 12.1 15.9088 12.1 13.2778Z' fill='%230b6a26'/><path fill-rule='evenodd' clip-rule='evenodd' d='M6 19.955C6.24301 19.955 6.50063 19.9153 6.75514 19.8475C7.0813 20.4138 7.61269 20.8554 8.26724 21.0605L8.40095 21.1024C8.52133 21.1401 8.62873 21.2028 8.71818 21.2836C9.21418 20.834 9.80066 20.4758 10.4549 20.2401C10.103 19.7558 9.59939 19.382 8.99905 19.1939L8.86534 19.152C8.71342 19.1044 8.58812 19.0057 8.50596 18.8783C9.41844 17.937 9.8 16.5994 9.8 15.0556C9.8 13.5167 9.1507 12.4609 8.30704 11.8164C7.51308 11.2099 6.59336 11 6 11C5.40664 11 4.48692 11.2099 3.69296 11.8164C2.8493 12.4609 2.2 13.5167 2.2 15.0556C2.2 16.5845 2.57424 17.9112 3.46779 18.851L3.46121 18.8574L3.48918 18.8858C3.40698 19.0095 3.28362 19.1053 3.13466 19.152L3.00095 19.1939C1.81034 19.567 1 20.6702 1 21.9179V23H3V21.9179C3 21.5444 3.2426 21.2141 3.59905 21.1024L3.73276 21.0605C4.3858 20.8558 4.91624 20.4158 5.2426 19.8514C5.49788 19.9168 5.75644 19.955 6 19.955ZM4.2 15.0556C4.2 14.15 4.5507 13.678 4.90704 13.4058C5.31308 13.0956 5.79336 13 6 13C6.20664 13 6.68692 13.0956 7.09296 13.4058C7.4493 13.678 7.8 14.15 7.8 15.0556C7.8 16.2132 7.5391 16.9456 7.13947 17.4082L7.13758 17.4065C6.99679 17.5579 6.78144 17.7035 6.53517 17.8109C6.28066 17.9219 6.07954 17.955 6 17.955C5.90858 17.955 5.70643 17.922 5.46088 17.8209C5.29102 17.751 5.14074 17.665 5.02308 17.5752C4.5331 17.1288 4.2 16.3637 4.2 15.0556Z' fill='%230b6a26'/><path fill-rule='evenodd' clip-rule='evenodd' d='M26 19.955C26.2431 19.955 26.5007 19.9153 26.7552 19.8475C27.0813 20.4138 27.6127 20.8554 28.2673 21.0605L28.401 21.1024C28.7574 21.2141 29 21.5444 29 21.9179V23H31V21.9179C31 20.6702 30.1897 19.567 28.9991 19.1939L28.8654 19.152C28.7135 19.1044 28.5882 19.0057 28.506 18.8783C29.4185 17.937 29.8 16.5994 29.8 15.0556C29.8 13.5167 29.1507 12.4609 28.3071 11.8164C27.5131 11.2099 26.5934 11 26 11C25.4067 11 24.487 11.2099 23.693 11.8164C22.8493 12.4609 22.2 13.5167 22.2 15.0556C22.2 16.5845 22.5743 17.9112 23.4678 18.851L23.4613 18.8574L23.4892 18.8858C23.407 19.0095 23.2837 19.1053 23.1347 19.152L23.001 19.1939C22.4007 19.382 21.897 19.7558 21.5452 20.2401C22.1994 20.4758 22.7859 20.834 23.2819 21.2836C23.3713 21.2028 23.4787 21.1401 23.5991 21.1024L23.7328 21.0605C24.3858 20.8558 24.9163 20.4158 25.2426 19.8514C25.4979 19.9168 25.7565 19.955 26 19.955ZM24.2 15.0556C24.2 14.15 24.5507 13.678 24.9071 13.4058C25.3131 13.0956 25.7934 13 26 13C26.2067 13 26.687 13.0956 27.093 13.4058C27.4493 13.678 27.8 14.15 27.8 15.0556C27.8 16.2132 27.5391 16.9456 27.1395 17.4082L27.1376 17.4065C26.9968 17.5579 26.7815 17.7035 26.5352 17.8109C26.2807 17.9219 26.0796 17.955 26 17.955C25.9086 17.955 25.7065 17.922 25.4609 17.8209C25.2911 17.751 25.1408 17.665 25.0231 17.5752C24.5331 17.1288 24.2 16.3637 24.2 15.0556Z' fill='%230b6a26'/></svg>");
88
- }
89
72
  `;
@@ -1,5 +1,7 @@
1
1
  import { LitElement, html } from 'lit';
2
2
  import { tokens } from "../../tokens/tokens.js";
3
+ import "../icons/family-icon.js";
4
+ import "../icons/individual-icon.js";
3
5
  import badgeCSS from './badge.css.js';
4
6
 
5
7
  export class BdBadge extends LitElement {
@@ -74,12 +76,13 @@ export class BdBadge extends LitElement {
74
76
 
75
77
  _renderIcon() {
76
78
  if (!this.icon) return '';
79
+ const color = this.variant === 'bd-light-green' ? '#0b6a26' : 'white';
77
80
 
78
81
  switch (this.icon) {
79
82
  case 'individual':
80
- return html`<span class="badge-icon icon-individual" aria-hidden="true"></span>`;
83
+ return html`<bd-individual-icon size="16" color="${color}"></bd-individual-icon>`;
81
84
  case 'family':
82
- return html`<span class="badge-icon icon-family" aria-hidden="true"></span>`;
85
+ return html`<bd-family-icon size="16" color="${color}"></bd-family-icon>`;
83
86
  default:
84
87
  return '';
85
88
  }
@@ -221,13 +221,6 @@ bd-footer-links-group a:focus {
221
221
  align-items: center;
222
222
  gap: var(--spacing-8);
223
223
  }
224
- .leading-icon {
225
- width: 20px;
226
- height: 20px;
227
- display: inline-block;
228
- background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.25 10C1.25 5.16751 5.16751 1.25 10 1.25C14.8325 1.25 18.75 5.16751 18.75 10C18.75 14.8325 14.8325 18.75 10 18.75C5.16751 18.75 1.25 14.8325 1.25 10ZM10 2.5C9.68262 2.5 9.36983 2.51971 9.06282 2.55799V4.88384C9.06282 5.10767 8.98274 5.32411 8.83705 5.49404L7.13041 7.48466C6.9523 7.6924 6.69232 7.81196 6.41867 7.81196H4.84449L4.62219 8.57915L5.38381 9.44622L6.23342 8.7515C6.62081 8.43474 7.18869 8.47806 7.52354 8.84993L9.9671 11.5636C10.2837 11.9151 10.2887 12.4474 9.97888 12.8049L6.61009 16.692C7.6282 17.2087 8.78009 17.5 10 17.5C13.0594 17.5 15.691 15.6681 16.8577 13.0414L14.6283 15.6137C14.4503 15.8192 14.1918 15.9372 13.9199 15.9372H12.631C11.9827 15.9372 11.5301 15.295 11.7481 14.6844L12.9639 11.2803L11.6036 10.6973C11.1277 10.4933 10.9072 9.94221 11.1112 9.4663L11.8444 7.75544C11.9922 7.41073 12.3311 7.18724 12.7061 7.18724H14.601C14.6608 7.18724 14.7203 7.19296 14.7785 7.2042L14.6138 6.87474H12.5001C11.9823 6.87474 11.5626 6.455 11.5626 5.93724V4.80038C11.5626 4.58106 11.6395 4.36869 11.7799 4.20021L12.7599 3.02412C11.9057 2.68588 10.9746 2.5 10 2.5ZM13.9089 3.59792L12.8126 4.91352V5.62474H14.8069C15.162 5.62474 15.4866 5.82536 15.6455 6.14297L16.3292 7.51038C16.7486 8.34928 15.8126 9.2161 15.0083 8.73354L14.5145 8.43724H12.9122L12.3832 9.67147L13.7263 10.2471C14.1815 10.4422 14.4064 10.9577 14.2399 11.4241L13.0744 14.6872H13.7772L17.4893 10.404C17.4964 10.2702 17.5 10.1355 17.5 10C17.5 7.29005 16.0627 4.91579 13.9089 3.59792ZM7.81282 2.82393C4.98528 3.68463 2.86587 6.17069 2.54281 9.1939C3.18286 9.98092 4.99058 12.3835 5.40842 12.9396C5.58837 13.1791 5.63756 13.4816 5.55863 13.7579L5.07728 15.4426L5.59227 15.9578L8.85346 12.1949L6.79402 9.90779L5.94154 10.6049C5.55068 10.9244 4.97693 10.8771 4.64373 10.4978L3.57 9.27539C3.35876 9.03489 3.28482 8.70323 3.3739 8.39577L3.70923 7.23854C3.82536 6.83775 4.19241 6.56196 4.60969 6.56196H6.27497L7.81282 4.76822V2.82393ZM4.03367 14.5452C3.32557 13.6171 2.82909 12.5189 2.61624 11.3226C3.25918 12.1634 3.97861 13.118 4.31401 13.564L4.03367 14.5452Z" fill="white"/></svg>') no-repeat center;
229
- background-size: contain;
230
- }
231
224
 
232
225
  .bd-youtube {
233
226
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M23.4991 5.66068C23.2223 4.61146 22.4094 3.78802 21.3768 3.50911C19.5049 3 12 3 12 3C12 3 4.49506 3 2.62321 3.50911C1.59063 3.78802 0.777737 4.61146 0.500915 5.66068C0 7.5599 0 11.5177 0 11.5177C0 11.5177 0 15.4755 0.500915 17.3747C0.777737 18.424 1.59063 19.212 2.62321 19.4909C4.49506 20 12 20 12 20C12 20 19.5049 20 21.3768 19.4909C22.4094 19.212 23.2223 18.4195 23.4991 17.3747C24 15.4755 24 11.5177 24 11.5177C24 11.5177 24 7.5599 23.4991 5.66068ZM9.54815 15.1125V7.92292L15.8184 11.5177L9.54815 15.1125Z" fill="white"/></svg>');
@@ -250,16 +243,6 @@ bd-footer-links-group a:focus {
250
243
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4.14286 1C2.40937 1 1 2.40937 1 4.14286V19.8571C1 21.5906 2.40937 23 4.14286 23H19.8571C21.5906 23 23 21.5906 23 19.8571V4.14286C23 2.40937 21.5906 1 19.8571 1H4.14286ZM18.7326 5.125L13.6353 10.9491L19.6312 18.875H14.9366L11.2634 14.0674L7.05491 18.875H4.72232L10.1732 12.6433L4.42277 5.125H9.23527L12.5598 9.52009L16.4 5.125H18.7326ZM16.8763 17.4804L8.53304 6.44598H7.1433L15.5799 17.4804H16.8714H16.8763Z" fill="white"/></svg>');
251
244
  }
252
245
 
253
- .arrow-up {
254
- content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><path fill-rule="evenodd" clip-rule="evenodd" d="M9.55762 5.80806C9.80169 5.56398 10.1974 5.56398 10.4415 5.80806L17.3165 12.6831L16.4326 13.5669L9.99956 7.13388L3.5665 13.5669L2.68262 12.6831L9.55762 5.80806Z" fill="white"/></svg>');
255
- }
256
-
257
- .arrow-down {
258
- content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><path fill-rule="evenodd" clip-rule="evenodd" d="M9.99956 12.8662L3.5665 6.43311L2.68262 7.31699L9.55762 14.192C9.80169 14.4361 10.1974 14.4361 10.4415 14.192L17.3165 7.31699L16.4326 6.43311L9.99956 12.8662Z" fill="white"/></svg>');
259
- }
260
- .close-icon {
261
- content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18"><path fill-rule="evenodd" clip-rule="evenodd" d="M7.18182 9L0.564941 15.6169L2.38322 17.4352L9.00007 10.8183L15.6169 17.4352L17.4352 15.6169L10.8183 9L17.4352 2.38317L15.6169 0.564894L9.00007 7.18174L2.38322 0.564894L0.564941 2.38317L7.18182 9Z" fill="white"/></svg>');
262
- }
263
246
 
264
247
  a {
265
248
  color: var(--color-neutral-0);
@@ -6,6 +6,10 @@ import '../../components/footer/footer-nav-menu.js';
6
6
  import '../../components/grid/grid.js';
7
7
  import '../../components/link/link.js';
8
8
  import { tokens } from "../../tokens/tokens.js";
9
+ import "../icons/arrow-down-icon.js";
10
+ import "../icons/arrow-up-icon.js";
11
+ import "../icons/close-icon.js";
12
+ import "../icons/globe-icon.js";
9
13
  import footerCSS from './footer.css.js';
10
14
  import { localeMap } from './localeMap.js';
11
15
 
@@ -325,21 +329,21 @@ export class BdFooter extends LitElement {
325
329
  <slot name="quick-links"></slot>
326
330
  </bd-grid>
327
331
  </div>
328
- <bd-divider-horizontal class="tablet-divider" width="100%" color="white" opacity="0.25"></bd-divider-horizontal>
332
+ <bd-divider-horizontal class="tablet-divider" width="100%" color="white" opacity="0.25"></bd-divider-horizontal>
329
333
  ${this._isMobile
330
334
  ? html`<bd-divider-horizontal width="100%" color="white" opacity="0.25"></bd-divider-horizontal>`
331
335
  : ''}
332
336
 
333
337
  <div class="footer-links-right social-icons">
334
- <slot name="social-links">
335
- <bd-link href="https://www.facebook.com/bitdefender" target="_blank" kind="secondary" class="bd-facebook">Facebook</bd-link>
336
- <bd-link href="https://twitter.com/bitdefender" target="_blank" kind="secondary" class="bd-twitter">Twitter</bd-link>
337
- <bd-link href="https://www.linkedin.com/company/bitdefender" target="_blank" kind="secondary" class="bd-linkedin">LinkedIn</bd-link>
338
- <bd-link href="https://www.youtube.com/c/Bitdefender" target="_blank" kind="secondary" class="bd-youtube">YouTube</bd-link>
339
- <bd-link href="https://www.instagram.com/bitdefender/" target="_blank" kind="secondary" class="bd-instagram">Instagram</bd-link>
340
- <bd-link href="https://www.tiktok.com/@bitdefender" target="_blank" kind="secondary" class="bd-tiktok">TikTok</bd-link>
341
- </slot>
342
- </div>
338
+ <slot name="social-links">
339
+ <bd-link href="https://www.facebook.com/bitdefender" target="_blank" kind="secondary" class="bd-facebook">Facebook</bd-link>
340
+ <bd-link href="https://twitter.com/bitdefender" target="_blank" kind="secondary" class="bd-twitter">Twitter</bd-link>
341
+ <bd-link href="https://www.linkedin.com/company/bitdefender" target="_blank" kind="secondary" class="bd-linkedin">LinkedIn</bd-link>
342
+ <bd-link href="https://www.youtube.com/c/Bitdefender" target="_blank" kind="secondary" class="bd-youtube">YouTube</bd-link>
343
+ <bd-link href="https://www.instagram.com/bitdefender/" target="_blank" kind="secondary" class="bd-instagram">Instagram</bd-link>
344
+ <bd-link href="https://www.tiktok.com/@bitdefender" target="_blank" kind="secondary" class="bd-tiktok">TikTok</bd-link>
345
+ </slot>
346
+ </div>
343
347
  </div>
344
348
 
345
349
  ${!this._isMobile
@@ -363,8 +367,7 @@ export class BdFooter extends LitElement {
363
367
  </div>
364
368
  </div>
365
369
 
366
- <bd-divider-horizontal width="100%" color="white" opacity="0.25"></bd-divider-horizontal>
367
-
370
+ <bd-divider-horizontal width="100%" color="white" opacity="0.25"></bd-divider-horizontal>
368
371
 
369
372
  <div class="footer-extra">
370
373
  <div class="footer-copy">
@@ -385,9 +388,12 @@ export class BdFooter extends LitElement {
385
388
 
386
389
  <div class="footer-countries-toggle">
387
390
  <button class="country-toggle" @click="${this._toggleCountries}">
388
- <span class="leading-icon" role="img" aria-label="Leading icon"></span>
391
+ <bd-globe-icon size="20" color="white"></bd-globe-icon>
389
392
  ${this.selectedCountry}
390
- <span class="arrow ${this._countriesOpen ? 'arrow-up' : 'arrow-down'}"></span>
393
+ ${this._countriesOpen
394
+ ? html`<bd-arrow-up-icon size="20" color="white"></bd-arrow-up-icon>`
395
+ : html`<bd-arrow-down-icon size="20" color="white"></bd-arrow-down-icon>`
396
+ }
391
397
  </button>
392
398
  </div>
393
399
  </div>
@@ -395,9 +401,9 @@ export class BdFooter extends LitElement {
395
401
  ${this._countriesOpen
396
402
  ? html`
397
403
  <div class="footer-countries-container">
398
- <button class="close-countries-button" @click="${this._closeCountries}">
399
- <span class="close-icon"></span>
400
- </button>
404
+ <button class="close-countries-button" @click="${this._closeCountries}">
405
+ <bd-close-icon size="18" color="white"></bd-close-icon>
406
+ </button>
401
407
  ${countryChunks.map(chunk => html`
402
408
  <bd-footer-links-group slot="countries" title="${chunk === countryChunks[0] ? 'Choose your country' : ''}">
403
409
  ${chunk.map(c => html`