@repobit/dex-system-design 0.22.12 → 0.23.2
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.
- package/CHANGELOG.md +40 -0
- package/package.json +4 -3
- package/src/components/Button/button.stories.js +292 -120
- package/src/components/accordion/accordion-bg.css.js +7 -2
- package/src/components/accordion/accordion-bg.stories.js +268 -449
- package/src/components/accordion/accordion.stories.js +259 -265
- package/src/components/anchor/anchor.stories.js +160 -159
- package/src/components/awards/awards-icon.js +44 -0
- package/src/components/awards/awards.css.js +328 -0
- package/src/components/awards/awards.js +224 -0
- package/src/components/awards/awards.stories.js +447 -0
- package/src/components/back/back.stories.js +100 -375
- package/src/components/badge/badge.stories.js +241 -129
- package/src/components/breadcrumb/breadcrumb.stories.js +218 -219
- package/src/components/cards/card.stories.js +174 -622
- package/src/components/carousel/carousel.stories.js +196 -225
- package/src/components/checkbox/checkbox.stories.js +136 -51
- package/src/components/compare/compare.css.js +237 -0
- package/src/components/compare/compare.js +253 -0
- package/src/components/compare/compare.stories.js +372 -0
- package/src/components/display/display.stories.js +91 -297
- package/src/components/divider/divider.stories.js +160 -342
- package/src/components/footer/footer.stories.js +177 -402
- package/src/components/header/header.stories.js +130 -338
- package/src/components/heading/heading.js +8 -5
- package/src/components/heading/heading.stories.js +162 -471
- package/src/components/highlight/highlight.stories.js +153 -38
- package/src/components/image/image.stories.js +135 -563
- package/src/components/input/custom-form.stories.js +761 -224
- package/src/components/link/link.js +29 -12
- package/src/components/link/link.stories.js +130 -468
- package/src/components/modal/modal.stories.js +174 -28
- package/src/components/paragraph/paragraph.css.js +10 -1
- package/src/components/paragraph/paragraph.stories.js +85 -410
- package/src/components/picture/picture.stories.js +147 -561
- package/src/components/radio/radio.stories.js +230 -81
- package/src/components/tabs/tabs.stories.js +126 -10
- package/src/components/termsOfUse/terms.stories.js +223 -8
- package/src/tokens/tokens.js +1 -0
|
@@ -1,333 +1,127 @@
|
|
|
1
1
|
import { html } from 'lit';
|
|
2
|
-
import '../heading/heading.js';
|
|
3
|
-
import '../paragraph/paragraph.js';
|
|
4
2
|
import './display.js';
|
|
5
3
|
|
|
6
4
|
export default {
|
|
7
|
-
title
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
title : 'Components/Display',
|
|
6
|
+
tags : ['autodocs'],
|
|
7
|
+
parameters: {
|
|
8
|
+
docs: {
|
|
9
|
+
description: {
|
|
10
|
+
component: `
|
|
11
|
+
**BdDisplay** is a Lit component for large typographic display text with configurable size, color, and alignment.
|
|
12
|
+
|
|
13
|
+
### Usage
|
|
14
|
+
\`\`\`html
|
|
15
|
+
<bd-display kind="xl" color="#026DFF" align="center">
|
|
16
|
+
World-class protection
|
|
17
|
+
</bd-display>
|
|
18
|
+
\`\`\`
|
|
19
|
+
|
|
20
|
+
### Kind Values
|
|
21
|
+
| Kind | Description |
|
|
22
|
+
|---|---|
|
|
23
|
+
| \`sm\` | Small display |
|
|
24
|
+
| \`md\` | Medium display (default) |
|
|
25
|
+
| \`lg\` | Large display |
|
|
26
|
+
| \`xl\` | Extra large |
|
|
27
|
+
| \`xxl\` | 2x extra large |
|
|
28
|
+
| \`xxxl\` | 3x extra large |
|
|
29
|
+
`
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
argTypes: {
|
|
11
34
|
kind: {
|
|
12
35
|
control : { type: 'select' },
|
|
13
36
|
options : ['sm', 'md', 'lg', 'xl', 'xxl', 'xxxl'],
|
|
14
|
-
description: 'Display size variant',
|
|
15
|
-
table : {
|
|
16
|
-
type : { summary: 'string' },
|
|
17
|
-
defaultValue: { summary: 'lg' }
|
|
18
|
-
}
|
|
37
|
+
description: 'Display size variant — maps to a CSS class',
|
|
38
|
+
table : { type: { summary: "'sm'|'md'|'lg'|'xl'|'xxl'|'xxxl'" }, defaultValue: { summary: 'lg' }, category: 'Appearance' }
|
|
19
39
|
},
|
|
20
40
|
color: {
|
|
21
41
|
control : 'color',
|
|
22
|
-
description: '
|
|
23
|
-
table : {
|
|
24
|
-
type : { summary: 'string' },
|
|
25
|
-
defaultValue: { summary: 'inherit' }
|
|
26
|
-
}
|
|
42
|
+
description: 'Inline text color applied via style attribute',
|
|
43
|
+
table : { type: { summary: 'string' }, defaultValue: { summary: '' }, category: 'Appearance' }
|
|
27
44
|
},
|
|
28
45
|
align: {
|
|
29
46
|
control : { type: 'select' },
|
|
30
47
|
options : ['left', 'center', 'right'],
|
|
31
|
-
description: 'Text alignment',
|
|
32
|
-
table : {
|
|
33
|
-
type : { summary: 'string' },
|
|
34
|
-
defaultValue: { summary: 'left' }
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
|
-
parameters: {
|
|
39
|
-
docs: {
|
|
40
|
-
description: {
|
|
41
|
-
component: 'Large display typography for hero sections, landing pages, and prominent headlines. Display text is designed for maximum visual impact while maintaining readability.'
|
|
42
|
-
}
|
|
48
|
+
description: 'Text alignment applied via inline style',
|
|
49
|
+
table : { type: { summary: "'left'|'center'|'right'" }, defaultValue: { summary: 'left' }, category: 'Appearance' }
|
|
43
50
|
}
|
|
44
51
|
}
|
|
45
52
|
};
|
|
46
53
|
|
|
47
|
-
const
|
|
48
|
-
<bd-display
|
|
49
|
-
|
|
50
|
-
color="${color}"
|
|
51
|
-
align="${align}"
|
|
52
|
-
>
|
|
53
|
-
${content}
|
|
54
|
+
const render = (args) => html`
|
|
55
|
+
<bd-display kind="${args.kind}" color="${args.color}" align="${args.align}">
|
|
56
|
+
World-class security software
|
|
54
57
|
</bd-display>
|
|
55
58
|
`;
|
|
56
59
|
|
|
57
|
-
|
|
60
|
+
const defaultArgs = { kind: 'lg', color: '', align: 'left' };
|
|
58
61
|
|
|
59
|
-
|
|
60
|
-
Default.args = {
|
|
61
|
-
kind : 'lg',
|
|
62
|
-
color : '',
|
|
63
|
-
align : 'left',
|
|
64
|
-
content: 'Display Heading'
|
|
65
|
-
};
|
|
66
|
-
Default.parameters = {
|
|
67
|
-
docs: {
|
|
68
|
-
description: {
|
|
69
|
-
story: 'Default display component with medium-large size. Perfect for most prominent headings.'
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
};
|
|
62
|
+
// ─── Stories ───────────────────────────────────────────────────────────────
|
|
73
63
|
|
|
74
|
-
export const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
<div style="border-bottom: 2px solid #e2e8f0; padding-bottom: 2rem;">
|
|
79
|
-
<bd-display kind="xxxl">Display XXXL - Largest Hero Text</bd-display>
|
|
80
|
-
<bd-p kind="small" style="margin-top: 1rem; color: #64748b;">
|
|
81
|
-
<strong>Use case:</strong> Main hero sections on landing pages<br>
|
|
82
|
-
<strong>CSS Variable:</strong> --typography-display-xxxl-fontSize<br>
|
|
83
|
-
<strong>Recommended:</strong> Single prominent headline per page
|
|
84
|
-
</bd-p>
|
|
85
|
-
</div>
|
|
86
|
-
|
|
87
|
-
<div style="border-bottom: 2px solid #e2e8f0; padding-bottom: 2rem;">
|
|
88
|
-
<bd-display kind="xxl">Display XXL - Major Headlines</bd-display>
|
|
89
|
-
<bd-p kind="small" style="margin-top: 1rem; color: #64748b;">
|
|
90
|
-
<strong>Use case:</strong> Primary section titles and important announcements<br>
|
|
91
|
-
<strong>CSS Variable:</strong> --typography-display-xxl-fontSize<br>
|
|
92
|
-
<strong>Recommended:</strong> Key feature sections
|
|
93
|
-
</bd-p>
|
|
94
|
-
</div>
|
|
95
|
-
|
|
96
|
-
<div style="border-bottom: 2px solid #e2e8f0; padding-bottom: 2rem;">
|
|
97
|
-
<bd-display kind="xl">Display XL - Prominent Headers</bd-display>
|
|
98
|
-
<bd-p kind="small" style="margin-top: 1rem; color: #64748b;">
|
|
99
|
-
<strong>Use case:</strong> Feature highlights and value propositions<br>
|
|
100
|
-
<strong>CSS Variable:</strong> --typography-display-xl-fontSize<br>
|
|
101
|
-
<strong>Recommended:</strong> Secondary important sections
|
|
102
|
-
</bd-p>
|
|
103
|
-
</div>
|
|
104
|
-
|
|
105
|
-
<div style="border-bottom: 2px solid #e2e8f0; padding-bottom: 2rem;">
|
|
106
|
-
<bd-display kind="lg">Display LG - Standard Display</bd-display>
|
|
107
|
-
<bd-p kind="small" style="margin-top: 1rem; color: #64748b;">
|
|
108
|
-
<strong>Use case:</strong> Balanced display for most prominent text<br>
|
|
109
|
-
<strong>CSS Variable:</strong> --typography-display-lg-fontSize<br>
|
|
110
|
-
<strong>Recommended:</strong> Default choice for display text
|
|
111
|
-
</bd-p>
|
|
112
|
-
</div>
|
|
113
|
-
|
|
114
|
-
<div style="border-bottom: 2px solid #e2e8f0; padding-bottom: 2rem;">
|
|
115
|
-
<bd-display kind="md">Display MD - Compact Display</bd-display>
|
|
116
|
-
<bd-p kind="small" style="margin-top: 1rem; color: #64748b;">
|
|
117
|
-
<strong>Use case:</strong> Sections with limited space but needing impact<br>
|
|
118
|
-
<strong>CSS Variable:</strong> --typography-display-md-fontSize<br>
|
|
119
|
-
<strong>Recommended:</strong> Cards and compact layouts
|
|
120
|
-
</bd-p>
|
|
121
|
-
</div>
|
|
122
|
-
|
|
123
|
-
<div>
|
|
124
|
-
<bd-display kind="sm">Display SM - Minimal Display</bd-display>
|
|
125
|
-
<bd-p kind="small" style="margin-top: 1rem; color: #64748b;">
|
|
126
|
-
<strong>Use case:</strong> Smallest display for subtle prominence<br>
|
|
127
|
-
<strong>CSS Variable:</strong> --typography-display-sm-fontSize<br>
|
|
128
|
-
<strong>Recommended:</strong> When you need hierarchy but space is limited
|
|
129
|
-
</bd-p>
|
|
130
|
-
</div>
|
|
131
|
-
</div>
|
|
132
|
-
`;
|
|
133
|
-
AllDisplaySizes.parameters = {
|
|
134
|
-
docs: {
|
|
135
|
-
description: {
|
|
136
|
-
story: 'Complete overview of all display size variants with usage recommendations and CSS variable references.'
|
|
137
|
-
}
|
|
138
|
-
}
|
|
64
|
+
export const Default = {
|
|
65
|
+
name : 'Default (lg, left)',
|
|
66
|
+
render : () => html`<bd-display kind="lg">World-class security software</bd-display>`,
|
|
67
|
+
parameters: { docs: { description: { story: 'Default display text with `kind="lg"` and left alignment.' } } }
|
|
139
68
|
};
|
|
140
69
|
|
|
141
|
-
export const
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
<bd-display kind="
|
|
147
|
-
|
|
148
|
-
</bd-display>
|
|
149
|
-
<bd-
|
|
150
|
-
|
|
151
|
-
</bd-p>
|
|
152
|
-
</div>
|
|
153
|
-
|
|
154
|
-
<div style="border: 2px solid #e2e8f0; padding: 2rem; border-radius: 8px;">
|
|
155
|
-
<bd-display kind="xl" align="center">
|
|
156
|
-
Center Aligned Display
|
|
157
|
-
</bd-display>
|
|
158
|
-
<bd-p kind="small" style="color: #64748b; margin-top: 1rem; text-align: center;">
|
|
159
|
-
Ideal for hero sections, testimonials, and feature highlights.
|
|
160
|
-
</bd-p>
|
|
161
|
-
</div>
|
|
162
|
-
|
|
163
|
-
<div style="border: 2px solid #e2e8f0; padding: 2rem; border-radius: 8px;">
|
|
164
|
-
<bd-display kind="xl" align="right">
|
|
165
|
-
Right Aligned Display
|
|
166
|
-
</bd-display>
|
|
167
|
-
<bd-p kind="small" style="color: #64748b; margin-top: 1rem; text-align: right;">
|
|
168
|
-
Useful for asymmetric layouts and creative designs.
|
|
169
|
-
</bd-p>
|
|
70
|
+
export const AllKinds = {
|
|
71
|
+
name : 'All Kinds',
|
|
72
|
+
render: () => html`
|
|
73
|
+
<div style="display:flex; flex-direction:column; gap:16px;">
|
|
74
|
+
<bd-display kind="sm">Small Display</bd-display>
|
|
75
|
+
<bd-display kind="md">Medium Display</bd-display>
|
|
76
|
+
<bd-display kind="lg">Large Display</bd-display>
|
|
77
|
+
<bd-display kind="xl">Extra Large Display</bd-display>
|
|
78
|
+
<bd-display kind="xxl">2x Extra Large</bd-display>
|
|
79
|
+
<bd-display kind="xxxl">3x Extra Large</bd-display>
|
|
170
80
|
</div>
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
TextAlignment.parameters = {
|
|
174
|
-
docs: {
|
|
175
|
-
description: {
|
|
176
|
-
story: 'Demonstrates different text alignment options for display components and their recommended use cases.'
|
|
177
|
-
}
|
|
178
|
-
}
|
|
81
|
+
`,
|
|
82
|
+
parameters: { docs: { description: { story: 'All six `kind` values stacked vertically for scale comparison.' } } }
|
|
179
83
|
};
|
|
180
84
|
|
|
181
|
-
export const
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
<bd-display kind="
|
|
187
|
-
|
|
188
|
-
</bd-display>
|
|
189
|
-
<bd-p kind="small" style="color: #cbd5e1; margin-top: 1rem;">
|
|
190
|
-
Perfect for dark theme sections and hero areas.
|
|
191
|
-
</bd-p>
|
|
192
|
-
</div>
|
|
193
|
-
|
|
194
|
-
<div style="background: #dbeafe; padding: 2rem; border-radius: 8px;">
|
|
195
|
-
<bd-display kind="xl" color="#1e40af">
|
|
196
|
-
Primary Brand Color
|
|
197
|
-
</bd-display>
|
|
198
|
-
<bd-p kind="small" style="color: #374151; margin-top: 1rem;">
|
|
199
|
-
Using brand colors for emphasis and visual consistency.
|
|
200
|
-
</bd-p>
|
|
85
|
+
export const AllAlignments = {
|
|
86
|
+
name : 'All Alignments',
|
|
87
|
+
render: () => html`
|
|
88
|
+
<div style="display:flex; flex-direction:column; gap:16px; width:100%;">
|
|
89
|
+
<bd-display kind="lg" align="left">Left aligned display</bd-display>
|
|
90
|
+
<bd-display kind="lg" align="center">Center aligned display</bd-display>
|
|
91
|
+
<bd-display kind="lg" align="right">Right aligned display</bd-display>
|
|
201
92
|
</div>
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
93
|
+
`,
|
|
94
|
+
parameters: { docs: { description: { story: 'All three alignment options: left, center, and right.' } } }
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export const CustomColor = {
|
|
98
|
+
name : 'Custom Color',
|
|
99
|
+
render: () => html`
|
|
100
|
+
<div style="display:flex; flex-direction:column; gap:12px;">
|
|
101
|
+
<bd-display kind="lg" color="#026DFF">Blue Display</bd-display>
|
|
102
|
+
<bd-display kind="lg" color="#E53935">Red Display</bd-display>
|
|
103
|
+
<bd-display kind="lg" color="#43A047">Green Display</bd-display>
|
|
104
|
+
<bd-display kind="lg" color="var(--color-neutral-1000)">Token Color</bd-display>
|
|
210
105
|
</div>
|
|
106
|
+
`,
|
|
107
|
+
parameters: { docs: { description: { story: 'Custom `color` values including hex codes and CSS custom properties.' } } }
|
|
108
|
+
};
|
|
211
109
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
110
|
+
export const HeroVariant = {
|
|
111
|
+
name : 'Hero Variant',
|
|
112
|
+
render: () => html`
|
|
113
|
+
<div style="text-align:center; padding:40px;">
|
|
114
|
+
<bd-display kind="xxxl" color="#026DFF" align="center">
|
|
115
|
+
Award-winning cybersecurity
|
|
215
116
|
</bd-display>
|
|
216
|
-
<bd-p kind="small" style="color: #374151; margin-top: 1rem;">
|
|
217
|
-
Using red for error states or important warnings.
|
|
218
|
-
</bd-p>
|
|
219
117
|
</div>
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
ColorCustomization.parameters = {
|
|
223
|
-
docs: {
|
|
224
|
-
description: {
|
|
225
|
-
story: 'Shows how display components can be customized with different colors for various contexts and themes.'
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
};
|
|
229
|
-
|
|
230
|
-
export const SizeXXXL = Template.bind({});
|
|
231
|
-
SizeXXXL.args = {
|
|
232
|
-
kind : 'xxxl',
|
|
233
|
-
color : '',
|
|
234
|
-
align : 'center',
|
|
235
|
-
content: 'Transform Your Digital Experience'
|
|
236
|
-
};
|
|
237
|
-
SizeXXXL.parameters = {
|
|
238
|
-
docs: {
|
|
239
|
-
description: {
|
|
240
|
-
story: 'Largest display size (XXXL) - Use for primary hero sections on landing pages. Maximum visual impact.'
|
|
241
|
-
}
|
|
242
|
-
}
|
|
118
|
+
`,
|
|
119
|
+
parameters: { docs: { description: { story: 'Large hero-style display with xxxl size, blue color, and center alignment.' } } }
|
|
243
120
|
};
|
|
244
121
|
|
|
245
|
-
export const
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
content: 'Enterprise-Grade Solutions'
|
|
251
|
-
};
|
|
252
|
-
SizeXXL.parameters = {
|
|
253
|
-
docs: {
|
|
254
|
-
description: {
|
|
255
|
-
story: 'Extra large display (XXL) - Perfect for major section titles and important feature announcements.'
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
};
|
|
259
|
-
|
|
260
|
-
export const SizeXL = Template.bind({});
|
|
261
|
-
SizeXL.args = {
|
|
262
|
-
kind : 'xl',
|
|
263
|
-
color : '',
|
|
264
|
-
align : 'left',
|
|
265
|
-
content: 'Advanced Technology Platform'
|
|
266
|
-
};
|
|
267
|
-
SizeXL.parameters = {
|
|
268
|
-
docs: {
|
|
269
|
-
description: {
|
|
270
|
-
story: 'Large display (XL) - Great for prominent headers and key value propositions in content sections.'
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
};
|
|
274
|
-
|
|
275
|
-
export const SizeLG = Template.bind({});
|
|
276
|
-
SizeLG.args = {
|
|
277
|
-
kind : 'lg',
|
|
278
|
-
color : '',
|
|
279
|
-
align : 'left',
|
|
280
|
-
content: 'Innovative Features & Capabilities'
|
|
281
|
-
};
|
|
282
|
-
SizeLG.parameters = {
|
|
283
|
-
docs: {
|
|
284
|
-
description: {
|
|
285
|
-
story: 'Standard display (LG) - Balanced size suitable for most display text needs across the application.'
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
};
|
|
289
|
-
|
|
290
|
-
export const SizeMD = Template.bind({});
|
|
291
|
-
SizeMD.args = {
|
|
292
|
-
kind : 'md',
|
|
293
|
-
color : '',
|
|
294
|
-
align : 'left',
|
|
295
|
-
content: 'Compact Powerful Display'
|
|
296
|
-
};
|
|
297
|
-
SizeMD.parameters = {
|
|
298
|
-
docs: {
|
|
299
|
-
description: {
|
|
300
|
-
story: 'Medium display (MD) - Compact size for sections with limited vertical space but still requiring visual impact.'
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
};
|
|
304
|
-
|
|
305
|
-
export const SizeSM = Template.bind({});
|
|
306
|
-
SizeSM.args = {
|
|
307
|
-
kind : 'sm',
|
|
308
|
-
color : '',
|
|
309
|
-
align : 'left',
|
|
310
|
-
content: 'Minimal Yet Impactful'
|
|
311
|
-
};
|
|
312
|
-
SizeSM.parameters = {
|
|
313
|
-
docs: {
|
|
314
|
-
description: {
|
|
315
|
-
story: 'Small display (SM) - Smallest display size, ideal for compact layouts where space is premium but hierarchy matters.'
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
};
|
|
319
|
-
|
|
320
|
-
export const InteractivePlayground = Template.bind({});
|
|
321
|
-
InteractivePlayground.args = {
|
|
322
|
-
kind : 'lg',
|
|
323
|
-
color : '',
|
|
324
|
-
align : 'left',
|
|
325
|
-
content: 'Customize This Display Text'
|
|
326
|
-
};
|
|
327
|
-
InteractivePlayground.parameters = {
|
|
328
|
-
docs: {
|
|
329
|
-
description: {
|
|
330
|
-
story: 'Interactive playground where you can test all display properties in real-time. Use the controls panel to modify the display component.'
|
|
331
|
-
}
|
|
332
|
-
}
|
|
122
|
+
export const Playground = {
|
|
123
|
+
name : '🛝 Playground',
|
|
124
|
+
args : { ...defaultArgs },
|
|
125
|
+
render,
|
|
126
|
+
parameters: { docs: { description: { story: 'Interactive playground. Adjust kind, color, and alignment via Controls.' } } }
|
|
333
127
|
};
|