@repobit/dex-system-design 0.19.2 → 0.21.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 (75) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/package.json +2 -3
  3. package/src/components/Button/button.stories.js +51 -51
  4. package/src/components/accordion/accordion-bg.css.js +168 -102
  5. package/src/components/accordion/accordion-bg.js +13 -5
  6. package/src/components/accordion/accordion-bg.stories.js +281 -0
  7. package/src/components/accordion/accordion-light.stories.js +241 -0
  8. package/src/components/anchor/anchor.stories.js +24 -22
  9. package/src/components/back/back.css.js +56 -0
  10. package/src/components/back/back.js +39 -0
  11. package/src/components/back/back.stories.js +184 -0
  12. package/src/components/badge/badge.css.js +44 -6
  13. package/src/components/badge/badge.js +40 -2
  14. package/src/components/badge/badge.stories.js +3 -10
  15. package/src/components/breadcrumb/breadcrumb.css.js +98 -0
  16. package/src/components/breadcrumb/breadcrumb.js +136 -0
  17. package/src/components/breadcrumb/breadcrumb.stories.js +109 -0
  18. package/src/components/cards/card.css.js +245 -0
  19. package/src/components/cards/card.js +80 -0
  20. package/src/components/cards/card.stories.js +512 -0
  21. package/src/components/carousel/carousel.css.js +51 -36
  22. package/src/components/carousel/carousel.js +0 -1
  23. package/src/components/carousel/carousel.stories.js +21 -17
  24. package/src/components/display/display.css.js +68 -0
  25. package/src/components/display/display.js +26 -0
  26. package/src/components/display/display.stories.js +339 -0
  27. package/src/components/divider/divider-horizontal.js +1 -1
  28. package/src/components/footer/footer-links-group.css.js +1 -1
  29. package/src/components/footer/footer-links-group.js +3 -3
  30. package/src/components/footer/footer-lp.stories.js +26 -61
  31. package/src/components/footer/footer-nav-menu.css.js +9 -10
  32. package/src/components/footer/footer.css.js +95 -8
  33. package/src/components/footer/footer.js +31 -65
  34. package/src/components/footer/footer.stories.js +165 -48
  35. package/src/components/header/header.js +11 -11
  36. package/src/components/header/header.stories.js +36 -4
  37. package/src/components/heading/heading.css.js +79 -0
  38. package/src/components/heading/heading.js +79 -0
  39. package/src/components/heading/heading.stories.js +260 -0
  40. package/src/components/highlight/highlight.stories.js +1 -1
  41. package/src/components/image/image.css.js +101 -0
  42. package/src/components/image/image.js +57 -0
  43. package/src/components/image/image.stories.js +245 -0
  44. package/src/components/light-carousel/light-carousel-simple.js +3 -2
  45. package/src/components/light-carousel/light-carousel.js +3 -7
  46. package/src/components/light-carousel/light-carousel.stories.js +15 -16
  47. package/src/components/link/link.css.js +107 -18
  48. package/src/components/link/link.js +16 -12
  49. package/src/components/link/link.stories.js +177 -0
  50. package/src/components/list/list-item/list-item.css.js +106 -0
  51. package/src/components/list/list-item/list-item.js +43 -0
  52. package/src/components/list/list-item/list-item.stories.js +79 -0
  53. package/src/components/list/list.css.js +175 -0
  54. package/src/components/list/list.js +44 -0
  55. package/src/components/modal/modal.js +6 -5
  56. package/src/components/paragraph/paragraph.css.js +41 -11
  57. package/src/components/paragraph/paragraph.js +7 -45
  58. package/src/components/paragraph/paragraph.stories.js +235 -0
  59. package/src/components/picture/picture.css.js +0 -0
  60. package/src/components/picture/picture.js +46 -0
  61. package/src/components/picture/picture.stories.js +275 -0
  62. package/src/components/pricing-cards/pricing-card-actions.js +1 -1
  63. package/src/components/pricing-cards/pricing-card-header.js +9 -7
  64. package/src/components/pricing-cards/pricing-card-pricing.js +11 -12
  65. package/src/components/pricing-cards/pricing-card.css.js +28 -3
  66. package/src/components/pricing-cards/pricing-card.js +38 -50
  67. package/src/components/tabs/tabs.js +44 -47
  68. package/src/components/termsOfUse/terms.js +77 -161
  69. package/src/components/termsOfUse/terms.stories.js +4 -3
  70. package/src/stories/Header.js +6 -6
  71. package/src/tokens/layout.css +3 -3
  72. package/src/tokens/tokens.css +0 -23
  73. package/src/tokens/tokens.stories.js +9 -8
  74. package/src/components/accordion/accordion-no-bg.css.js +0 -114
  75. package/src/components/accordion/accordion-no-bg.js +0 -80
@@ -1,7 +1,8 @@
1
1
  import { LitElement, html } from "lit";
2
2
  import { tokens } from "../../tokens/tokens.js";
3
+ import "../heading/heading.js";
4
+ import "../paragraph/paragraph.js";
3
5
  import pricingCardsCSS from "../pricing-cards/pricing-card.css.js";
4
-
5
6
  import "/src/components/Button/Button.js";
6
7
 
7
8
  class PricingContainer extends LitElement {
@@ -160,7 +161,7 @@ class PricingCard extends LitElement {
160
161
  ? html`<div class="highlight-banner">Best value</div>`
161
162
  : ""}
162
163
  <div class="card-header">
163
- <p class="card-title">${this.title}</p>
164
+ <bd-h as="h4" class="card-title">${this.title}</bd-h>
164
165
  <span class="badge">
165
166
  <img
166
167
  src="/assets/badge-icon-individual.png"
@@ -169,21 +170,21 @@ class PricingCard extends LitElement {
169
170
  />
170
171
  Individual
171
172
  </span>
172
- <p class="badge-subtitle">1 account & 5 devices</p>
173
+ <bd-p kind="small" class="badge-subtitle">1 account & 5 devices</bd-p>
173
174
  <hr class="hr-line" />
174
175
  </div>
175
176
  <div class="pricing">
176
177
  <div class="pricing-info">
177
- <p class="original-price">
178
+ <bd-p kind="small" class="original-price">
178
179
  ${this.formatCurrency(this.originalPrice)}
179
- </p>
180
- <p class="discount">${this.discount}</p>
180
+ </bd-p>
181
+ <bd-p kind="small" class="discount">${this.discount}</bd-p>
181
182
  </div>
182
- <p class="price">${this.formatCurrency(this.price)}</p>
183
- <p class="terms">
183
+ <bd-h as="h3" class="price">${this.formatCurrency(this.price)}</bd-h>
184
+ <bd-p kind="small" class="terms">
184
185
  First year price. Plus applicable sales tax. See
185
186
  <a href="#">terms of use</a> below.
186
- </p>
187
+ </bd-p>
187
188
  </div>
188
189
  <div class="actions">
189
190
  <bd-button label="Buy Now" kind="danger" size="md" fullWidth strong>
@@ -258,7 +259,7 @@ class PricingCardFamily extends LitElement {
258
259
  ? html`<div class="highlight-banner">Best value</div>`
259
260
  : ""}
260
261
  <div class="card-header">
261
- <p class="card-title">${this.title}</p>
262
+ <bd-h as="h4" class="card-title">${this.title}</bd-h>
262
263
  <span class="badge">
263
264
  <img
264
265
  src="/assets/bd-icon-family-white.png"
@@ -267,21 +268,21 @@ class PricingCardFamily extends LitElement {
267
268
  />
268
269
  <span class="family-text"> Family</span></span
269
270
  >
270
- <p class="badge-subtitle">5 accounts & 25 devices</p>
271
+ <bd-p kind="small" class="badge-subtitle">5 accounts & 25 devices</bd-p>
271
272
  <hr class="hr-line" />
272
273
  </div>
273
274
  <div class="pricing">
274
275
  <div class="pricing-info">
275
- <p class="original-price">
276
+ <bd-p kind="small" class="original-price">
276
277
  ${this.formatCurrency(this.originalPrice)}
277
- </p>
278
- <p class="discount">${this.discount}</p>
278
+ </bd-p>
279
+ <bd-p kind="small" class="discount">${this.discount}</bd-p>
279
280
  </div>
280
- <p class="price">${this.formatCurrency(this.price)}</p>
281
- <p class="terms">
281
+ <bd-h as="h3" class="price">${this.formatCurrency(this.price)}</bd-h>
282
+ <bd-p kind="small" class="terms">
282
283
  First year price. Plus applicable sales tax. See
283
284
  <a href="#">terms of use</a> below.
284
- </p>
285
+ </bd-p>
285
286
  </div>
286
287
  <div class="actions">
287
288
  <bd-button
@@ -360,25 +361,12 @@ class PricingSwitch extends LitElement {
360
361
  <span class="slider round"></span>
361
362
  <span class="label right">
362
363
  <span class="icon icon-user-sharp-regular">
363
- <img
364
- src="/assets/bd-icon-user.png"
365
- alt="icon"
366
- class="badge-icon-user"
367
- height="22"
368
- width="22"
369
- />
370
364
  </span>
371
365
  Individual
372
366
  </span>
373
367
  <span class="label left">
374
368
  <span class="icon icon-family-pants-sharp-regular">
375
- <img
376
- src="/assets/bd-icon-family.png"
377
- alt="icon"
378
- class="badge-icon-family"
379
- height="24"
380
- width="24"
381
- />
369
+
382
370
  </span>
383
371
  Family
384
372
  </span>
@@ -411,12 +399,12 @@ class PricingCardFeatures extends LitElement {
411
399
  {
412
400
  name: "Cryptomining Protection",
413
401
  description:
414
- "Bad actors can make money using your hardware and power connection without your consent. Protect yourself against leech software!"
402
+ "Bad actors can make money using your hardware and power connection without your consent. Protect yourself against \"leech\" software!"
415
403
  },
416
404
  {
417
405
  name: "Innovative Email Protection",
418
406
  description:
419
- "Scans all incoming email and marks them as safe or unsafe"
407
+ "Scans all incoming email and marks them as \"safe\" or \"unsafe\""
420
408
  },
421
409
  {
422
410
  name: "Scam Copilot",
@@ -430,7 +418,7 @@ class PricingCardFeatures extends LitElement {
430
418
  const features = this.features || [];
431
419
  return html`
432
420
  <div class="features">
433
- <h4>Device Security</h4>
421
+ <bd-h as="h4">Device Security</bd-h>
434
422
  <ul class="additional-info">
435
423
  ${features.map(
436
424
  (feature) => html` <li class="feature-item">
@@ -439,9 +427,9 @@ class PricingCardFeatures extends LitElement {
439
427
  alt="icon"
440
428
  class="badge-icon"
441
429
  />
442
- ${feature.name}
430
+ <bd-p kind="regular">${feature.name}</bd-p>
443
431
  ${feature.description
444
- ? html`<div class="tooltip">${feature.description}</div>`
432
+ ? html`<div class="tooltip"><bd-p kind="small">${feature.description}</bd-p></div>`
445
433
  : ""}
446
434
  </li>`
447
435
  )}
@@ -488,7 +476,7 @@ class PricingCardPrivacy extends LitElement {
488
476
  const privacy = this.privacy || [];
489
477
  return html`
490
478
  <div class="features">
491
- <h4>Privacy</h4>
479
+ <bd-h as="h4">Privacy</bd-h>
492
480
  <ul class="additional-info">
493
481
  ${privacy.map(
494
482
  (priv) => html` <li class="feature-item">
@@ -497,7 +485,7 @@ class PricingCardPrivacy extends LitElement {
497
485
  alt="icon"
498
486
  class="badge-icon"
499
487
  />
500
- ${priv.name.replace(" 1x", "")}
488
+ <bd-p kind="regular">${priv.name.replace(" 1x", "")}</bd-p>
501
489
  ${priv.badge
502
490
  ? html`<span class="badge-feature"
503
491
  >${priv.badge}
@@ -508,7 +496,7 @@ class PricingCardPrivacy extends LitElement {
508
496
  /></span>`
509
497
  : ""}
510
498
  ${priv.description
511
- ? html`<div class="tooltip">${priv.description}</div>`
499
+ ? html`<div class="tooltip"><bd-p kind="small">${priv.description}</bd-p></div>`
512
500
  : ""}
513
501
  </li>`
514
502
  )}
@@ -539,7 +527,7 @@ class PricingCardIdentify extends LitElement {
539
527
  const identity = this.identity || [];
540
528
  return html`
541
529
  <div class="features">
542
- <h4>Identity Protection</h4>
530
+ <bd-h as="h4">Identity Protection</bd-h>
543
531
  <ul class="additional-info">
544
532
  ${identity.map(
545
533
  (ident) => html` <li class="feature-item">
@@ -548,7 +536,7 @@ class PricingCardIdentify extends LitElement {
548
536
  alt="icon"
549
537
  class="badge-icon"
550
538
  />
551
- ${ident.name}
539
+ <bd-p kind="regular">${ident.name}</bd-p>
552
540
  ${ident.badge
553
541
  ? html`<span class="badge-feature"
554
542
  >${ident.badge}
@@ -559,7 +547,7 @@ class PricingCardIdentify extends LitElement {
559
547
  /></span>`
560
548
  : ""}
561
549
  ${ident.description
562
- ? html`<div class="tooltip">${ident.description}</div>`
550
+ ? html`<div class="tooltip"><bd-p kind="small">${ident.description}</bd-p></div>`
563
551
  : ""}
564
552
  </li>`
565
553
  )}
@@ -610,7 +598,7 @@ class PricingCardIdentityExtend extends LitElement {
610
598
  const identity = this.identity || [];
611
599
  return html`
612
600
  <div class="features">
613
- <h4>Identity Protection</h4>
601
+ <bd-h as="h4">Identity Protection</bd-h>
614
602
  <ul class="additional-info">
615
603
  ${identity.map(
616
604
  (ident) => html` <li class="feature-item">
@@ -619,7 +607,7 @@ class PricingCardIdentityExtend extends LitElement {
619
607
  alt="icon"
620
608
  class="badge-icon"
621
609
  />
622
- ${ident.name}
610
+ <bd-p kind="regular">${ident.name}</bd-p>
623
611
  ${ident.badge
624
612
  ? html`<span class="badge-feature"
625
613
  >${ident.badge}
@@ -630,7 +618,7 @@ class PricingCardIdentityExtend extends LitElement {
630
618
  /></span>`
631
619
  : ""}
632
620
  ${ident.description
633
- ? html`<div class="tooltip">${ident.description}</div>`
621
+ ? html`<div class="tooltip"><bd-p kind="small">${ident.description}</bd-p></div>`
634
622
  : ""}
635
623
  </li>`
636
624
  )}
@@ -675,7 +663,7 @@ class PricingCardParentalControl extends LitElement {
675
663
  {
676
664
  name: "Activity reports",
677
665
  description:
678
- "Unified reporting and easier management across all devices, providing you with a better overview of your childs online activities."
666
+ "Unified reporting and easier management across all devices, providing you with a better overview of your child's online activities."
679
667
  }
680
668
  ];
681
669
  }
@@ -684,7 +672,7 @@ class PricingCardParentalControl extends LitElement {
684
672
  const parentalControl = this.parentalControl || [];
685
673
  return html`
686
674
  <div class="features">
687
- <h4>Parental Control</h4>
675
+ <bd-h as="h4">Parental Control</bd-h>
688
676
  <ul class="additional-info">
689
677
  ${parentalControl.map(
690
678
  (parental) => html` <li class="feature-item">
@@ -693,7 +681,7 @@ class PricingCardParentalControl extends LitElement {
693
681
  alt="icon"
694
682
  class="badge-icon"
695
683
  />
696
- ${parental.name}
684
+ <bd-p kind="regular">${parental.name}</bd-p>
697
685
  ${parental.badge
698
686
  ? html`<span class="badge-feature"
699
687
  >${parental.badge}
@@ -704,7 +692,7 @@ class PricingCardParentalControl extends LitElement {
704
692
  /></span>`
705
693
  : ""}
706
694
  ${parental.description
707
- ? html`<div class="tooltip">${parental.description}</div>`
695
+ ? html`<div class="tooltip"><bd-p kind="small">${parental.description}</bd-p></div>`
708
696
  : ""}
709
697
  </li>`
710
698
  )}
@@ -740,4 +728,4 @@ customElements.define("pricing-card-features", PricingCardFeatures);
740
728
  customElements.define("pricing-card", PricingCard);
741
729
  customElements.define("pricing-card-family", PricingCardFamily);
742
730
  customElements.define("bd-pricing-container", PricingContainer);
743
- customElements.define("pricing-switch", PricingSwitch);
731
+ customElements.define("pricing-switch", PricingSwitch);
@@ -1,5 +1,10 @@
1
1
  import { LitElement, html } from "lit";
2
2
  import { tokens } from "../../tokens/tokens.js";
3
+ import "../heading/heading.js";
4
+ import "../highlight/highlight.js";
5
+ import "../list/list-item/list-item.js";
6
+ import "../list/list.js";
7
+ import "../paragraph/paragraph.js";
3
8
  import tabsCSS from "../tabs/tabs.css.js";
4
9
 
5
10
  class TabsComponent extends LitElement {
@@ -43,59 +48,51 @@ class TabsComponent extends LitElement {
43
48
 
44
49
  const content = [
45
50
  {
46
- heading : "Take back your familys digital privacy",
47
- description: () => html`<ul class="ul-privacy">
48
- <li>
49
- Enjoy complete data privacy with
50
- <strong>Bitdefender Premium VPN</strong>.
51
- </li>
52
- <li>
53
- Escape intrusive ads and trackers with our advanced
54
- <strong>Ad-Blocker</strong> and
55
- <strong>Anti-Tracker</strong> features.
56
- </li>
57
- <li>
58
- Shield yourself with robust
59
- <strong>Webcam and Microphone Protection</strong>.
60
- </li>
61
- </ul>`,
51
+ heading : "Take back your family's digital privacy",
52
+ description: () => html`
53
+ <bd-list type="unordered" spacing="md" variant="default" orientation="vertical">
54
+ <bd-li kind="bullet" size="md">
55
+ <bd-p kind="small">Enjoy complete data privacy with
56
+ <strong>Bitdefender Premium VPN</strong>.</bd-p>
57
+ </bd-li>
58
+ <bd-li kind="bullet" size="md">
59
+ <bd-p kind="small">Escape intrusive ads and trackers with our advanced
60
+ <strong>Ad-Blocker</strong> and
61
+ <strong>Anti-Tracker</strong> features.</bd-p>
62
+ </bd-li>
63
+ <bd-li kind="bullet" size="md">
64
+ <bd-p kind="small">Shield yourself with robust
65
+ <strong>Webcam and Microphone Protection</strong>.</bd-p>
66
+ </bd-li>
67
+ </bd-list>`,
62
68
  href: "#1"
63
69
  },
64
70
  {
65
71
  heading : "Safe data. Safe you.",
66
- description: () => html`<p>
67
- Get instant alerts for potential threats to your personal data and
68
- finances.
69
- </p>
70
- <p>Receive clear and concise advice on handling data breaches.</p>
71
- <p>
72
- Reduce the risk of online ID theft by scanning your digital
73
- footprint.
74
- </p>`,
72
+ description: () => html`
73
+ <bd-p kind="small">Get instant alerts for potential threats to your personal data and
74
+ finances.</bd-p>
75
+ <bd-p kind="small">Receive clear and concise advice on handling data breaches.</bd-p>
76
+ <bd-p kind="small">Reduce the risk of online ID theft by scanning your digital
77
+ footprint.</bd-p>`,
75
78
  href: "#2"
76
79
  },
77
80
  {
78
81
  heading : "We secure what you hold dear",
79
- description: () => html`<p>
80
- Enjoy seamless security across all devices.
81
- </p>
82
- <p>
83
- Protection from corrupt websites, risky downloads, and phishing
84
- attempts.
85
- </p>
86
- <p>Lightweight performance ensures smooth device operation.</p>`,
82
+ description: () => html`
83
+ <bd-p kind="small">Enjoy seamless security across all devices.</bd-p>
84
+ <bd-p kind="small">Protection from corrupt websites, risky downloads, and phishing
85
+ attempts.</bd-p>
86
+ <bd-p kind="small">Lightweight performance ensures smooth device operation.</bd-p>`,
87
87
  href: "#3"
88
88
  },
89
89
  {
90
90
  heading : "Financial Insurance",
91
- description: () => html`<p>
92
- Enjoy seamless security across all devices.
93
- </p>
94
- <p>
95
- Protection from corrupt websites, risky downloads, and phishing
96
- attempts.
97
- </p>
98
- <p>Lightweight performance ensures smooth device operation.</p>`,
91
+ description: () => html`
92
+ <bd-p kind="small">Enjoy seamless security across all devices.</bd-p>
93
+ <bd-p kind="small">Protection from corrupt websites, risky downloads, and phishing
94
+ attempts.</bd-p>
95
+ <bd-p kind="small">Lightweight performance ensures smooth device operation.</bd-p>`,
99
96
  href: "#4"
100
97
  }
101
98
  ];
@@ -108,7 +105,7 @@ class TabsComponent extends LitElement {
108
105
  Customized online protection for each family member - Smart, Private &
109
106
  Safe
110
107
  </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 members needs, offering the ideal mix of privacy, freedom, and safety.</p>
108
+ <bd-p kind="regular" 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.</bd-p>
112
109
  <div class="bd-tabs-container">
113
110
  ${tabs.map(
114
111
  (tab, index) => html`
@@ -123,7 +120,7 @@ class TabsComponent extends LitElement {
123
120
  id="tab-${index}"
124
121
  >
125
122
  <img src="${tab.icon}" alt="${tab.title} Icon" />
126
- <p><strong>${tab.title}</strong></p>
123
+ <bd-p kind="small"><strong>${tab.title}</strong></bd-p>
127
124
  </button>
128
125
  `
129
126
  )}
@@ -152,9 +149,9 @@ class TabsComponent extends LitElement {
152
149
  </picture>
153
150
  </div>
154
151
  <div class="bd-right">
155
- <h3 id="tab-content-heading-${this.selectedTab}">
152
+ <bd-h as="h3" id="tab-content-heading-${this.selectedTab}">
156
153
  ${content[this.selectedTab].heading}
157
- </h3>
154
+ </bd-h>
158
155
  <div
159
156
  id="tab-content-${this.selectedTab}"
160
157
  aria-labelledby="tab-content-heading-${this.selectedTab}"
@@ -167,7 +164,7 @@ class TabsComponent extends LitElement {
167
164
  aria-label="Find out more about ${content[this.selectedTab]
168
165
  .heading}"
169
166
  >
170
- Find out more
167
+ <bd-p kind="small">Find out more</bd-p>
171
168
  <span class="bd-arrow">
172
169
  <svg
173
170
  width="14"
@@ -193,4 +190,4 @@ class TabsComponent extends LitElement {
193
190
 
194
191
  TabsComponent.styles = [tokens, tabsCSS];
195
192
 
196
- customElements.define("bd-tabs-component", TabsComponent);
193
+ customElements.define("bd-tabs-component", TabsComponent);