@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,4 +1,7 @@
1
1
  import { html } from "lit";
2
+ import "../heading/heading.js";
3
+ import "../paragraph/paragraph.js";
4
+
2
5
  import "./carousel.js";
3
6
 
4
7
  export default {
@@ -69,7 +72,7 @@ export default {
69
72
  const renderParagraphs = (text) =>
70
73
  text
71
74
  ? text.split("\n\n").map(
72
- (paragraph) => html`<p>${paragraph}</p>`
75
+ (paragraph) => html`<bd-p>${paragraph}</bd-p>`
73
76
  )
74
77
  : null;
75
78
 
@@ -81,7 +84,7 @@ const Template = (args) => html`
81
84
  modalText="${args.item1ModalText}"
82
85
  icon="${args.item1Icon}"
83
86
  >
84
- <h3>${args.item1Title}</h3>
87
+ <bd-h as="h4" padding="10px 0">${args.item1Title}</bd-h>
85
88
  ${renderParagraphs(args.item1Content)}
86
89
  </bd-carousel-item>
87
90
 
@@ -91,7 +94,7 @@ const Template = (args) => html`
91
94
  modalText="${args.item2ModalText}"
92
95
  icon="${args.item2Icon}"
93
96
  >
94
- <h3>${args.item2Title}</h3>
97
+ <bd-h as="h4" padding="10px 0">${args.item2Title}</bd-h>
95
98
  ${renderParagraphs(args.item2Content)}
96
99
  </bd-carousel-item>
97
100
 
@@ -101,7 +104,7 @@ const Template = (args) => html`
101
104
  modalText="${args.item3ModalText}"
102
105
  icon="${args.item3Icon}"
103
106
  >
104
- <h3>${args.item3Title}</h3>
107
+ <bd-h as="h4" padding="10px 0">${args.item3Title}</bd-h>
105
108
  ${renderParagraphs(args.item3Content)}
106
109
  </bd-carousel-item>
107
110
 
@@ -111,7 +114,7 @@ const Template = (args) => html`
111
114
  modalText="${args.item4ModalText}"
112
115
  icon="${args.item4Icon}"
113
116
  >
114
- <h3>${args.item4Title}</h3>
117
+ <bd-h as="h4" padding="10px 0">${args.item4Title}</bd-h>
115
118
  ${renderParagraphs(args.item4Content)}
116
119
  </bd-carousel-item>
117
120
 
@@ -121,7 +124,7 @@ const Template = (args) => html`
121
124
  modalText="${args.item5ModalText}"
122
125
  icon="${args.item5Icon}"
123
126
  >
124
- <h3>${args.item5Title}</h3>
127
+ <bd-h as="h4" padding="10px 0">${args.item5Title}</bd-h>
125
128
  ${renderParagraphs(args.item5Content)}
126
129
  </bd-carousel-item>
127
130
 
@@ -131,7 +134,7 @@ const Template = (args) => html`
131
134
  modalText="${args.item6ModalText}"
132
135
  icon="${args.item6Icon}"
133
136
  >
134
- <h3>${args.item6Title}</h3>
137
+ <bd-h as="h4" padding="10px 0">${args.item6Title}</bd-h>
135
138
  ${renderParagraphs(args.item6Content)}
136
139
  </bd-carousel-item>
137
140
 
@@ -141,7 +144,7 @@ const Template = (args) => html`
141
144
  modalText="${args.item7ModalText}"
142
145
  icon="${args.item7Icon}"
143
146
  >
144
- <h3>${args.item7Title}</h3>
147
+ <bd-h as="h4" padding="10px 0">${args.item7Title}</bd-h>
145
148
  ${renderParagraphs(args.item7Content)}
146
149
  </bd-carousel-item>
147
150
 
@@ -151,7 +154,7 @@ const Template = (args) => html`
151
154
  modalText="${args.item8ModalText}"
152
155
  icon="${args.item8Icon}"
153
156
  >
154
- <h3>${args.item8Title}</h3>
157
+ <bd-h as="h4" padding="10px 0">${args.item8Title}</bd-h>
155
158
  ${renderParagraphs(args.item8Content)}
156
159
  </bd-carousel-item>
157
160
  </bd-carousel-section>
@@ -163,11 +166,11 @@ Default.args = {
163
166
 
164
167
  item1Title: "Scam Copilot Bot",
165
168
  item1SubTitle:
166
- "Specialized AI chatbot that helps you identify suspicious online interactions so you dont become a victim",
169
+ "Specialized AI chatbot that helps you identify suspicious online interactions so you don't become a victim",
167
170
  item1ModalText:
168
- "Specialized AI chatbot that helps you identify suspicious online interactions so you dont become a victim",
171
+ "Specialized AI chatbot that helps you identify suspicious online interactions so you don't become a victim",
169
172
  item1Icon : "/assets/light-carousel-img1.png",
170
- item1Content: `Specialized AI chatbot that helps you identify suspicious online interactions so you dont become a victim.\n\nSpecialized AI chatbot that helps you identify suspicious online interactions so you dont become a victim.\n\nTest Scam Copilot Bot`,
173
+ item1Content: `Specialized AI chatbot that helps you identify suspicious online interactions so you don't become a victim.\n\nSpecialized AI chatbot that helps you identify suspicious online interactions so you don't become a victim.\n\nTest Scam Copilot Bot`,
171
174
 
172
175
  item2Title : "Scam Wave Alerts",
173
176
  item2SubTitle : "Proactively informs you about scam outbreaks in your region",
@@ -218,12 +221,13 @@ Default.args = {
218
221
  "A platform where users can report scams and share experiences to help protect others",
219
222
  item7Icon : "/assets/light-carousel-img1.png",
220
223
  item7Content: "A platform where users can report scams and share experiences to help protect others.",
221
- item8Title : "Fraud Prevention Workshops",
224
+
225
+ item8Title: "Fraud Prevention Workshops",
222
226
  item8SubTitle:
223
- "Interactive workshops that educate users on identifying and avoiding scams",
227
+ "Interactive workshops that educate users on identifying and avoiding scams",
224
228
  item8ModalText:
225
- "Interactive workshops that educate users on identifying and avoiding scams",
229
+ "Interactive workshops that educate users on identifying and avoiding scams",
226
230
  item8Icon: "/assets/light-carousel-img1.png",
227
231
  item8Content:
228
- "Interactive workshops that educate users on identifying and avoiding scams."
229
- };
232
+ "Interactive workshops that educate users on identifying and avoiding scams."
233
+ };
@@ -0,0 +1,68 @@
1
+ import { css } from "lit";
2
+
3
+ export default css`
4
+ @layer bd-components {
5
+ .bd-display {
6
+ margin: 0;
7
+ padding: 0;
8
+ font-family: var(--typography-display-lg-fontFamily);
9
+ color: var(--color-neutral-900);
10
+ }
11
+
12
+ /* 3xl - Largest display */
13
+ .bd-display['3xl'],
14
+ .bd-display.k3xl {
15
+ font-size: var(--typography-display-3xl-fontSize);
16
+ font-weight: var(--typography-display-3xl-fontWeight);
17
+ line-height: var(--typography-display-3xl-lineHeight);
18
+ letter-spacing: var(--typography-display-3xl-letterSpacing);
19
+ font-family: var(--typography-display-3xl-fontFamily);
20
+ }
21
+
22
+ /* 2xl */
23
+ .bd-display['2xl'],
24
+ .bd-display.k2xl {
25
+ font-size: var(--typography-display-2xl-fontSize);
26
+ font-weight: var(--typography-display-2xl-fontWeight);
27
+ line-height: var(--typography-display-2xl-lineHeight);
28
+ letter-spacing: var(--typography-display-2xl-letterSpacing);
29
+ font-family: var(--typography-display-2xl-fontFamily);
30
+ }
31
+
32
+ /* xl */
33
+ .bd-display.xl {
34
+ font-size: var(--typography-display-xl-fontSize);
35
+ font-weight: var(--typography-display-xl-fontWeight);
36
+ line-height: var(--typography-display-xl-lineHeight);
37
+ letter-spacing: var(--typography-display-xl-letterSpacing);
38
+ font-family: var(--typography-display-xl-fontFamily);
39
+ }
40
+
41
+ /* lg */
42
+ .bd-display.lg {
43
+ font-size: var(--typography-display-lg-fontSize);
44
+ font-weight: var(--typography-display-lg-fontWeight);
45
+ line-height: var(--typography-display-lg-lineHeight);
46
+ letter-spacing: var(--typography-display-lg-letterSpacing);
47
+ font-family: var(--typography-display-lg-fontFamily);
48
+ }
49
+
50
+ /* md */
51
+ .bd-display.md {
52
+ font-size: var(--typography-display-md-fontSize);
53
+ font-weight: var(--typography-display-md-fontWeight);
54
+ line-height: var(--typography-display-md-lineHeight);
55
+ letter-spacing: var(--typography-display-md-letterSpacing);
56
+ font-family: var(--typography-display-md-fontFamily);
57
+ }
58
+
59
+ /* sm - Smallest display */
60
+ .bd-display.sm {
61
+ font-size: var(--typography-display-sm-fontSize);
62
+ font-weight: var(--typography-display-sm-fontWeight);
63
+ line-height: var(--typography-display-sm-lineHeight);
64
+ letter-spacing: var(--typography-display-sm-letterSpacing);
65
+ font-family: var(--typography-display-sm-fontFamily);
66
+ }
67
+ }
68
+ `;
@@ -0,0 +1,26 @@
1
+ import { LitElement, html } from "lit";
2
+ import { tokens } from "../../tokens/tokens.js";
3
+ import displayCSS from "./display.css.js";
4
+
5
+ export class BdDisplay extends LitElement {
6
+ static properties = {
7
+ kind: { type: String, reflect: true } // "3xl", "2xl", "xl", "lg", "md", "sm"
8
+ };
9
+
10
+ constructor() {
11
+ super();
12
+ this.kind = "lg"; // Default medium display
13
+ }
14
+
15
+ render() {
16
+ return html`
17
+ <div class="bd-display ${this.kind}">
18
+ <slot></slot>
19
+ </div>
20
+ `;
21
+ }
22
+
23
+ static styles = [tokens, displayCSS];
24
+ }
25
+
26
+ customElements.define("bd-display", BdDisplay);
@@ -0,0 +1,339 @@
1
+ import { html } from 'lit';
2
+ import '../heading/heading.js';
3
+ import '../paragraph/paragraph.js';
4
+ import './display.js';
5
+
6
+ export default {
7
+ title : 'Atoms/Display',
8
+ component: 'bd-display',
9
+ argTypes : {
10
+ kind: {
11
+ control : { type: 'select' },
12
+ options : ['sm', 'md', 'lg', 'xl', '2xl', '3xl'],
13
+ description: 'Display size variant'
14
+ },
15
+ content: {
16
+ control : 'text',
17
+ description: 'Display text content'
18
+ }
19
+ },
20
+ parameters: {
21
+ docs: {
22
+ description: {
23
+ component: 'Large display typography for hero sections, landing pages, and prominent headlines.'
24
+ }
25
+ }
26
+ }
27
+ };
28
+
29
+ const Template = ({ kind, content }) => html`
30
+ <bd-display kind="${kind}">${content}</bd-display>
31
+ `;
32
+
33
+ export const AllDisplaySizes = () => html`
34
+ <div style="display: flex; flex-direction: column; gap: 3rem; max-width: 1200px; margin: 0 auto;">
35
+ <div style="border-bottom: 2px solid #e2e8f0; padding-bottom: 2rem;">
36
+ <bd-display kind="3xl">Display 3XL - Largest Hero Text</bd-display>
37
+ <bd-p kind="small" style="margin-top: 1rem;">
38
+ Font size: var(--typography-display-3xl-fontSize)<br>
39
+ Perfect for main hero sections on landing pages
40
+ </bd-p>
41
+ </div>
42
+
43
+ <div style="border-bottom: 2px solid #e2e8f0; padding-bottom: 2rem;">
44
+ <bd-display kind="2xl">Display 2XL - Major Headlines</bd-display>
45
+ <bd-p kind="small" style="margin-top: 1rem;">
46
+ Font size: var(--typography-display-2xl-fontSize)<br>
47
+ Ideal for primary section titles and important announcements
48
+ </bd-p>
49
+ </div>
50
+
51
+ <div style="border-bottom: 2px solid #e2e8f0; padding-bottom: 2rem;">
52
+ <bd-display kind="xl">Display XL - Prominent Headers</bd-display>
53
+ <bd-p kind="small" style="margin-top: 1rem;">
54
+ Font size: var(--typography-display-xl-fontSize)<br>
55
+ Great for feature highlights and key value propositions
56
+ </bd-p>
57
+ </div>
58
+
59
+ <div style="border-bottom: 2px solid #e2e8f0; padding-bottom: 2rem;">
60
+ <bd-display kind="lg">Display LG - Standard Display</bd-display>
61
+ <bd-p kind="small" style="margin-top: 1rem;">
62
+ Font size: var(--typography-display-lg-fontSize)<br>
63
+ Balanced display size for most prominent text needs
64
+ </bd-p>
65
+ </div>
66
+
67
+ <div style="border-bottom: 2px solid #e2e8f0; padding-bottom: 2rem;">
68
+ <bd-display kind="md">Display MD - Compact Display</bd-display>
69
+ <bd-p kind="small" style="margin-top: 1rem;">
70
+ Font size: var(--typography-display-md-fontSize)<br>
71
+ Smaller display for sections with less space
72
+ </bd-p>
73
+ </div>
74
+
75
+ <div>
76
+ <bd-display kind="sm">Display SM - Minimal Display</bd-display>
77
+ <bd-p kind="small" style="margin-top: 1rem;">
78
+ Font size: var(--typography-display-sm-fontSize)<br>
79
+ Smallest display size, still larger than regular headings
80
+ </bd-p>
81
+ </div>
82
+ </div>
83
+ `;
84
+ AllDisplaySizes.parameters = {
85
+ docs: {
86
+ description: {
87
+ story: 'All display size variants from 3XL (largest) to SM (smallest) for comparison.'
88
+ }
89
+ }
90
+ };
91
+
92
+ export const Display3XL = Template.bind({});
93
+ Display3XL.args = {
94
+ kind : '3xl',
95
+ content: 'Transform Your Digital Security'
96
+ };
97
+ Display3XL.parameters = {
98
+ docs: {
99
+ description: {
100
+ story: 'Largest display size for main hero sections and primary landing page headlines.'
101
+ }
102
+ }
103
+ };
104
+
105
+ export const Display2XL = Template.bind({});
106
+ Display2XL.args = {
107
+ kind : '2xl',
108
+ content: 'Enterprise-Grade Protection'
109
+ };
110
+ Display2XL.parameters = {
111
+ docs: {
112
+ description: {
113
+ story: 'Extra large display for major section titles and important feature announcements.'
114
+ }
115
+ }
116
+ };
117
+
118
+ export const DisplayXL = Template.bind({});
119
+ DisplayXL.args = {
120
+ kind : 'xl',
121
+ content: 'Advanced Threat Intelligence'
122
+ };
123
+ DisplayXL.parameters = {
124
+ docs: {
125
+ description: {
126
+ story: 'Large display size for prominent headers and key value propositions.'
127
+ }
128
+ }
129
+ };
130
+
131
+ export const DisplayLG = Template.bind({});
132
+ DisplayLG.args = {
133
+ kind : 'lg',
134
+ content: 'Real-Time Malware Detection'
135
+ };
136
+ DisplayLG.parameters = {
137
+ docs: {
138
+ description: {
139
+ story: 'Standard display size for balanced prominence and readability.'
140
+ }
141
+ }
142
+ };
143
+
144
+ export const DisplayMD = Template.bind({});
145
+ DisplayMD.args = {
146
+ kind : 'md',
147
+ content: 'Multi-Platform Security'
148
+ };
149
+ DisplayMD.parameters = {
150
+ docs: {
151
+ description: {
152
+ story: 'Medium display size for sections with limited space but still needing impact.'
153
+ }
154
+ }
155
+ };
156
+
157
+ export const DisplaySM = Template.bind({});
158
+ DisplaySM.args = {
159
+ kind : 'sm',
160
+ content: 'Privacy First Approach'
161
+ };
162
+ DisplaySM.parameters = {
163
+ docs: {
164
+ description: {
165
+ story: 'Smallest display size, ideal for compact hero sections or prominent card titles.'
166
+ }
167
+ }
168
+ };
169
+
170
+
171
+ export const ComparisonWithHeadings = () => html`
172
+ <div style="max-width: 800px; margin: 0 auto;">
173
+ <bd-display kind="xl" style="margin-bottom: 3rem;">Display XL vs Headings</bd-display>
174
+
175
+ <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start;">
176
+ <div>
177
+ <bd-h as="h3" style="margin-bottom: 1rem;">Display Typography</bd-h>
178
+ <bd-display kind="sm" style="margin-bottom: 1rem;">Display SM Text</bd-display>
179
+ <bd-display kind="md" style="margin-bottom: 1rem;">Display MD Text</bd-display>
180
+ <bd-display kind="lg" style="margin-bottom: 1rem;">Display LG Text</bd-display>
181
+ <bd-display kind="xl">Display XL Text</bd-display>
182
+ </div>
183
+
184
+ <div>
185
+ <bd-h as="h3" style="margin-bottom: 1rem;">Heading Typography</bd-h>
186
+ <bd-h as="h6" style="margin-bottom: 1rem;">Heading H6 Text</bd-h>
187
+ <bd-h as="h5" style="margin-bottom: 1rem;">Heading H5 Text</bd-h>
188
+ <bd-h as="h4" style="margin-bottom: 1rem;">Heading H4 Text</bd-h>
189
+ <bd-h as="h3">Heading H3 Text</bd-h>
190
+ </div>
191
+ </div>
192
+
193
+ <bd-p kind="regular" style="margin-top: 2rem;">
194
+ <strong>Usage guidelines:</strong> Display typography is for prominent, attention-grabbing text
195
+ while headings are for semantic document structure and section titles.
196
+ </bd-p>
197
+ </div>
198
+ `;
199
+ ComparisonWithHeadings.parameters = {
200
+ docs: {
201
+ description: {
202
+ story: 'Comparison between display typography and heading typography to demonstrate their different use cases and visual hierarchy.'
203
+ }
204
+ }
205
+ };
206
+
207
+ export const LandingPageExample = () => html`
208
+ <div style="max-width: 1400px; margin: 0 auto;">
209
+ <!-- Hero Section -->
210
+ <section style="text-align: center; padding: 4rem 2rem; background: #f8fafc;">
211
+ <bd-display kind="2xl" style="margin-bottom: 1rem;">
212
+ Complete Digital Protection
213
+ </bd-display>
214
+ <bd-display kind="lg" style="margin-bottom: 2rem; color: #3b82f6;">
215
+ For Home & Business
216
+ </bd-display>
217
+ <bd-p kind="lead" style="max-width: 600px; margin: 0 auto;">
218
+ Enterprise-grade security solutions tailored for modern threats and evolving digital landscapes.
219
+ </bd-p>
220
+ </section>
221
+
222
+ <!-- Features Section -->
223
+ <section style="padding: 4rem 2rem;">
224
+ <bd-display kind="xl" style="text-align: center; margin-bottom: 3rem;">
225
+ Why Choose Our Solution?
226
+ </bd-display>
227
+
228
+ <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem;">
229
+ <div style="text-align: center;">
230
+ <bd-display kind="lg" style="color: #3b82f6; margin-bottom: 1rem;">99.9%</bd-display>
231
+ <bd-h as="h4" style="margin-bottom: 1rem;">Threat Detection Rate</bd-h>
232
+ <bd-p kind="regular">Industry-leading accuracy in identifying and neutralizing cyber threats.</bd-p>
233
+ </div>
234
+
235
+ <div style="text-align: center;">
236
+ <bd-display kind="lg" style="color: #3b82f6; margin-bottom: 1rem;">24/7</bd-display>
237
+ <bd-h as="h4" style="margin-bottom: 1rem;">Real-Time Monitoring</bd-h>
238
+ <bd-p kind="regular">Continuous protection with instant response to emerging threats.</bd-p>
239
+ </div>
240
+
241
+ <div style="text-align: center;">
242
+ <bd-display kind="lg" style="color: #3b82f6; margin-bottom: 1rem;">50M+</bd-display>
243
+ <bd-h as="h4" style="margin-bottom: 1rem;">Protected Users</bd-h>
244
+ <bd-p kind="regular">Trusted by millions worldwide for their digital security needs.</bd-p>
245
+ </div>
246
+ </div>
247
+ </section>
248
+ </div>
249
+ `;
250
+ LandingPageExample.parameters = {
251
+ docs: {
252
+ description: {
253
+ story: 'Complete landing page example showing display typography in context with hero sections and feature highlights.'
254
+ }
255
+ }
256
+ };
257
+
258
+ export const ResponsiveDisplay = () => html`
259
+ <div style="max-width: 100%; padding: 2rem;">
260
+ <bd-h as="h2" style="margin-bottom: 2rem;">Responsive Display Typography</bd-h>
261
+
262
+ <div style="background: #f1f5f9; padding: 2rem; border-radius: 12px;">
263
+ <bd-display kind="xl" style="margin-bottom: 1rem;">
264
+ Adaptive Text Sizing
265
+ </bd-display>
266
+ <bd-p kind="regular">
267
+ Display components automatically adjust based on viewport size and CSS variables.
268
+ They maintain optimal readability across all devices from mobile to desktop.
269
+ </bd-p>
270
+
271
+ <div style="display: flex; flex-wrap: wrap; gap: 2rem; margin-top: 2rem;">
272
+ <div style="flex: 1; min-width: 200px;">
273
+ <bd-h as="h4">Mobile</bd-h>
274
+ <bd-display kind="sm" style="color: #3b82f6;">Compact & Clear</bd-display>
275
+ </div>
276
+
277
+ <div style="flex: 1; min-width: 200px;">
278
+ <bd-h as="h4">Tablet</bd-h>
279
+ <bd-display kind="md" style="color: #3b82f6;">Balanced Impact</bd-display>
280
+ </div>
281
+
282
+ <div style="flex: 1; min-width: 200px;">
283
+ <bd-h as="h4">Desktop</bd-h>
284
+ <bd-display kind="lg" style="color: #3b82f6;">Maximum Presence</bd-display>
285
+ </div>
286
+ </div>
287
+ </div>
288
+ </div>
289
+ `;
290
+ ResponsiveDisplay.parameters = {
291
+ docs: {
292
+ description: {
293
+ story: 'Demonstrates how display typography adapts to different screen sizes while maintaining visual impact.'
294
+ }
295
+ }
296
+ };
297
+
298
+ export const InteractiveSizeDemo = () => {
299
+ const sizes = [
300
+ { kind: '3xl', label: '3XL', description: 'Largest - Hero sections' },
301
+ { kind: '2xl', label: '2XL', description: 'Extra large - Major headlines' },
302
+ { kind: 'xl', label: 'XL', description: 'Large - Prominent headers' },
303
+ { kind: 'lg', label: 'LG', description: 'Standard - Balanced display' },
304
+ { kind: 'md', label: 'MD', description: 'Medium - Compact display' },
305
+ { kind: 'sm', label: 'SM', description: 'Small - Minimal display' }
306
+ ];
307
+
308
+ return html`
309
+ <div style="max-width: 800px; margin: 0 auto;">
310
+ <bd-h as="h2" style="margin-bottom: 2rem;">Interactive Display Size Demo</bd-h>
311
+ <bd-p kind="regular" style="margin-bottom: 3rem;">
312
+ Explore different display sizes and their typical use cases:
313
+ </bd-p>
314
+
315
+ ${sizes.map(size => html`
316
+ <div style="margin: 3rem 0; padding: 2rem; background: white; border-radius: 12px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);">
317
+ <bd-display kind="${size.kind}" style="margin-bottom: 1rem;">
318
+ ${size.label} Display Size
319
+ </bd-display>
320
+ <bd-p kind="regular" style="margin-bottom: 1rem;">
321
+ This is the <strong>${size.kind}</strong> display size - ${size.description}.
322
+ </bd-p>
323
+ <bd-p kind="small" style="color: #64748b;">
324
+ CSS Variables:
325
+ <code>--typography-display-${size.kind}-fontSize</code>,
326
+ <code>--typography-display-${size.kind}-fontWeight</code>
327
+ </bd-p>
328
+ </div>
329
+ `)}
330
+ </div>
331
+ `;
332
+ };
333
+ InteractiveSizeDemo.parameters = {
334
+ docs: {
335
+ description: {
336
+ story: 'Interactive demonstration of all display sizes with their CSS variables and usage recommendations.'
337
+ }
338
+ }
339
+ };
@@ -13,7 +13,7 @@ export class BdDividerHorizontal extends LitElement {
13
13
 
14
14
  constructor() {
15
15
  super();
16
- this.width = "200px";
16
+ this.width = "";
17
17
  this.color = "var(--color-neutral-400)";
18
18
  this.opacity = "0.25";
19
19
  }
@@ -5,7 +5,7 @@ export default css`
5
5
  display: flex;
6
6
  flex-direction: column;
7
7
  gap: var(--spacing-12);
8
- padding-right: var(--size-64);
8
+ padding-right: var(--spacing-64);
9
9
  }
10
10
 
11
11
  h4 {
@@ -1,5 +1,6 @@
1
1
  import { LitElement, html } from 'lit';
2
2
  import { tokens } from '../../tokens/tokens.js';
3
+ import '../heading/heading.js';
3
4
  import footerCSS from './footer-links-group.css.js';
4
5
 
5
6
  export class BdFooterLinksGroup extends LitElement {
@@ -12,14 +13,13 @@ export class BdFooterLinksGroup extends LitElement {
12
13
  this.title = '';
13
14
  }
14
15
 
15
-
16
16
  render() {
17
17
  return html`
18
- <h4 class="group-title">${this.title ? this.title : html`&nbsp;`}</h4>
18
+ ${this.title ? html`<bd-h as="h6" fontWeight="700" color="#ffffff" class="group-title">${this.title}</bd-h>` : html`&nbsp;`}
19
19
  <slot></slot>
20
20
  `;
21
21
  }
22
22
  }
23
23
  BdFooterLinksGroup.styles = [tokens, footerCSS];
24
24
 
25
- customElements.define('bd-footer-links-group', BdFooterLinksGroup);
25
+ customElements.define('bd-footer-links-group', BdFooterLinksGroup);