@repobit/dex-system-design 0.11.0 → 0.12.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.
Files changed (105) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/package.json +2 -2
  3. package/src/assets/icons/Identity_protection.png +0 -0
  4. package/src/assets/icons/arrow_down.png +0 -0
  5. package/src/assets/icons/arrow_up.png +0 -0
  6. package/src/assets/icons/device_protection.png +0 -0
  7. package/src/assets/icons/financial_insurance.png +0 -0
  8. package/src/assets/icons/privacy_protection.png +0 -0
  9. package/src/assets/icons/user_guide.png +0 -0
  10. package/src/components/Button/Button.js +19 -16
  11. package/src/components/Button/button.css.js +18 -16
  12. package/src/components/Button/icons.js +8 -8
  13. package/src/components/FAQ/faq.css.js +48 -49
  14. package/src/components/FAQ/faq.js +0 -86
  15. package/src/components/Input/Input.js +68 -6
  16. package/src/components/Input/custom-form.stories.js +88 -0
  17. package/src/components/Input/input-clipboard.css.js +168 -0
  18. package/src/components/Input/input-clipboard.js +137 -0
  19. package/src/components/Input/input.css.js +122 -42
  20. package/src/components/accordion/accordion-bg.css.js +117 -0
  21. package/src/components/accordion/accordion-bg.js +80 -0
  22. package/src/components/accordion/accordion-no-bg.css.js +114 -0
  23. package/src/components/accordion/accordion-no-bg.js +80 -0
  24. package/src/components/accordion/accordion.css.js +88 -0
  25. package/src/components/accordion/accordion.js +81 -0
  26. package/src/components/anchor/anchor-nav.css.js +15 -15
  27. package/src/components/anchor/anchor-nav.js +0 -1
  28. package/src/components/anchor/anchor.stories.js +10 -13
  29. package/src/components/badge/badge.css.js +6 -6
  30. package/src/components/badge/badge.js +1 -2
  31. package/src/components/badge/badge.stories.js +6 -6
  32. package/src/components/carousel/carousel.css.js +60 -60
  33. package/src/components/carousel/carousel.js +26 -30
  34. package/src/components/carousel/carousel.stories.js +55 -55
  35. package/src/components/checkbox/checkbox.css.js +14 -14
  36. package/src/components/divider/divider-horizontal.js +19 -14
  37. package/src/components/divider/divider-vertical.js +23 -14
  38. package/src/components/divider/divider.css.js +19 -0
  39. package/src/components/dropdown/dropdown.css.js +138 -0
  40. package/src/components/dropdown/dropdown.js +111 -0
  41. package/src/components/footer/footer-links-group.css.js +42 -0
  42. package/src/components/footer/footer-links-group.js +25 -0
  43. package/src/components/footer/footer-lp.css.js +625 -0
  44. package/src/components/footer/footer-lp.js +368 -0
  45. package/src/components/footer/footer-lp.stories.js +69 -0
  46. package/src/components/footer/footer-nav-menu.css.js +24 -0
  47. package/src/components/footer/footer-nav-menu.js +36 -0
  48. package/src/components/footer/footer.css.js +625 -0
  49. package/src/components/footer/footer.js +465 -0
  50. package/src/components/footer/footer.stories.js +60 -0
  51. package/src/components/footer/localeMap.js +1 -0
  52. package/src/components/grid/grid.css.js +38 -0
  53. package/src/components/grid/grid.js +55 -0
  54. package/src/components/header/header.css.js +81 -52
  55. package/src/components/header/header.js +19 -19
  56. package/src/components/highlight/highlight.css.js +32 -22
  57. package/src/components/highlight/highlight.js +15 -4
  58. package/src/components/highlight/highlight.stories.js +4 -4
  59. package/src/components/light-carousel/light-carousel-simple.css.js +183 -0
  60. package/src/components/light-carousel/light-carousel-simple.js +73 -0
  61. package/src/components/light-carousel/light-carousel.css.js +50 -31
  62. package/src/components/light-carousel/light-carousel.js +14 -57
  63. package/src/components/light-carousel/light-carousel.stories.js +51 -10
  64. package/src/components/link/link.css.js +41 -0
  65. package/src/components/link/link.js +54 -0
  66. package/src/components/modal/modal.css.js +75 -0
  67. package/src/components/modal/modal.js +41 -0
  68. package/src/components/modal/modal.stories.js +40 -0
  69. package/src/components/paragraph/paragraph.css.js +1 -3
  70. package/src/components/pricing-cards/new-pricing-card.js +30 -0
  71. package/src/components/pricing-cards/new-pricing.css.js +58 -0
  72. package/src/components/pricing-cards/pricing-card-actions.css.js +16 -0
  73. package/src/components/pricing-cards/pricing-card-actions.js +20 -0
  74. package/src/components/pricing-cards/pricing-card-container.css.js +41 -0
  75. package/src/components/pricing-cards/pricing-card-container.js +31 -0
  76. package/src/components/pricing-cards/pricing-card-header.css.js +70 -0
  77. package/src/components/pricing-cards/pricing-card-header.js +46 -0
  78. package/src/components/pricing-cards/pricing-card-pricing.css.js +63 -0
  79. package/src/components/pricing-cards/pricing-card-pricing.js +101 -0
  80. package/src/components/pricing-cards/pricing-card-show-more.css.js +22 -0
  81. package/src/components/pricing-cards/pricing-card-show-more.js +33 -0
  82. package/src/components/pricing-cards/pricing-card.css.js +91 -89
  83. package/src/components/pricing-cards/pricing-card.js +13 -16
  84. package/src/components/pricing-cards/pricing-feature-item.css.js +18 -0
  85. package/src/components/pricing-cards/pricing-feature-item.js +14 -0
  86. package/src/components/radio/radio.css.js +18 -18
  87. package/src/components/radio/radio.js +1 -0
  88. package/src/components/tabs/tabs.css.js +21 -11
  89. package/src/components/tabs/tabs.js +24 -18
  90. package/src/components/termsOfUse/terms.css.js +6 -6
  91. package/src/components/termsOfUse/terms.js +0 -1
  92. package/src/stories/demo.stories.js +271 -0
  93. package/src/tokens/colors.js +10 -10
  94. package/src/tokens/fonts.stories.js +5 -5
  95. package/src/tokens/layout.css +4 -3
  96. package/src/tokens/new-tokens.css +698 -0
  97. package/src/tokens/spacing.stories.js +1 -1
  98. package/src/tokens/tokens.css +1063 -0
  99. package/src/tokens/tokens.stories.js +3 -3
  100. package/src/tokens/typography.css.js +0 -4
  101. package/src/tokens/typography.stories.js +2 -2
  102. package/src/components/Input/index.js +0 -0
  103. package/src/components/highlight/highlight-s.css.js +0 -88
  104. package/src/components/highlight/highlight-s.js +0 -35
  105. package/src/components/highlight/highlight-s.stories.js +0 -22
@@ -9,7 +9,7 @@ export default css`
9
9
  display: inline-flex;
10
10
  align-items: center;
11
11
  cursor: pointer;
12
- gap: var(--size-8);
12
+ gap: var(--spacing-8);
13
13
  font-family: sans-serif;
14
14
  font-size: 14px;
15
15
  vertical-align: middle;
@@ -27,9 +27,9 @@ export default css`
27
27
 
28
28
  .bd-outer,
29
29
  .custom-radio {
30
- width: var(--size-22);
31
- height: var(--size-22);
32
- border:var(--size-2) solid var(--color-blue-500);
30
+ width: var(--spacing-22);
31
+ height: var(--spacing-22);
32
+ border:var(--spacing-2) solid var(--color-blue-500);
33
33
  border-radius: 50%;
34
34
  display: flex;
35
35
  align-items: center;
@@ -39,8 +39,8 @@ export default css`
39
39
  }
40
40
 
41
41
  .bd-inner {
42
- width: var(--size-12);
43
- height: var(--size-12);
42
+ width: var(--spacing-12);
43
+ height: var(--spacing-12);
44
44
  background-color: var(--color-blue-500);
45
45
  border-radius: 50%;
46
46
  transform: scale(0);
@@ -84,8 +84,8 @@ export default css`
84
84
 
85
85
  .bd-radio.focus .bd-outer,
86
86
  .bd-outer.focus {
87
- outline: var(--size-2) solid var(--color-blue-500);
88
- outline-offset: var(--size-2);
87
+ outline: var(--spacing-2) solid var(--color-blue-500);
88
+ outline-offset: var(--spacing-2);
89
89
  }
90
90
 
91
91
  .hidden-input {
@@ -106,8 +106,8 @@ export default css`
106
106
  position: absolute;
107
107
  top: 50%;
108
108
  left: 50%;
109
- width: var(--size-12);
110
- height: var(--size-12);
109
+ width: var(--spacing-12);
110
+ height: var(--spacing-12);
111
111
  background-color: #006dff;
112
112
  border-radius: 50%;
113
113
  transform: translate(-50%, -50%) scale(0);
@@ -133,23 +133,23 @@ export default css`
133
133
  }
134
134
 
135
135
  .bd-outer:focus-visible {
136
- outline: var(--size-2) solid var(--color-blue-500);
137
- outline-offset: var(--size-2);
136
+ outline: var(--spacing-2) solid var(--color-blue-500);
137
+ outline-offset: var(--spacing-2);
138
138
  }
139
139
  .bd-outer:focus:not(:focus-visible) {
140
140
  outline: none;
141
141
  }
142
142
  .bd-outer.focus {
143
- outline: var(--size-2) solid var(--color-blue-500);
144
- outline-offset: var(--size-2);
143
+ outline: var(--spacing-2) solid var(--color-blue-500);
144
+ outline-offset: var(--spacing-2);
145
145
  }
146
146
  .bd-outer:active {
147
- outline: var(--size-2) solid var(--color-blue-500);
148
- outline-offset: var(--size-2);
147
+ outline: var(--spacing-2) solid var(--color-blue-500);
148
+ outline-offset: var(--spacing-2);
149
149
  }
150
150
  .bd-outer:focus-visible.checked {
151
- outline: var(--size-2) solid var(--color-blue-500);
152
- outline-offset: var(--size-2);
151
+ outline: var(--spacing-2) solid var(--color-blue-500);
152
+ outline-offset: var(--spacing-2);
153
153
  }
154
154
 
155
155
  .bd-outer:focus-visible.checked .bd-inner {
@@ -183,6 +183,7 @@ class BdToggleRadio extends LitElement {
183
183
  }
184
184
  }
185
185
 
186
+
186
187
  render() {
187
188
  return html`
188
189
  <label class="bd-radio ${this.disabled ? "disabled" : ""}">
@@ -11,17 +11,27 @@ export default css`
11
11
  --text-color-white: var(--color-neutral-0);
12
12
  font-size: 100%;
13
13
  display: block;
14
- font-family: var(--font-family-sans);
14
+ font-family: var(--typography-fontFamily-sans);
15
+ padding-top: var(--spacing-64);
16
+ padding-bottom: var(--spacing-64);
15
17
  }
16
-
18
+ .bd-tabs-subtitle{
19
+ font-size: var(--typography-body-regular-fontSize);
20
+ max-width: 500px;
21
+ text-align: center;
22
+ font-family: var(--typography-fontFamily-sans);
23
+ margin-top: var(--spacing-32);
24
+ margin-bottom: var(--spacing-32);
25
+
26
+ }
17
27
  .bd-tab-button p {
18
28
  margin-top: 1em;
19
29
  margin-bottom: 1em;
20
30
  }
21
31
  .bd-tab-button:focus-visible,
22
32
  .bd-find-out-more:focus-visible {
23
- outline: var(--size-2) solid var(--bd-accesibility-focus);
24
- outline-offset: var(--size-2);
33
+ outline: var(--spacing-2) solid var(--bd-accesibility-focus);
34
+ outline-offset: var(--spacing-2);
25
35
  border-radius: var(--space-2xs);
26
36
  }
27
37
  .bd-tabs-component .bd-left img {
@@ -47,7 +57,7 @@ export default css`
47
57
  flex: 1;
48
58
  justify-content: center;
49
59
  align-items: center;
50
- padding: 0px var(--size-24);
60
+ padding: var(--spacing-0) var(--spacing-24);
51
61
  }
52
62
 
53
63
  .bd-tabs-container {
@@ -57,6 +67,7 @@ export default css`
57
67
  flex-wrap: wrap;
58
68
  border-bottom: 1px solid #e4f2ff;
59
69
  margin: 0 auto;
70
+ margin-bottom: var(--spacing-32);
60
71
  }
61
72
 
62
73
  .bd-tabs-container button {
@@ -119,7 +130,6 @@ export default css`
119
130
  display: flex;
120
131
  flex-direction: column;
121
132
  align-items: center;
122
- margin-top: 48px;
123
133
  }
124
134
 
125
135
  .bd-ul-privacy {
@@ -137,8 +147,8 @@ export default css`
137
147
  align-items: start;
138
148
  position: relative;
139
149
  cursor: pointer;
140
- font-family: var(--font-family-sans);
141
- font-weight: var(--font-weight-sans-semibold);
150
+ font-family: var(--typography-fontFamily-sans);
151
+ font-weight: var(--typography-fontWeight-semibold);
142
152
  }
143
153
 
144
154
  .bd-find-out-more .bd-arrow svg {
@@ -149,12 +159,12 @@ export default css`
149
159
  }
150
160
 
151
161
  .bd-right h3 {
152
- font-size: 1.5em;
162
+ font-size: var(--typography-heading-h4-fontSize);
153
163
  }
154
164
 
155
165
  .bd-section-title {
156
- font-family: var(--font-family-sans);
157
- font-weight: var(--font-weight-sans-semibold);
166
+ font-family: var(--typography-fontFamily-sans);
167
+ font-weight: var(--typography-fontWeight-semibold);
158
168
  }
159
169
 
160
170
  /* ✅ Responsive Design */
@@ -1,6 +1,5 @@
1
1
  import { LitElement, html } from "lit";
2
2
  import { tokens } from "../../tokens/tokens.js";
3
-
4
3
  import tabsCSS from "../tabs/tabs.css.js";
5
4
 
6
5
  class TabsComponent extends LitElement {
@@ -14,7 +13,6 @@ class TabsComponent extends LitElement {
14
13
  }
15
14
 
16
15
  selectTab(index) {
17
- console.log("Selected Tab:", index);
18
16
  this.selectedTab = index;
19
17
  this.requestUpdate();
20
18
  }
@@ -23,23 +21,23 @@ class TabsComponent extends LitElement {
23
21
  const tabs = [
24
22
  {
25
23
  title : "Privacy Protection",
26
- imageBase: "images/tabs-img1.png",
27
- icon : "icons/pic1.png"
24
+ imageBase: "/assets/tabs-img1.png",
25
+ icon : "/assets/pic1.png"
28
26
  },
29
27
  {
30
28
  title : "Identity Protection",
31
- imageBase: "images/tabs-img2.png",
32
- icon : "icons/pic2.png"
29
+ imageBase: "/assets/tabs-img2.png",
30
+ icon : "/assets/pic2.png"
33
31
  },
34
32
  {
35
33
  title : "Device Protection",
36
- imageBase: "images/tabs-img3.png",
37
- icon : "icons/pic3.png"
34
+ imageBase: "/assets/tabs-img3.png",
35
+ icon : "/assets/pic3.png"
38
36
  },
39
37
  {
40
38
  title : "Financial Insurance",
41
- imageBase: "images/tabs-img3.png",
42
- icon : "icons/pic3.png"
39
+ imageBase: "/assets/tabs-img3.png",
40
+ icon : "/assets/pic3.png"
43
41
  }
44
42
  ];
45
43
 
@@ -106,15 +104,17 @@ class TabsComponent extends LitElement {
106
104
 
107
105
  return html`
108
106
  <div class="bd-tabs-component">
109
- <h1 class="bd-section-title">
110
- Live your digital life worry-free from start to finish
111
- </h1>
107
+ <bd-highlight highlight-text="family member">
108
+ Customized online protection for each family member - Smart, Private &
109
+ Safe
110
+ </bd-highlight>
111
+ <p class="bd-tabs-subtitle">Your family is unique and so should be your online security. Our family protection plan adapts to each member’s needs, offering the ideal mix of privacy, freedom, and safety.</p>
112
112
  <div class="bd-tabs-container">
113
113
  ${tabs.map(
114
114
  (tab, index) => html`
115
115
  <button
116
- role="tab"
117
- aria-selected="${this.selectedTab === index ? 'true' : 'false'}"
116
+ role="tab"
117
+ aria-selected="${this.selectedTab === index ? "true" : "false"}"
118
118
  class=${this.selectedTab === index
119
119
  ? "bd-selected bd-tab-button"
120
120
  : "bd-tab-button"}
@@ -152,14 +152,20 @@ class TabsComponent extends LitElement {
152
152
  </picture>
153
153
  </div>
154
154
  <div class="bd-right">
155
- <h3 id="tab-content-heading-${this.selectedTab}">${content[this.selectedTab].heading}</h3>
156
- <div id="tab-content-${this.selectedTab}" aria-labelledby="tab-content-heading-${this.selectedTab}">
155
+ <h3 id="tab-content-heading-${this.selectedTab}">
156
+ ${content[this.selectedTab].heading}
157
+ </h3>
158
+ <div
159
+ id="tab-content-${this.selectedTab}"
160
+ aria-labelledby="tab-content-heading-${this.selectedTab}"
161
+ >
157
162
  ${content[this.selectedTab].description()}
158
163
  </div>
159
164
  <a
160
165
  href="${content[this.selectedTab].href}"
161
166
  class="bd-find-out-more"
162
- aria-label="Find out more about ${content[this.selectedTab].heading}"
167
+ aria-label="Find out more about ${content[this.selectedTab]
168
+ .heading}"
163
169
  >
164
170
  Find out more
165
171
  <span class="bd-arrow">
@@ -14,26 +14,26 @@ export default css`
14
14
  }
15
15
 
16
16
  .bd-terms-text-a:focus-visible{
17
- outline: var(--size-2) solid var(--bd-accesibility-focus);
18
- outline-offset: var(--size-2);
17
+ outline: var(--spacing-2) solid var(--bd-accesibility-focus);
18
+ outline-offset: var(--spacing-2);
19
19
  border-radius: var(--space-2xs);
20
20
  }
21
21
  .bd-terms-container {
22
22
  background: #f2f2f2;
23
- padding: var(--size-44) 0;
23
+ padding: var(--spacing-44) 0;
24
24
  font-family: Arial, Helvetica, sans-serif;
25
25
  }
26
26
 
27
27
  .bd-terms-wrapper {
28
- padding: var(--size-14) var(--size-20) var(--size-40) var(--size-20);
28
+ padding: var(--spacing-14) var(--spacing-20) var(--spacing-40) var(--spacing-20);
29
29
  }
30
30
 
31
31
  #bd-terms-of-use {
32
- font-size: var(--size-16);
32
+ font-size: var(--spacing-16);
33
33
  }
34
34
 
35
35
  .bd-terms-text-p {
36
- font-size: var(--size-12);
36
+ font-size: var(--spacing-12);
37
37
  line-height: 1.31;
38
38
  letter-spacing: 0.006em;
39
39
  padding: 0;
@@ -1,6 +1,5 @@
1
1
  import { LitElement, html } from "lit";
2
2
  import { tokens } from "../../tokens/tokens.js";
3
-
4
3
  import termsCSS from "../termsOfUse/terms.css.js";
5
4
 
6
5
  class TermsSection extends LitElement {
@@ -0,0 +1,271 @@
1
+ // src/stories/DesignSystem.stories.js
2
+ import '/src/components/Anchor/anchor-nav.js';
3
+ import '/src/components/badge/badge.js';
4
+ import '/src/components/Button/Button.js';
5
+ import '/src/components/carousel/carousel.js';
6
+ import '/src/components/checkbox/checkbox.js';
7
+ import '/src/components/divider/divider-horizontal.js';
8
+ import '/src/components/divider/divider-vertical.js';
9
+ import '/src/components/FAQ/faq.js';
10
+ import '/src/components/header/header.js';
11
+ import '/src/components/highlight/highlight.js';
12
+ import '/src/components/input/input.js';
13
+ import '/src/components/light-carousel/light-carousel.js';
14
+ import '/src/components/paragraph/paragraph.js';
15
+ import '/src/components/pricing-cards/pricing-card.js';
16
+ import '/src/components/radio/radio.js';
17
+ import '/src/components/tabs/tabs.js';
18
+ import '/src/components/termsOfUse/terms.js';
19
+
20
+ export default {
21
+ title : 'Design System/Demo full page',
22
+ parameters: {
23
+ // eventuale parametri Storybook (ex: backgrounds, viewport etc)
24
+ },
25
+ decorators: [
26
+ (Story) => {
27
+ // injectează token-urile CSS global în Storybook (dacă nu sunt deja)
28
+ return `
29
+ <link rel="stylesheet" href="/src/tokens/tokens.css" />
30
+ <link rel="stylesheet" href="/src/tokens/layout.css" />
31
+ <link rel="stylesheet" href="/src/tokens/typography.css" />
32
+ <link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;600&display=swap" rel="stylesheet" />
33
+ ${Story()}
34
+ `;
35
+ }
36
+ ]
37
+ };
38
+
39
+ export const FullPage = () => `
40
+ <bd-header
41
+ product-name="Bitdefender Ultimate Security"
42
+ value-prop="Complete Security, Advanced Privacy, and Identity Protection"
43
+ description="All in one plan to incorporate multi-awarded device protection, solid password management, unlimited VPN traffic & personalized protection for your online identity."
44
+ full-price="$139.99"
45
+ discount="Save 44%"
46
+ final-price="$79.99"
47
+ >
48
+ <div class="bd-header-right">
49
+ <img
50
+ class="bd-header-image"
51
+ src="/assets/bd-header-us.jpg"
52
+ alt="Security illustration"
53
+ />
54
+ </div>
55
+ </bd-header>
56
+
57
+ <bd-anchor-nav>
58
+ <bd-anchor-nav-item title="Anchor 1" id="anchor-1"></bd-anchor-nav-item>
59
+ <bd-anchor-nav-item title="Anchor 2" id="anchor-2"></bd-anchor-nav-item>
60
+ <bd-anchor-nav-item title="Anchor 3" id="anchor-3"></bd-anchor-nav-item>
61
+ </bd-anchor-nav>
62
+
63
+ <p>Let’s Secure Your Digital Life</p>
64
+
65
+ <bd-highlight-text highlight-text="next generation of digital security">
66
+ Introducing the next generation of digital security: your personalized shield for a worry-free online experience.
67
+ </bd-highlight-text>
68
+
69
+ <bd-light-carousel-section
70
+ title="Our AI-powered platform that detects and fights scams. In real time."
71
+ >
72
+ <bd-light-carousel-item
73
+ title="Scam Copilot Chatbot"
74
+ icon="/assets/light-carousel-img1.png"
75
+ badge="NEW"
76
+ >
77
+ <p>
78
+ Specialized AI chatbot that helps you identify suspicious online interactions so you don’t become a victim.
79
+ </p>
80
+ </bd-light-carousel-item>
81
+
82
+ <bd-light-carousel-item
83
+ title="Scam Wave Alerts"
84
+ icon="/assets/light-carousel-img1.png"
85
+ badge="NEW"
86
+ >
87
+ <p>
88
+ Stay informed with real-time alerts about ongoing scam outbreaks detected in your area automatically.
89
+ </p>
90
+ </bd-light-carousel-item>
91
+
92
+ <bd-light-carousel-item
93
+ title="Online Scam Protection"
94
+ icon="/assets/light-carousel-img1.png"
95
+ badge="NEW"
96
+ >
97
+ <p>Focused on browsing activities, it specializes in detecting the newest scam patterns and tactics.</p>
98
+ </bd-light-carousel-item>
99
+
100
+ <bd-light-carousel-item
101
+ title="Remote Access Protection"
102
+ icon="/assets/light-carousel-img1.png"
103
+ badge="NEW"
104
+ >
105
+ <p>Detects patterns of behavior typical of scammers seeking to access your data remotely.</p>
106
+ </bd-light-carousel-item>
107
+
108
+ <bd-light-carousel-item
109
+ title="SMS Protection"
110
+ icon="/assets/light-carousel-img1.png"
111
+ badge="IMPROVED"
112
+ >
113
+ <p>Detects scams and harmful links in SMS messages3 using advanced AI for fast, real-time protection.</p>
114
+ </bd-light-carousel-item>
115
+
116
+ <bd-light-carousel-item
117
+ title="Email Protection"
118
+ icon="/assets/light-carousel-img1.png"
119
+ >
120
+ <p>Detects scams and harmful links in SMS messages3 using advanced AI for fast, real-time protection.</p>
121
+ </bd-light-carousel-item>
122
+
123
+ <bd-light-carousel-item
124
+ title="Scam Notification Protection"
125
+ icon="/assets/light-carousel-img1.png"
126
+ >
127
+ <p>Scans and detects scam attempts directly in push notifications4 before you even tap or interact.</p>
128
+ </bd-light-carousel-item>
129
+
130
+ <bd-light-carousel-item
131
+ title="Chat Protection"
132
+ icon="/assets/light-carousel-img1.png"
133
+ >
134
+ <p>Identifies scam messages in WhatsApp, Messenger, Telegram and Discord chats4 before they reach your attention.</p>
135
+ </bd-light-carousel-item>
136
+
137
+ <bd-light-carousel-item
138
+ title="Calendar Invites Protection"
139
+ icon="/assets/light-carousel-img1.png"
140
+ >
141
+ <p>Finds and blocks scam calendar events5 before they can trick you with fake links or misleading invites.</p>
142
+ </bd-light-carousel-item>
143
+ </bd-light-carousel-section>
144
+
145
+ <div class="tabs">
146
+ <bd-tabs-component id="anchor-2-section"></bd-tabs-component>
147
+ </div>
148
+
149
+ <bd-faq-section title="Questions? Answers." id="anchor-1-section">
150
+ <bd-faq-section-item title="How does Bitdefender Internet Security protect me?">
151
+ <p>Bitdefender Internet Security provides the best protection...</p>
152
+ <p>Bitdefender Internet Security provides the best protection...</p>
153
+ <p>Bitdefender Internet Security provides the best protection...</p>
154
+ </bd-faq-section-item>
155
+
156
+ <bd-faq-section-item title="Does Bitdefender protect me against ransomware?">
157
+ <p>Yes! Bitdefender Internet Security offers unbeatable ransomware protection...</p>
158
+ </bd-faq-section-item>
159
+
160
+ <bd-faq-section-item title="Do I get a VPN with Bitdefender Internet Security?">
161
+ <p>Bitdefender Internet Security includes a basic VPN with 200MB per day.</p>
162
+ </bd-faq-section-item>
163
+ </bd-faq-section>
164
+
165
+ <div class="bd-answer">
166
+ <bd-terms-section></bd-terms-section>
167
+ </div>
168
+
169
+ <bd-carousel-section
170
+ title="Need help? We've got answers!"
171
+ id="anchor-3-section"
172
+ >
173
+ <bd-carousel-item
174
+ title="Scam Copilot Bot"
175
+ subTitle="Specialized AI chatbot that helps you identify suspicious online interactions so you don’t become a victim"
176
+ modalText="Specialized AI chatbot that helps you identify suspicious online interactions so you don’t become a victim"
177
+ icon="/assets/light-carousel-img1.png"
178
+ >
179
+ <h3>Scam Copilot Bot</h3>
180
+ <p>Specialized AI chatbot that helps you identify suspicious online interactions so you don’t become a victim.</p>
181
+ <p>Specialized AI chatbot that helps you identify suspicious online interactions so you don’t become a victim.</p>
182
+ <p>Specialized AI chatbot that helps you identify suspicious online interactions so you don’t become a victim.</p>
183
+ <h6>Testare Scam Copilot</h6>
184
+ </bd-carousel-item>
185
+
186
+ <bd-carousel-item
187
+ title="Scam Wave Alerts"
188
+ subTitle="Proactively informs you about scam outbreaks in your region"
189
+ modalText="Proactively informs you about scam outbreaks in your region"
190
+ icon="/assets/light-carousel-img1.png"
191
+ >
192
+ <h3>Scam Wave Alerts</h3>
193
+ <p>Proactively informs you about scam outbreaks in your region.</p>
194
+ </bd-carousel-item>
195
+
196
+ <bd-carousel-item
197
+ title="AI-Powered Scam Check"
198
+ subTitle="AI-driven tool that instantly evaluates the legitimacy of any link, message, or online interaction"
199
+ modalText="AI-driven tool that instantly evaluates the legitimacy of any link, message, or online interaction"
200
+ icon="/assets/light-carousel-img1.png"
201
+ >
202
+ <h3>AI-Powered Scam Check</h3>
203
+ <p>AI-driven tool that instantly evaluates the legitimacy of any link, message, or online interaction.</p>
204
+ </bd-carousel-item>
205
+
206
+ <bd-carousel-item
207
+ title="Educational Resources"
208
+ subTitle="Access a wealth of information and best practices to stay informed and vigilant against scams"
209
+ modalText="Access a wealth of information and best practices to stay informed and vigilant against scams"
210
+ icon="/assets/light-carousel-img1.png"
211
+ >
212
+ <h3>Educational Resources</h3>
213
+ <p>Access a wealth of information and best practices to stay informed and vigilant against scams.</p>
214
+ </bd-carousel-item>
215
+
216
+ <bd-carousel-item
217
+ title="Phishing Simulator"
218
+ subTitle="Simulates phishing attacks to help you recognize and respond appropriately to real threats"
219
+ modalText="Simulates phishing attacks to help you recognize and respond appropriately to real threats"
220
+ icon="/assets/light-carousel-img1.png"
221
+ >
222
+ <h3>Phishing Simulator</h3>
223
+ <p>Simulates phishing attacks to help you recognize and respond appropriately to real threats.</p>
224
+ </bd-carousel-item>
225
+
226
+ <bd-carousel-item
227
+ title="Real-Time Scam Updates"
228
+ subTitle="Stay ahead with up-to-the-minute alerts on the latest scams targeting your region or industry"
229
+ modalText="Stay ahead with up-to-the-minute alerts on the latest scams targeting your region or industry"
230
+ icon="/assets/light-carousel-img1.png"
231
+ >
232
+ <h3>Real-Time Scam Updates</h3>
233
+ <p>Stay ahead with up-to-the-minute alerts on the latest scams targeting your region or industry.</p>
234
+ </bd-carousel-item>
235
+
236
+ <bd-carousel-item
237
+ title="Community Reporting Hub"
238
+ subTitle="A platform where users can report scams and share experiences to help protect others"
239
+ modalText="A platform where users can report scams and share experiences to help protect others"
240
+ icon="/assets/light-carousel-img1.png"
241
+ >
242
+ <h3>Community Reporting Hub</h3>
243
+ <p>A platform where users can report scams and share experiences to help protect others.</p>
244
+ </bd-carousel-item>
245
+
246
+ <bd-carousel-item
247
+ title="Fraud Prevention Workshops"
248
+ subTitle="Interactive workshops that educate users on identifying and avoiding scams"
249
+ modalText="Interactive workshops that educate users on identifying and avoiding scams"
250
+ icon="/assets/light-carousel-img1.png"
251
+ >
252
+ <h3>Fraud Prevention Workshops</h3>
253
+ <p>Interactive workshops that educate users on identifying and avoiding scams.</p>
254
+ </bd-carousel-item>
255
+ </bd-carousel-section>
256
+
257
+ <bd-toggle-radio name="group1" value="opt1" label="Toggle 1" disabled></bd-toggle-radio>
258
+ <bd-toggle-radio name="group1" value="opt1" label="Toggle 1" disabled checked></bd-toggle-radio>
259
+ <bd-toggle-radio name="group1" value="opt2" label="Toggle 2"></bd-toggle-radio>
260
+ <bd-toggle-radio name="billing" value="yearly" label="Yearly"></bd-toggle-radio>
261
+ <bd-toggle-radio name="billing" value="monthly" label="Monthly"></bd-toggle-radio>
262
+ <bd-radio name="billing" value="yearly" label="Yearly"></bd-radio>
263
+ <bd-radio disabled checked label="Test" value="x"></bd-radio>
264
+ <bd-checkbox label="Accept terms" checked></bd-checkbox>
265
+
266
+ <div style="padding: 40px 0;">
267
+ <bd-divider-horizontal></bd-divider-horizontal>
268
+ </div>
269
+
270
+ <bd-badge>Badge</bd-badge>
271
+ `;
@@ -83,34 +83,34 @@ export const colors = `
83
83
  /* Heading default */
84
84
  --heading-xxsmall: 18pt;
85
85
  --heading-xsmall: 20pt;
86
- --heading-small: 24pt;
86
+ --typography-heading-h4-fontSize: 24pt;
87
87
  --heading-medium: 28pt;
88
- --heading-large: 32pt;
88
+ --typography-fontSize-3xl: 32pt;
89
89
  --heading-xlarge: 36pt;
90
90
  --heading-xxlarge: 40pt;
91
91
 
92
92
  /* Heading mobile */
93
93
  --heading-xxsmall-mobile: 18pt;
94
94
  --heading-xsmall-mobile: 20pt;
95
- --heading-small-mobile: 24pt;
95
+ --typography-heading-h4-fontSize-mobile: 24pt;
96
96
  --heading-medium-mobile: 26pt;
97
- --heading-large-mobile: 28pt;
97
+ --typography-fontSize-3xl-mobile: 28pt;
98
98
  --heading-xlarge-mobile: 30pt;
99
99
  --heading-xxlarge-mobile: 32pt;
100
100
 
101
101
  /* Body default */
102
102
  --body-small: 13pt;
103
- --body-medium: 14pt;
104
- --body-large: 16pt;
103
+ --typography-body-small-fontSize: 14pt;
104
+ --typography-body-regular-fontSize: 16pt;
105
105
  --body-xlarge: 18pt;
106
106
 
107
107
  /* Caption default */
108
- --caption-small: 11pt;
109
- --caption-large: 12pt;
108
+ --typography-label-extra-small-fontSize: 11pt;
109
+ --typography-label-small-fontSize: 12pt;
110
110
 
111
111
  /* Caption mobile */
112
- --caption-small-mobile: 11pt;
113
- --caption-large-mobile: 12pt;
112
+ --typography-label-extra-small-fontSize-mobile: 11pt;
113
+ --typography-label-small-fontSize-mobile: 12pt;
114
114
  }
115
115
  `;
116
116
 
@@ -10,7 +10,7 @@ export const FontFace = () => html`
10
10
  margin-bottom: 24px;
11
11
  }
12
12
  h3 {
13
- font-family: var(--font-family-sans, 'IBM Plex Sans', Arial, sans-serif);
13
+ font-family: var(--typography-fontFamily-sans, 'IBM Plex Sans', Arial, sans-serif);
14
14
  font-weight: 600;
15
15
  font-size: 1.2rem;
16
16
  margin-bottom: 12px;
@@ -20,22 +20,22 @@ export const FontFace = () => html`
20
20
  font-size: 1.1rem;
21
21
  }
22
22
  .sans-normal {
23
- font-family: var(--font-family-sans, 'IBM Plex Sans', Arial, sans-serif);
23
+ font-family: var(--typography-fontFamily-sans, 'IBM Plex Sans', Arial, sans-serif);
24
24
  font-weight: 400;
25
25
  font-style: normal;
26
26
  }
27
27
  .sans-semibold {
28
- font-family: var(--font-family-sans, 'IBM Plex Sans', Arial, sans-serif);
28
+ font-family: var(--typography-fontFamily-sans, 'IBM Plex Sans', Arial, sans-serif);
29
29
  font-weight: 600;
30
30
  font-style: normal;
31
31
  }
32
32
  .sans-bold {
33
- font-family: var(--font-family-sans, 'IBM Plex Sans', Arial, sans-serif);
33
+ font-family: var(--typography-fontFamily-sans, 'IBM Plex Sans', Arial, sans-serif);
34
34
  font-weight: 700;
35
35
  font-style: normal;
36
36
  }
37
37
  .sans-italic {
38
- font-family: var(--font-family-sans, 'IBM Plex Sans', Arial, sans-serif);
38
+ font-family: var(--typography-fontFamily-sans, 'IBM Plex Sans', Arial, sans-serif);
39
39
  font-weight: 400;
40
40
  font-style: italic;
41
41
  }