@repobit/dex-system-design 0.10.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 (107) hide show
  1. package/CHANGELOG.md +34 -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.css +166 -0
  95. package/src/tokens/fonts.stories.js +5 -5
  96. package/src/tokens/layout.css +4 -3
  97. package/src/tokens/new-tokens.css +698 -0
  98. package/src/tokens/spacing.stories.js +1 -1
  99. package/src/tokens/tokens.css +1063 -0
  100. package/src/tokens/tokens.js +0 -133
  101. package/src/tokens/tokens.stories.js +3 -3
  102. package/src/tokens/typography.css.js +0 -4
  103. package/src/tokens/typography.stories.js +2 -2
  104. package/src/components/Input/index.js +0 -0
  105. package/src/components/highlight/highlight-s.css.js +0 -88
  106. package/src/components/highlight/highlight-s.js +0 -35
  107. package/src/components/highlight/highlight-s.stories.js +0 -22
@@ -10,13 +10,33 @@ export default css`
10
10
  }
11
11
 
12
12
  a:focus-visible {
13
- outline: var(--size-2) solid var(--bd-accesibility-focus);
14
- outline-offset: var(--size-2);
13
+ outline: var(--spacing-2) solid var(--bd-accesibility-focus);
14
+ outline-offset: var(--spacing-2);
15
15
  border-radius: var(--space-2xs);
16
16
  }
17
17
  a {
18
- color: #000000;
18
+ color: #000000 !important;
19
+ }
20
+ ::slotted(a),
21
+ ::slotted(*) a {
22
+ color: #000000 !important;
23
+ }
24
+
25
+ ::slotted([slot="disclaimer-bottom"]) a {
26
+ color: #000000 !important;
27
+ }
28
+
29
+ ::slotted([slot="header-image"]) {
30
+ width: 100%;
31
+ height: auto;
32
+ object-fit: cover;
33
+ transform: scale(1.35) translateY(-7%);
34
+ display: block;
35
+ z-index: 1;
36
+ position: relative;
37
+ border-radius: var(--spacing-20);
19
38
  }
39
+
20
40
  .bd-container {
21
41
  display: grid;
22
42
  grid-template-columns: 1fr 1fr;
@@ -29,8 +49,8 @@ export default css`
29
49
 
30
50
  bd-button {
31
51
  font-size: var(--heading-xxsmall) !important;
32
- font-family: var(--font-family-sans) !important;
33
- font-weight: var(--font-weight-sans-semibold) !important;
52
+ font-family: var(--typography-fontFamily-sans) !important;
53
+ font-weight: var(--typography-fontWeight-semibold) !important;
34
54
  }
35
55
  .bd-header-left,
36
56
  .bd-header-right {
@@ -50,82 +70,82 @@ export default css`
50
70
  height: auto;
51
71
  object-fit: cover;
52
72
  display: block;
53
- border-radius: var(--size-20);
73
+ border-radius: var(--spacing-20);
54
74
  position: relative;
55
75
  z-index: 1;
56
76
  }
57
77
  .bd-product-name {
58
78
  color: var(--color-blue-500);
59
- font-family: var(--font-family-sans);
60
- font-weight: var(--font-weight-sans-semibold);
61
- font-size: var(--heading-large);
62
- letter-spacing: var(--size-0);
63
- margin-top: var(--size-16) !important;
64
- margin-bottom: var(--size-8) !important;
79
+ font-family: var(--typography-fontFamily-sans);
80
+ font-weight: var(--typography-fontWeight-semibold);
81
+ font-size: var(--typography-fontSize-3xl);
82
+ letter-spacing: var(--spacing-0);
83
+ margin-top: var(--spacing-16) !important;
84
+ margin-bottom: var(--spacing-8) !important;
65
85
  }
66
86
 
67
87
  .bd-value-prop {
68
- font-family: var(--font-family-sans);
69
- font-weight: var(--font-weight-sans-bold);
70
- font-size: var(--heading-xlarge);
88
+ font-family: var(--typography-fontFamily-sans);
89
+ font-weight: var(--typography-fontWeight-bold);
90
+ font-size: var(--heading-xxlarge);
71
91
  color: #000000;
72
- letter-spacing: var(--size-0);
73
- margin: var(--size-0) var(--size-0) !important;
92
+ letter-spacing: var(--spacing-0);
93
+ margin: var(--spacing-0) var(--spacing-0) !important;
74
94
  }
75
95
 
76
96
  .bd-description {
77
- font-family: var(--font-family-sans);
78
- font-weight: var(--font-weight-sans-regular);
79
- font-size: var(--size-18);
97
+ font-family: var(--typography-fontFamily-sans);
98
+ font-weight: var(--typography-body-large-fontWeight);
99
+ font-size: var(--spacing-18);
80
100
  color: #000000;
81
- margin-top: var(--size-8) !important;
82
- margin-bottom: var(--size-0) !important;
101
+ margin-top: var(--spacing-8) !important;
102
+ margin-bottom: var(--spacing-0) !important;
83
103
  }
84
104
 
85
105
  .bd-price-zone-top {
86
106
  display: flex;
87
- gap: var(--size-8);
107
+ gap: var(--spacing-8);
88
108
  align-items: center;
89
- margin-top: var(--size-32);
109
+ margin-top: var(--spacing-32);
90
110
  }
91
111
 
92
112
  .bd-full-price {
93
113
  text-decoration: line-through;
94
114
  color: #000000;
95
- font-size: var(--size-18);
96
- font-family: var(--font-family-sans);
115
+ font-size: var(--spacing-18);
116
+ font-family: var(--typography-fontFamily-sans);
97
117
  }
98
118
 
99
119
  .bd-discount {
100
120
  background: #c3f4d4;
101
121
  color: #0b6a26;
102
- padding: var(--size-4) var(--size-14);
103
- border-radius: var(--size-14);
104
- font-size: var(--size-16);
105
- font-family: var(--font-family-sans);
106
- font-weight: var(--font-weight-sans-semibold);
122
+ padding: var(--spacing-4) var(--spacing-14);
123
+ border-radius: var(--spacing-14);
124
+ font-size: var(--spacing-16);
125
+ font-family: var(--typography-fontFamily-sans);
126
+ font-weight: var(--typography-fontWeight-semibold);
107
127
  }
108
128
 
109
129
  .bd-price-zone-final {
110
130
  display: block;
111
131
  font-size: var(--display-large-mobile);
112
- font-family: var(--font-family-sans);
113
- font-weight: var(--font-weight-sans-bold);
114
- margin-bottom: var(--size-16);
132
+ font-family: var(--typography-fontFamily-sans);
133
+ font-weight: var(--typography-fontWeight-bold);
134
+ margin-bottom: var(--spacing-16);
115
135
  }
116
136
 
117
137
  .bd-cta {
118
138
  display: flex;
119
- gap: var(--size-16);
139
+ gap: var(--spacing-16);
120
140
  }
121
141
 
122
142
  .bd-disclaimer-top {
123
143
  display: block;
124
- margin-top: var(--size-16);
125
- margin-bottom: var(--size-8);
126
- font-size: var(--body-medium);
127
- font-family: var(--font-family-sans);
128
- font-weight: var(--font-weight-sans-regular);
144
+ margin-top: var(--spacing-16);
145
+ margin-bottom: var(--spacing-8);
146
+ font-size: var(--typography-body-small-fontSize);
147
+ font-family: var(--typography-fontFamily-sans);
148
+ font-weight: var(--typography-body-large-fontWeight);
129
149
  color: #000000;
130
150
  }
131
151
  .bd-header-image-wrapper {
@@ -148,11 +168,11 @@ export default css`
148
168
 
149
169
  .bd-header-watermark {
150
170
  position: absolute;
151
- bottom: var(--size-16);
152
- right: var(--size-16);
171
+ bottom: var(--spacing-16);
172
+ right: var(--spacing-16);
153
173
  z-index: 2;
154
174
  color: #ffffff;
155
- font-size: var(--heading-large);
175
+ font-size: var(--typography-fontSize-3xl);
156
176
  font-weight: 700;
157
177
  opacity: 1;
158
178
  -webkit-backdrop-filter: blur(2px);
@@ -160,23 +180,27 @@ export default css`
160
180
 
161
181
  .bd-header-watermark span {
162
182
  color: #fff;
163
- padding: var(--size-4) var(--size-8);
183
+ padding: var(--spacing-4) var(--spacing-8);
164
184
  backdrop-filter: blur(2px);
165
185
  -webkit-backdrop-filter: blur(2px);
166
- border-radius: var(--size-4);
167
- font-family: var(--font-family-sans);
168
- font-weight: var(--font-weight-sans-bold);
186
+ border-radius: var(--spacing-4);
187
+ font-family: var(--typography-fontFamily-sans);
188
+ font-weight: var(--typography-fontWeight-bold);
169
189
  }
170
190
  .bd-disclaimer-bottom {
171
191
  display: block;
172
- font-size: var(--body-medium);
173
- font-family: var(--font-family-sans);
174
- font-weight: var(--font-weight-sans-regular);
192
+ font-size: var(--typography-body-small-fontSize);
193
+ font-family: var(--typography-fontFamily-sans);
194
+ font-weight: var(--typography-body-large-fontWeight);
175
195
  color: #000000;
176
- margin-bottom: var(--size-16);
196
+ margin-bottom: var(--spacing-16);
197
+ }
198
+
199
+ bd-header a {
200
+ color: #000000 !important;
177
201
  }
178
202
  ::slotted([slot="right"]) {
179
- border-radius: var(--size-20);
203
+ border-radius: var(--spacing-20);
180
204
  overflow: hidden;
181
205
  max-width: 100%;
182
206
  height: auto;
@@ -245,4 +269,9 @@ export default css`
245
269
  max-height: 200px;
246
270
  }
247
271
  }
272
+
273
+ ::slotted([slot="disclaimer-bottom-link"]) {
274
+ color: black;
275
+ text-decoration: underline;
276
+ }
248
277
  `;
@@ -4,24 +4,24 @@ import headerCSS from "../header/header.css.js";
4
4
 
5
5
  class Header extends LitElement {
6
6
  static properties = {
7
- productName: { type: String, attribute: "product-name" },
8
- valueProp : { type: String, attribute: "value-prop" },
7
+ productName: { type: String },
8
+ valueProp : { type: String },
9
9
  description: { type: String },
10
- fullPrice : { type: String, attribute: "full-price" },
10
+ fullPrice : { type: String },
11
11
  discount : { type: String },
12
- finalPrice : { type: String, attribute: "final-price" }
12
+ finalPrice : { type: String }
13
13
  };
14
14
 
15
15
  constructor() {
16
16
  super();
17
- this.productName = "";
18
- this.valueProp = "";
19
- this.description = "";
20
- this.fullPrice = "";
21
- this.discount = "";
22
- this.finalPrice = "";
23
17
  }
24
18
 
19
+ attributeChangedCallback(name, oldVal, newVal) {
20
+ super.attributeChangedCallback(name, oldVal, newVal);
21
+ }
22
+
23
+
24
+
25
25
  render() {
26
26
  return html`
27
27
  <div class="bd-container">
@@ -59,22 +59,22 @@ class Header extends LitElement {
59
59
  </div>
60
60
 
61
61
  <small class="bd-disclaimer-top">
62
- Protection for 1 account & 5 PCs, Macs, tablets, or smartphones.
63
- Windows® | macOS® | Android™ | iOS®
62
+ <slot name="disclaimer-top">
63
+ Protection for 1 account & 5 PCs, Macs, tablets, or smartphones.
64
+ Windows® | macOS® | Android™ | iOS®
65
+ </slot>
64
66
  </small>
67
+
65
68
  <small class="bd-disclaimer-bottom">
66
- First year price. Sales tax included. See
67
- <a href="#" tabindex="0">Terms of Use</a> below.
69
+ <slot name="disclaimer-bottom-text-start"></slot>
70
+ <slot name="disclaimer-bottom-link"></slot>
71
+ <slot name="disclaimer-bottom-text-end"></slot>
68
72
  </small>
69
73
  </div>
70
74
 
71
75
  <div class="bd-header-right">
72
76
  <div class="bd-header-image-wrapper">
73
- <img
74
- class="bd-header-image"
75
- src="images/bd-header-us.jpg"
76
- alt="Security illustration"
77
- />
77
+ <slot name="header-image"></slot>
78
78
  <div class="bd-header-watermark"><span>Trusted. Always.</span></div>
79
79
  </div>
80
80
  </div>
@@ -1,15 +1,25 @@
1
1
  import { css } from "lit";
2
2
 
3
3
  export default css`
4
- :host {
5
- display: block;
6
- font-family: 'IBM Plex Sans', sans-serif;
7
- font-weight: 700;
8
- font-size: 32px;
9
- line-height: 1.3;
10
- text-align: center;
11
- color: #000;
12
- }
4
+ :host {
5
+ display: block;
6
+ font-family: var(--typography-fontFamily-sans);
7
+ font-weight: var(--typography-heading-h1-fontWeight);
8
+ font-size: var(--typography-fontSize-3xl);
9
+ line-height: 1.3;
10
+ text-align: center;
11
+ color: #000;
12
+ max-width: 720px;
13
+ margin: 0 auto;
14
+ padding-top: var(--spacing-64)
15
+ }
16
+ .sub-title {
17
+ color: #006DFF;
18
+ font-family: var(--typography-fontFamily-sans);
19
+ font-weight: var(--typography-body-large-fontWeight);
20
+ font-size: 20px;
21
+ margin: 0 0 var(--spacing-24) 0;
22
+ }
13
23
 
14
24
  .headline {
15
25
  margin: 0;
@@ -21,14 +31,14 @@ export default css`
21
31
  color: #000;
22
32
  z-index: -1;
23
33
  position: relative;
24
- margin-left: calc(var(--size-4) * -1);
25
- margin-right: var(--size-2);
34
+ margin-left: calc(var(--spacing-4) * -1);
35
+ margin-right: var(--spacing-2);
26
36
  }
27
37
 
28
38
  .highlight-text {
29
39
  position: relative;
30
40
  z-index: 1;
31
- padding-left: var(--size-4);
41
+ padding-left: var(--spacing-4);
32
42
  padding-right: 0px;
33
43
  box-decoration-break: clone;
34
44
  -webkit-box-decoration-break: clone;
@@ -46,7 +56,7 @@ margin-left: calc(var(--size-4) * -1);
46
56
 
47
57
  .highlight-deco {
48
58
  position: absolute;
49
- width: var(--size-8);
59
+ width: var(--spacing-8);
50
60
  height: 46px;
51
61
  display: flex;
52
62
  flex-direction: column;
@@ -68,7 +78,7 @@ margin-left: calc(var(--size-4) * -1);
68
78
  }
69
79
 
70
80
  .highlight-svg-rect {
71
- width: var(--size-2);
81
+ width: var(--spacing-2);
72
82
  height: 38px;
73
83
  fill: #006DFF;
74
84
  margin: 0;
@@ -77,8 +87,8 @@ margin-left: calc(var(--size-4) * -1);
77
87
 
78
88
  .highlight-svg-ellipse-top,
79
89
  .highlight-svg-ellipse-bottom {
80
- width: var(--size-8);
81
- height: var(--size-8);
90
+ width: var(--spacing-8);
91
+ height: var(--spacing-8);
82
92
  fill: #006DFF;
83
93
  display: block;
84
94
  }
@@ -89,22 +99,22 @@ margin-left: calc(var(--size-4) * -1);
89
99
  }
90
100
 
91
101
  .highlight {
92
- margin-right: var(--size-2);
102
+ margin-right: var(--spacing-2);
93
103
  }
94
104
 
95
105
  .highlight-deco {
96
- height: var(--size-32);
97
- width: var(--size-6);
106
+ height: var(--spacing-32);
107
+ width: var(--spacing-6);
98
108
  }
99
109
 
100
110
  .highlight-svg-rect {
101
- var(--size-24);
111
+ var(--spacing-24);
102
112
  }
103
113
 
104
114
  .highlight-svg-ellipse-top,
105
115
  .highlight-svg-ellipse-bottom {
106
- width: var(--size-6);
107
- height: var(--size-6);
116
+ width: var(--spacing-6);
117
+ height: var(--spacing-6);
108
118
  }
109
119
  .highlight-deco.right {
110
120
  bottom: 0;
@@ -4,7 +4,8 @@ import highlightCSS from "./highlight.css.js";
4
4
 
5
5
  class BdHighlightSection extends LitElement {
6
6
  static properties = {
7
- highlightText: { type: String, attribute: 'highlight-text' }
7
+ highlightText: { type: String, attribute: 'highlight-text' },
8
+ subTitle : { type: String, attribute: 'sub-title' }
8
9
  };
9
10
 
10
11
  static styles = [tokens, highlightCSS];
@@ -12,14 +13,25 @@ class BdHighlightSection extends LitElement {
12
13
  render() {
13
14
  const fullText = this.textContent || "";
14
15
  const highlightText = this.highlightText || "";
16
+ const subTitle = this.subTitle || "";
17
+
18
+ const subtitleTemplate = subTitle
19
+ ? html`
20
+ <h6 class="sub-title">${subTitle}</h6>
21
+ `
22
+ : null;
15
23
 
16
24
  if (!highlightText || !fullText.includes(highlightText)) {
17
- return html`<p class="headline"><slot></slot></p>`;
25
+ return html`
26
+ ${subtitleTemplate}
27
+ <p class="headline"><slot></slot></p>
28
+ `;
18
29
  }
19
30
 
20
31
  const [before, after] = fullText.split(highlightText);
21
32
 
22
33
  return html`
34
+ ${subtitleTemplate}
23
35
  <p class="headline">
24
36
  ${before}
25
37
  <span class="highlight">
@@ -33,7 +45,6 @@ class BdHighlightSection extends LitElement {
33
45
  <rect x="0" y="0" width="2" height="42" />
34
46
  </svg>
35
47
  </span>
36
- <!-- deco-right moved to its own anchor -->
37
48
  </span>
38
49
  ${after}
39
50
  </p>
@@ -58,4 +69,4 @@ class BdHighlightSection extends LitElement {
58
69
  }
59
70
  }
60
71
 
61
- customElements.define("bd-highlight-section", BdHighlightSection);
72
+ customElements.define("bd-highlight", BdHighlightSection);
@@ -2,8 +2,8 @@ import "./highlight.js";
2
2
  import { html } from "lit";
3
3
 
4
4
  export default {
5
- title: "Atoms/Highlight Section",
6
- component: "bd-highlight-section",
5
+ title: "Atoms/Highlight [v2]",
6
+ component: "highlight",
7
7
  tags: ["autodocs"],
8
8
  argTypes: {
9
9
  highlightText: { control: "text" },
@@ -12,9 +12,9 @@ export default {
12
12
  };
13
13
 
14
14
  const Template = ({ highlightText, defaultSlot }) => html`
15
- <bd-highlight-section highlight-text="${highlightText}">
15
+ <bd-highlight highlight-text="${highlightText}">
16
16
  ${defaultSlot}
17
- </bd-highlight-section>
17
+ </bd-highlight>
18
18
  `;
19
19
 
20
20
  export const Default = Template.bind({});
@@ -0,0 +1,183 @@
1
+ import { css } from "lit";
2
+
3
+ export default css`
4
+ :host {
5
+ display: block;
6
+ --background-card-grey: var(--color-neutral-25);
7
+ --border-card-grey: var(--color-neutral-50);
8
+ padding-top: var(--spacing-32);
9
+ padding-bottom: var(--spacing-32);
10
+ }
11
+
12
+ .bd-section-title-s {
13
+ font-family: var(--typography-fontFamily-sans);
14
+ font-weight: var(--typography-fontWeight-semibold);
15
+ font-size: 2em;
16
+ }
17
+
18
+ .bd-header-light-carousel-s {
19
+ margin-bottom: 50px;
20
+ margin-top: 50px;
21
+ }
22
+
23
+ .bd-light-carousel-s {
24
+ display: flex;
25
+ align-items: center;
26
+ justify-content: center;
27
+ position: relative;
28
+ width: 100%;
29
+ margin: var(--spacing-0) auto;
30
+ overflow: hidden;
31
+ flex-direction: column;
32
+ padding-left: var(--spacing-14);
33
+ padding-right: var(--spacing-14);
34
+ max-width: 1400px;
35
+ margin: 0 auto;
36
+ }
37
+
38
+ .bd-light-carousel-title-s {
39
+ font-size: 28px;
40
+ font-weight: 700;
41
+ text-align: center;
42
+ color: #e4002b;
43
+ margin-bottom: 32px;
44
+ text-transform: uppercase;
45
+ letter-spacing: 0.5px;
46
+ }
47
+
48
+ .bd-light-carousel-track-s {
49
+ scroll-behavior: smooth;
50
+ flex: 1;
51
+ position: relative;
52
+ padding: var(--spacing-0) var(--spacing-20);
53
+ overflow-x: auto;
54
+ overflow-y: hidden;
55
+ scrollbar-width: none;
56
+ -ms-overflow-style: none;
57
+ z-index: 1;
58
+ scroll-snap-type: x mandatory;
59
+ display: grid;
60
+ gap: 1.5rem;
61
+ grid-template-columns: repeat(4, 1fr);
62
+ }
63
+
64
+ .bd-light-carousel-track-s::-webkit-scrollbar {
65
+ display: none;
66
+ }
67
+
68
+ .bd-light-box-s {
69
+ flex: var(--spacing-0) var(--spacing-0) auto;
70
+ background: var(--background-card-grey);
71
+ border-radius: 28px;
72
+ padding: var(--spacing-32);
73
+ flex-direction: column;
74
+ align-items: start;
75
+ justify-content: center;
76
+ text-align: start;
77
+ transition: transform 0.2s ease-in-out;
78
+ min-height: 135px;
79
+ position: relative;
80
+ z-index: 2;
81
+ scroll-snap-align: start;
82
+ font-family: var(--typography-fontFamily-sans);
83
+ }
84
+
85
+ .bd-light-box-s h3 {
86
+ font-size: var(--heading-xsmall);
87
+ margin: var(--spacing-0) var(--spacing-8) var(--spacing-8) var(--spacing-0);
88
+ font-weight: 600;
89
+ font-family: var(--typography-fontFamily-sans);
90
+ text-align: center;
91
+ }
92
+
93
+ .bd-light-box-s p {
94
+ font-size: var(--spacing-16);
95
+ margin: var(--spacing-0) var(--spacing-0) 1em var(--spacing-0);
96
+ font-family: var(--typography-fontFamily-sans);
97
+ }
98
+
99
+ .bd-light-icon-s {
100
+ position: relative;
101
+ bottom: var(--spacing-6);
102
+ max-width: 100%;
103
+ height: var(--spacing-44);
104
+ width: var(--spacing-44);
105
+ }
106
+
107
+ .bd-light-box-header-s {
108
+ display: flex;
109
+ flex-direction: column;
110
+ align-items: flex-start;
111
+ gap: var(--spacing-8);
112
+ }
113
+
114
+ .bd-light-title-badge-wrapper-s {
115
+ display: flex;
116
+ align-items: center;
117
+ gap: var(--spacing-4, 4px);
118
+ }
119
+
120
+ @media (max-width: 1024px) {
121
+ .bd-light-box-s {
122
+ width: 380px;
123
+ padding: 1.5em;
124
+ }
125
+ .bd-light-box-s h3 {
126
+ font-size: 1.1em;
127
+ }
128
+ .bd-light-box-s p {
129
+ font-size: 0.95em;
130
+ }
131
+
132
+ .bd-light-carousel-track-s {
133
+ grid-template-columns: repeat(2, 1fr);
134
+ }
135
+ }
136
+
137
+ @media (max-width: 768px) {
138
+ .bd-light-carousel-track-s {
139
+ display: flex;
140
+ flex-direction: column;
141
+ gap: var(--spacing-20);
142
+ overflow-x: hidden;
143
+ overflow-y: hidden;
144
+ scroll-behavior: smooth;
145
+ }
146
+
147
+ .bd-light-box-s {
148
+ width: 100%;
149
+ max-width: 400px;
150
+ margin: var(--spacing-0) auto;
151
+ }
152
+
153
+ .bd-arrow-s {
154
+ display: none;
155
+ }
156
+ }
157
+
158
+ @media (max-width: 480px) {
159
+ .bd-light-box-s {
160
+ width: 100%;
161
+ padding: 1em;
162
+ min-height: 300px;
163
+ }
164
+
165
+ .bd-light-box-s h3 {
166
+ font-size: 1em;
167
+ }
168
+
169
+ .bd-light-box-s p {
170
+ font-size: 0.9em;
171
+ }
172
+
173
+ .bd-light-icon-s {
174
+ bottom: var(--spacing-10);
175
+ }
176
+ }
177
+
178
+ @media (max-width: 600px) {
179
+ .bd-light-carousel-track-s {
180
+ grid-template-columns: 1fr;
181
+ }
182
+ }
183
+ `;