@repobit/dex-system-design 0.20.0 → 0.21.1

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 (63) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/package.json +7 -2
  3. package/src/components/Button/button.stories.js +51 -51
  4. package/src/components/accordion/accordion-bg.css.js +141 -123
  5. package/src/components/accordion/accordion-bg.stories.js +102 -72
  6. package/src/components/accordion/accordion-light.stories.js +78 -53
  7. package/src/components/anchor/anchor.stories.js +24 -22
  8. package/src/components/back/back.css.js +56 -0
  9. package/src/components/back/back.js +39 -0
  10. package/src/components/back/back.stories.js +184 -0
  11. package/src/components/badge/badge.stories.js +3 -10
  12. package/src/components/breadcrumb/breadcrumb.css.js +98 -0
  13. package/src/components/breadcrumb/breadcrumb.js +136 -0
  14. package/src/components/breadcrumb/breadcrumb.stories.js +109 -0
  15. package/src/components/cards/card.js +2 -1
  16. package/src/components/cards/card.stories.js +49 -49
  17. package/src/components/carousel/carousel.css.js +8 -1
  18. package/src/components/carousel/carousel.js +0 -1
  19. package/src/components/carousel/carousel.stories.js +21 -17
  20. package/src/components/display/display.css.js +68 -0
  21. package/src/components/display/display.js +26 -0
  22. package/src/components/display/display.stories.js +339 -0
  23. package/src/components/divider/divider-horizontal.js +1 -1
  24. package/src/components/footer/footer-links-group.js +3 -3
  25. package/src/components/footer/footer-lp.stories.js +0 -1
  26. package/src/components/footer/footer.css.js +0 -6
  27. package/src/components/footer/footer.js +21 -41
  28. package/src/components/footer/footer.stories.js +0 -1
  29. package/src/components/header/header.js +11 -11
  30. package/src/components/header/header.stories.js +36 -4
  31. package/src/components/heading/heading.css.js +79 -0
  32. package/src/components/heading/heading.js +79 -0
  33. package/src/components/heading/heading.stories.js +260 -0
  34. package/src/components/highlight/highlight.stories.js +1 -1
  35. package/src/components/image/image.css.js +101 -0
  36. package/src/components/image/image.js +57 -0
  37. package/src/components/image/image.stories.js +245 -0
  38. package/src/components/light-carousel/light-carousel-simple.js +3 -2
  39. package/src/components/light-carousel/light-carousel.js +3 -7
  40. package/src/components/light-carousel/light-carousel.stories.js +12 -13
  41. package/src/components/link/link.css.js +107 -18
  42. package/src/components/link/link.js +16 -12
  43. package/src/components/link/link.stories.js +177 -0
  44. package/src/components/list/list-item/list-item.css.js +106 -0
  45. package/src/components/list/list-item/list-item.js +43 -0
  46. package/src/components/list/list-item/list-item.stories.js +79 -0
  47. package/src/components/list/list.css.js +175 -0
  48. package/src/components/list/list.js +44 -0
  49. package/src/components/modal/modal.js +6 -5
  50. package/src/components/paragraph/paragraph.css.js +41 -11
  51. package/src/components/paragraph/paragraph.js +7 -45
  52. package/src/components/paragraph/paragraph.stories.js +235 -0
  53. package/src/components/picture/picture.css.js +0 -0
  54. package/src/components/picture/picture.js +46 -0
  55. package/src/components/picture/picture.stories.js +275 -0
  56. package/src/components/pricing-cards/pricing-card-header.js +9 -7
  57. package/src/components/pricing-cards/pricing-card-pricing.js +11 -12
  58. package/src/components/pricing-cards/pricing-card.js +37 -36
  59. package/src/components/tabs/tabs.js +44 -47
  60. package/src/components/termsOfUse/terms.js +77 -161
  61. package/src/components/termsOfUse/terms.stories.js +4 -3
  62. package/src/stories/Header.js +6 -6
  63. package/src/tokens/tokens.stories.js +9 -8
@@ -1,5 +1,7 @@
1
1
  import { LitElement, html } from "lit";
2
2
  import { tokens } from "../../tokens/tokens.js";
3
+ import '../list/list-item/list-item.js';
4
+ import '../list/list.js';
3
5
  import termsCSS from "../termsOfUse/terms.css.js";
4
6
 
5
7
  class TermsSection extends LitElement {
@@ -12,66 +14,61 @@ class TermsSection extends LitElement {
12
14
  this.faqs = [
13
15
  {
14
16
  question: "Auto renewal terms",
15
- answer : `
16
- <p>
17
- <ul>
18
- <li>Your subscription automatically begins at the purchase date;</li>
19
- <li>By subscribing, you are purchasing a recurring subscription which will automatically renew;</li>
20
- <li>The Bitdefender Auto Renewal Plan is designed to save you time, effort, and minimize your vulnerability risk by extending your subscription automatically before you run out of protection.</li>
21
- </ul>
22
- </p> `,
23
- open: false
17
+ items : [
18
+ "Your subscription automatically begins at the purchase date;",
19
+ "By subscribing, you are purchasing a recurring subscription which will automatically renew;",
20
+ "The Bitdefender Auto Renewal Plan is designed to save you time, effort, and minimize your vulnerability risk by extending your subscription automatically before you run out of protection."
21
+ ]
24
22
  },
25
23
  {
26
- question:
27
- "Here is what the Bitdefender Auto Renewal Plan means for you",
28
- answer: `
29
- <p>
30
- <ul>
31
- <li>Continuous protection so that you never have to worry about your subscription running out before you renew manually;</li>
32
- <li>Free upgrades whenever a new version of Bitdefender comes out;</li>
33
- <li>Peace of mind that your devices are always protected;</li>
34
- <li>Save time while we are taking care of the automatic renewal process;</li>
35
- <li>Opt out at any time so that you are always in control of your renewal options;</li>
36
- <li>24/7 security all-subscription long without interruption;</li>
37
- <li>The price offered is valid for the first year of subscription. After that, your subscription will be billed at the applicable renewal price;</li>
38
- <li>If a discount is presented, it describes the difference between the first term and renewal term subscription prices (e.g., first year price vs. each year thereafter). The prices are subject to change, but Bitdefender will send a prior notification by email, before the automatic renewal takes place. You will receive an email notification before you will be billed, along with information regarding pricing and the extension of your subscription duration.</li>
39
- </ul>
40
- </p> `,
41
- open: false
24
+ question: "Here is what the Bitdefender Auto Renewal Plan means for you",
25
+ items : [
26
+ "Continuous protection so that you never have to worry about your subscription running out before you renew manually;",
27
+ "Free upgrades whenever a new version of Bitdefender comes out;",
28
+ "Peace of mind that your devices are always protected;",
29
+ "Save time while we are taking care of the automatic renewal process;",
30
+ "Opt out at any time so that you are always in control of your renewal options;",
31
+ "24/7 security all-subscription long without interruption;",
32
+ "The price offered is valid for the first year of subscription. After that, your subscription will be billed at the applicable renewal price;",
33
+ "If a discount is presented, it describes the difference between the first term and renewal term subscription prices (e.g., first year price vs. each year thereafter). The prices are subject to change, but Bitdefender will send a prior notification by email, before the automatic renewal takes place. You will receive an email notification before you will be billed, along with information regarding pricing and the extension of your subscription duration."
34
+ ]
42
35
  },
43
36
  {
44
37
  question: "Affirmative consent",
45
- answer : `
46
- <p>
47
- <ul>
48
- <li>Your subscription automatically begins at the purchase date;</li>
49
- <li>By subscribing, you are purchasing a recurring subscription which will automatically renew.</li>
50
- </ul>
51
- </p> `,
52
- open: false
38
+ items : [
39
+ "Your subscription automatically begins at the purchase date;",
40
+ "By subscribing, you are purchasing a recurring subscription which will automatically renew."
41
+ ]
53
42
  },
54
43
  {
55
44
  question: "How to cancel + email address cancelation support",
56
- answer : `
57
- <p>
58
- <ul>
59
- <li>You can cancel your automatically subscription from Bitdefender Central or by contacting Customer Support at: <a href="mailto:cancel@bitdefender.com" title="cancel@bitdefender.com">cancel@bitdefender.com</a></li>
60
- <li>You can refund by contacting <a href="mailto:refunds@bitdefender.com" title="refunds@bitdefender.com">refunds@bitdefender.com</a> within 30 days of your initial purchase or of the automatic renewal date.</li>
61
- </ul>
62
- </p> `,
63
- open: false
45
+ items : [
46
+ html`You can cancel your automatically subscription from Bitdefender Central or by contacting Customer Support at: <a href="mailto:cancel@bitdefender.com" title="cancel@bitdefender.com">cancel@bitdefender.com</a>`,
47
+ html`You can refund by contacting <a href="mailto:refunds@bitdefender.com" title="refunds@bitdefender.com">refunds@bitdefender.com</a> within 30 days of your initial purchase or of the automatic renewal date.`
48
+ ]
64
49
  }
65
50
  ];
66
51
  }
67
52
 
68
- toggleItem(index) {
69
- this.faqs = this.faqs.map((faq, i) => {
70
- if (i === index) {
71
- return { ...faq, open: !faq.open };
72
- }
73
- return faq;
74
- });
53
+ _renderFAQItem(faq) {
54
+ return html`
55
+ <div>
56
+ <div>
57
+ <bd-p kind="small" class="bd-terms-text-p"><strong>${faq.question}</strong></bd-p>
58
+ ${faq.items
59
+ ? html`
60
+ <bd-p kind="small">
61
+ <bd-list type="unordered" spacing="md" variant="default" orientation="vertical">
62
+ ${faq.items.map(item => html`
63
+ <bd-li kind="bullet" size="md">${item}</bd-li>
64
+ `)}
65
+ </bd-list>
66
+ </bd-p>
67
+ `
68
+ : ''}
69
+ </div>
70
+ </div>
71
+ `;
75
72
  }
76
73
 
77
74
  render() {
@@ -93,124 +90,44 @@ class TermsSection extends LitElement {
93
90
  <h5 id="bd-terms-of-use">Terms of use</h5>
94
91
  </div>
95
92
  </div>
93
+
94
+ <!-- Render FAQ items -->
95
+ ${this.faqs.map((faq, index) => this._renderFAQItem(faq, index))}
96
+
97
+ <!-- Additional content -->
96
98
  <div>
97
- <div>
98
- <p class="bd-terms-text-p"><strong>Auto renewal terms</strong></p>
99
- <p class="bd-terms-text-p">
100
- Your subscription automatically begins at the purchase date;
101
- </p>
102
- <p class="bd-terms-text-p">
103
- By subscribing, you are purchasing a recurring subscription
104
- which will automatically renew;
105
- </p>
106
- <p class="bd-terms-text-p">
107
- The Bitdefender Auto Renewal Plan is designed to save you
108
- time, effort, and minimize your vulnerability risk by
109
- extending your subscription automatically before you run out
110
- of protection.
111
- </p>
112
- </div>
113
- </div>
114
- <div>
115
- <div>
116
- <p class="bd-terms-text-p">
117
- <strong
118
- >Here is what the Bitdefender Auto Renewal Plan means for
119
- you</strong
120
- >
121
- </p>
122
- <p class="bd-terms-text-p">
123
- Continuous protection so that you never have to worry about
124
- your subscription running out before you renew manually;
125
- </p>
126
- <p class="bd-terms-text-p">
127
- Free upgrades whenever a new version of Bitdefender comes out;
128
- </p>
129
- <p class="bd-terms-text-p">Peace of mind that your devices are always protected;</p>
130
- <p class="bd-terms-text-p">
131
- Save time while we are taking care of the automatic renewal
132
- process;
133
- </p>
134
- <p class="bd-terms-text-p">
135
- Opt out at any time so that you are always in control of your
136
- renewal options;
137
- </p>
138
- <p class="bd-terms-text-p">24/7 security all-subscription long without interruption;</p>
139
- <p class="bd-terms-text-p">
140
- The prices are subject to change, but Bitdefender will send a
141
- prior notification by email, before the automatic renewal
142
- takes place. You will receive an email notification before you
143
- will be billed, along with information regarding pricing and
144
- the extension of your subscription duration.
145
- </p>
146
- </div>
147
- </div>
148
- <div>
149
- <div>
150
- <p class="bd-terms-text-p"><strong>Affirmative consent</strong></p>
151
- <p class="bd-terms-text-p">
152
- Your subscription automatically begins at the purchase
153
- date;<br />
154
- By subscribing, you are purchasing a recurring subscription
155
- which will automatically renew.
156
- </p>
157
- </div>
158
- </div>
159
- <div>
160
- <div>
161
- <p class="bd-terms-text-p">
162
- <strong
163
- >How to cancel + email address cancelation support</strong
164
- >
165
- </p>
166
- <p class="bd-terms-text-p">
167
- You can cancel your automatically subscription from
168
- Bitdefender Central or by contacting Customer Support at:
169
- <a class="bd-terms-text-a"
170
- href="mailto:cancel@bitdefender.com"
171
- title="cancel@bitdefender.com"
172
- >cancel@bitdefender.com</a
173
- ><br />
174
- You can refund by contacting
99
+ <div class="bd-terms-text-p">
100
+ <bd-p kind="small">
101
+ Your subscription may include product, service and/or protection
102
+ updates and features that may be added, modified or removed
103
+ subject to
175
104
  <a class="bd-terms-text-a"
176
- href="mailto:refunds@bitdefender.com"
177
- title="refunds@bitdefender.com"
178
- >refunds@bitdefender.com</a
105
+ href="https://www.bitdefender.com/legal/?adobe_mc=MCMID%3D63411747395182077784244429321314993670%7CMCORGID%3D0E920C0F53DA9E9B0A490D45%2540AdobeOrg%7CTS%3D1739263766"
106
+ title="Bitdefender Subscription Agreement and Terms and Conditions for Home Users"
107
+ >Bitdefender Subscription Agreement and Terms and Conditions
108
+ for Home Users</a
179
109
  >
180
- within 30 days of your initial purchase or of the automatic
181
- renewal date.
182
- </p>
183
- </div>
184
- </div>
185
- <div>
186
- <div class="bd-terms-text-p">
187
- Your subscription may include product, service and/or protection
188
- updates and features that may be added, modified or removed
189
- subject to
190
- <a class="bd-terms-text-a"
191
- href="https://www.bitdefender.com/legal/?adobe_mc=MCMID%3D63411747395182077784244429321314993670%7CMCORGID%3D0E920C0F53DA9E9B0A490D45%2540AdobeOrg%7CTS%3D1739263766"
192
- title="Bitdefender Subscription Agreement and Terms and Conditions for Home Users"
193
- >Bitdefender Subscription Agreement and Terms and Conditions
194
- for Home Users</a
195
- >
196
- and
197
- <a class="bd-terms-text-a"
198
- href="https://www.bitdefender.com/site/view/legal-privacy-policy-for-home-users-solutions.html?adobe_mc=MCMID%3D63411747395182077784244429321314993670%7CMCORGID%3D0E920C0F53DA9E9B0A490D45%2540AdobeOrg%7CTS%3D1739263766"
199
- title="Privacy Notice"
200
- >Privacy Notice</a
201
- >.
110
+ and
111
+ <a class="bd-terms-text-a"
112
+ href="https://www.bitdefender.com/site/view/legal-privacy-policy-for-home-users-solutions.html?adobe_mc=MCMID%3D63411747395182077784244429321314993670%7CMCORGID%3D0E920C0F53DA9E9B0A490D45%2540AdobeOrg%7CTS%3D1739263766"
113
+ title="Privacy Notice"
114
+ >Privacy Notice</a
115
+ >.
116
+ </bd-p>
202
117
  </div>
203
118
  </div>
204
119
  <div>
205
120
  <div class="bd-terms-text-p">
206
- By using the subscription, You acknowledge and agree that your
207
- use of the product which integrates with YouTube API Services is
208
- subject to
209
- <a class="bd-terms-text-a"
210
- href="https://www.youtube.com/static?template=terms"
211
- title="YouTube’s Terms of Service"
212
- >YouTubes Terms of Service</a
213
- >.
121
+ <bd-p kind="small">
122
+ By using the subscription, You acknowledge and agree that your
123
+ use of the product which integrates with YouTube API Services is
124
+ subject to
125
+ <a class="bd-terms-text-a"
126
+ href="https://www.youtube.com/static?template=terms"
127
+ title="YouTube's Terms of Service"
128
+ >YouTube's Terms of Service</a
129
+ >.
130
+ </bd-p>
214
131
  </div>
215
132
  </div>
216
133
  </div>
@@ -218,8 +135,7 @@ class TermsSection extends LitElement {
218
135
  </div>
219
136
  `;
220
137
  }
221
-
222
138
  }
223
139
 
224
140
  TermsSection.styles = [tokens, termsCSS];
225
- customElements.define("bd-terms-section", TermsSection);
141
+ customElements.define("bd-terms-section", TermsSection);
@@ -1,10 +1,11 @@
1
1
  import { html } from 'lit';
2
- import './terms.js';
2
+
3
+ import './terms.js';
3
4
 
4
5
  export default {
5
- title: 'Components/TermsSection',
6
+ title : 'Components/TermsSection',
6
7
  component: 'bd-terms-section',
7
- tags: ['autodocs'],
8
+ tags : ['autodocs']
8
9
  };
9
10
 
10
11
  const Template = () => html`
@@ -29,15 +29,15 @@ export const Header = ({ user, onLogin, onLogout, onCreateAccount }) => html`
29
29
  ${user
30
30
  ? Button({ size: 'small', onClick: onLogout, label: 'Log out' })
31
31
  : html`${Button({
32
- size: 'small',
33
- onClick: onLogin,
34
- label: 'Log in',
35
- })}
32
+ size : 'small',
33
+ onClick: onLogin,
34
+ label : 'Log in'
35
+ })}
36
36
  ${Button({
37
37
  primary: true,
38
- size: 'small',
38
+ size : 'small',
39
39
  onClick: onCreateAccount,
40
- label: 'Sign up',
40
+ label : 'Sign up'
41
41
  })}`}
42
42
  </div>
43
43
  </div>
@@ -1,15 +1,16 @@
1
1
  import { html } from 'lit';
2
+ import '../components/heading/heading.js';
2
3
 
3
4
  export default {
4
- title: 'Design Tokens/Colors',
5
+ title: 'Design Tokens/Colors'
5
6
  };
6
7
 
7
8
  const colorGroups = {
8
- blue: ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950'],
9
- red: ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950'],
10
- green: ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950'],
11
- yellow: ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950'],
12
- neutral: ['0', '25', '50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950', '1000'],
9
+ blue : ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950'],
10
+ red : ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950'],
11
+ green : ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950'],
12
+ yellow : ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950'],
13
+ neutral: ['0', '25', '50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950', '1000']
13
14
  };
14
15
 
15
16
  export const Colors = () => html`
@@ -52,7 +53,7 @@ export const Colors = () => html`
52
53
 
53
54
  ${Object.entries(colorGroups).map(([group, shades]) => html`
54
55
  <section class="color-group">
55
- <h3 class="color-group-title">${group}</h3>
56
+ <bd-h as="h4" class="color-group-title">${group}</bd-h>
56
57
  ${shades.map(shade => {
57
58
  const varName = `--color-${group}-${shade}`;
58
59
  return html`
@@ -64,4 +65,4 @@ export const Colors = () => html`
64
65
  })}
65
66
  </section>
66
67
  `)}
67
- `;
68
+ `;