@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.
- package/CHANGELOG.md +32 -0
- package/package.json +2 -3
- package/src/components/Button/button.stories.js +51 -51
- package/src/components/accordion/accordion-bg.css.js +168 -102
- package/src/components/accordion/accordion-bg.js +13 -5
- package/src/components/accordion/accordion-bg.stories.js +281 -0
- package/src/components/accordion/accordion-light.stories.js +241 -0
- package/src/components/anchor/anchor.stories.js +24 -22
- package/src/components/back/back.css.js +56 -0
- package/src/components/back/back.js +39 -0
- package/src/components/back/back.stories.js +184 -0
- package/src/components/badge/badge.css.js +44 -6
- package/src/components/badge/badge.js +40 -2
- package/src/components/badge/badge.stories.js +3 -10
- package/src/components/breadcrumb/breadcrumb.css.js +98 -0
- package/src/components/breadcrumb/breadcrumb.js +136 -0
- package/src/components/breadcrumb/breadcrumb.stories.js +109 -0
- package/src/components/cards/card.css.js +245 -0
- package/src/components/cards/card.js +80 -0
- package/src/components/cards/card.stories.js +512 -0
- package/src/components/carousel/carousel.css.js +51 -36
- package/src/components/carousel/carousel.js +0 -1
- package/src/components/carousel/carousel.stories.js +21 -17
- package/src/components/display/display.css.js +68 -0
- package/src/components/display/display.js +26 -0
- package/src/components/display/display.stories.js +339 -0
- package/src/components/divider/divider-horizontal.js +1 -1
- package/src/components/footer/footer-links-group.css.js +1 -1
- package/src/components/footer/footer-links-group.js +3 -3
- package/src/components/footer/footer-lp.stories.js +26 -61
- package/src/components/footer/footer-nav-menu.css.js +9 -10
- package/src/components/footer/footer.css.js +95 -8
- package/src/components/footer/footer.js +31 -65
- package/src/components/footer/footer.stories.js +165 -48
- package/src/components/header/header.js +11 -11
- package/src/components/header/header.stories.js +36 -4
- package/src/components/heading/heading.css.js +79 -0
- package/src/components/heading/heading.js +79 -0
- package/src/components/heading/heading.stories.js +260 -0
- package/src/components/highlight/highlight.stories.js +1 -1
- package/src/components/image/image.css.js +101 -0
- package/src/components/image/image.js +57 -0
- package/src/components/image/image.stories.js +245 -0
- package/src/components/light-carousel/light-carousel-simple.js +3 -2
- package/src/components/light-carousel/light-carousel.js +3 -7
- package/src/components/light-carousel/light-carousel.stories.js +15 -16
- package/src/components/link/link.css.js +107 -18
- package/src/components/link/link.js +16 -12
- package/src/components/link/link.stories.js +177 -0
- package/src/components/list/list-item/list-item.css.js +106 -0
- package/src/components/list/list-item/list-item.js +43 -0
- package/src/components/list/list-item/list-item.stories.js +79 -0
- package/src/components/list/list.css.js +175 -0
- package/src/components/list/list.js +44 -0
- package/src/components/modal/modal.js +6 -5
- package/src/components/paragraph/paragraph.css.js +41 -11
- package/src/components/paragraph/paragraph.js +7 -45
- package/src/components/paragraph/paragraph.stories.js +235 -0
- package/src/components/picture/picture.css.js +0 -0
- package/src/components/picture/picture.js +46 -0
- package/src/components/picture/picture.stories.js +275 -0
- package/src/components/pricing-cards/pricing-card-actions.js +1 -1
- package/src/components/pricing-cards/pricing-card-header.js +9 -7
- package/src/components/pricing-cards/pricing-card-pricing.js +11 -12
- package/src/components/pricing-cards/pricing-card.css.js +28 -3
- package/src/components/pricing-cards/pricing-card.js +38 -50
- package/src/components/tabs/tabs.js +44 -47
- package/src/components/termsOfUse/terms.js +77 -161
- package/src/components/termsOfUse/terms.stories.js +4 -3
- package/src/stories/Header.js +6 -6
- package/src/tokens/layout.css +3 -3
- package/src/tokens/tokens.css +0 -23
- package/src/tokens/tokens.stories.js +9 -8
- package/src/components/accordion/accordion-no-bg.css.js +0 -114
- package/src/components/accordion/accordion-no-bg.js +0 -80
|
@@ -0,0 +1,512 @@
|
|
|
1
|
+
import { html } from 'lit';
|
|
2
|
+
import '../heading/heading.js';
|
|
3
|
+
import './card.js';
|
|
4
|
+
export default {
|
|
5
|
+
title : 'Components/Card',
|
|
6
|
+
component : 'bd-card-section',
|
|
7
|
+
subcomponents: { 'bd-card-item': 'bd-card-item' },
|
|
8
|
+
argTypes : {
|
|
9
|
+
title: {
|
|
10
|
+
control : 'text',
|
|
11
|
+
description: 'Section title (optional)'
|
|
12
|
+
},
|
|
13
|
+
align: {
|
|
14
|
+
control : { type: 'select' },
|
|
15
|
+
options : ['start', 'center'],
|
|
16
|
+
description: 'Content alignment for card items'
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const Template = (args) => html`
|
|
22
|
+
<bd-card-section title="${args.title}">
|
|
23
|
+
<bd-card-item
|
|
24
|
+
title="Scam Copilot Chatbot"
|
|
25
|
+
icon="/assets/device_protection.png"
|
|
26
|
+
align="${args.align}"
|
|
27
|
+
>
|
|
28
|
+
<bd-p kind="small">
|
|
29
|
+
Specialized AI chatbot that helps you identify suspicious online
|
|
30
|
+
interactions so you don't become a victim.
|
|
31
|
+
</bd-p>
|
|
32
|
+
</bd-card-item>
|
|
33
|
+
|
|
34
|
+
<bd-card-item
|
|
35
|
+
title="Privacy Protection"
|
|
36
|
+
icon="/assets/privacy_protection.png"
|
|
37
|
+
align="${args.align}"
|
|
38
|
+
>
|
|
39
|
+
<bd-p kind="small">
|
|
40
|
+
Specialized AI chatbot that helps you identify suspicious online
|
|
41
|
+
interactions so you don't become a victim.
|
|
42
|
+
</bd-p>
|
|
43
|
+
</bd-card-item>
|
|
44
|
+
|
|
45
|
+
<bd-card-item
|
|
46
|
+
title="Scam Wave Alerts"
|
|
47
|
+
icon="/assets/identity_protection.png"
|
|
48
|
+
align="${args.align}"
|
|
49
|
+
>
|
|
50
|
+
<bd-p kind="small">
|
|
51
|
+
Stay informed with real-time alerts about ongoing scam outbreaks
|
|
52
|
+
detected in your area automatically.
|
|
53
|
+
</bd-p>
|
|
54
|
+
</bd-card-item>
|
|
55
|
+
|
|
56
|
+
<bd-card-item
|
|
57
|
+
title="Online Scam Protection"
|
|
58
|
+
icon="/assets/financial_insurance.png"
|
|
59
|
+
align="${args.align}"
|
|
60
|
+
>
|
|
61
|
+
<bd-p kind="small">
|
|
62
|
+
Focused on browsing activities, it specializes in detecting the newest
|
|
63
|
+
scam patterns and tactics.
|
|
64
|
+
</bd-p>
|
|
65
|
+
</bd-card-item>
|
|
66
|
+
</bd-card-section>
|
|
67
|
+
`;
|
|
68
|
+
|
|
69
|
+
export const Default = Template.bind({});
|
|
70
|
+
Default.args = {
|
|
71
|
+
title: 'Security Features',
|
|
72
|
+
align: 'start'
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export const CenterAligned = Template.bind({});
|
|
76
|
+
CenterAligned.args = {
|
|
77
|
+
title: 'Security Features - Centered',
|
|
78
|
+
align: 'center'
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const IconTitleOnly = () => html`
|
|
82
|
+
<bd-card-section title="Icon + Title Only Cards">
|
|
83
|
+
<bd-card-item
|
|
84
|
+
title="Device Protection"
|
|
85
|
+
icon="/assets/device_protection.png"
|
|
86
|
+
align="start"
|
|
87
|
+
></bd-card-item>
|
|
88
|
+
|
|
89
|
+
<bd-card-item
|
|
90
|
+
title="Privacy Shield"
|
|
91
|
+
icon="/assets/privacy_protection.png"
|
|
92
|
+
align="start"
|
|
93
|
+
></bd-card-item>
|
|
94
|
+
|
|
95
|
+
<bd-card-item
|
|
96
|
+
title="Identity Guard"
|
|
97
|
+
icon="/assets/identity_protection.png"
|
|
98
|
+
align="start"
|
|
99
|
+
></bd-card-item>
|
|
100
|
+
|
|
101
|
+
<bd-card-item
|
|
102
|
+
title="Financial Safety"
|
|
103
|
+
icon="/assets/financial_insurance.png"
|
|
104
|
+
align="start"
|
|
105
|
+
></bd-card-item>
|
|
106
|
+
</bd-card-section>
|
|
107
|
+
`;
|
|
108
|
+
|
|
109
|
+
export const IconTitleOnlyCentered = () => html`
|
|
110
|
+
<bd-card-section title="Icon + Title Only - Centered">
|
|
111
|
+
<bd-card-item
|
|
112
|
+
title="Device Protection"
|
|
113
|
+
icon="/assets/device_protection.png"
|
|
114
|
+
align="center"
|
|
115
|
+
></bd-card-item>
|
|
116
|
+
|
|
117
|
+
<bd-card-item
|
|
118
|
+
title="Privacy Shield"
|
|
119
|
+
icon="/assets/privacy_protection.png"
|
|
120
|
+
align="center"
|
|
121
|
+
></bd-card-item>
|
|
122
|
+
|
|
123
|
+
<bd-card-item
|
|
124
|
+
title="Identity Guard"
|
|
125
|
+
icon="/assets/identity_protection.png"
|
|
126
|
+
align="center"
|
|
127
|
+
></bd-card-item>
|
|
128
|
+
|
|
129
|
+
<bd-card-item
|
|
130
|
+
title="Financial Safety"
|
|
131
|
+
icon="/assets/financial_insurance.png"
|
|
132
|
+
align="center"
|
|
133
|
+
></bd-card-item>
|
|
134
|
+
</bd-card-section>
|
|
135
|
+
`;
|
|
136
|
+
|
|
137
|
+
export const MixedContentTypes = () => html`
|
|
138
|
+
<bd-card-section title="Mixed Content Types">
|
|
139
|
+
<bd-card-item
|
|
140
|
+
title="With Description"
|
|
141
|
+
icon="/assets/device_protection.png"
|
|
142
|
+
align="start"
|
|
143
|
+
>
|
|
144
|
+
<bd-p kind="small">This card has both icon, title and description text below.</bd-p>
|
|
145
|
+
</bd-card-item>
|
|
146
|
+
|
|
147
|
+
<bd-card-item
|
|
148
|
+
title="Icon + Title Only"
|
|
149
|
+
icon="/assets/privacy_protection.png"
|
|
150
|
+
align="start"
|
|
151
|
+
></bd-card-item>
|
|
152
|
+
|
|
153
|
+
<bd-card-item
|
|
154
|
+
title="Another With Description"
|
|
155
|
+
icon="/assets/identity_protection.png"
|
|
156
|
+
align="start"
|
|
157
|
+
>
|
|
158
|
+
<bd-p kind="small">This card includes detailed description about the feature.</bd-p>
|
|
159
|
+
</bd-card-item>
|
|
160
|
+
|
|
161
|
+
<bd-card-item
|
|
162
|
+
title="Another Icon Only"
|
|
163
|
+
icon="/assets/financial_insurance.png"
|
|
164
|
+
align="start"
|
|
165
|
+
></bd-card-item>
|
|
166
|
+
</bd-card-section>
|
|
167
|
+
`;
|
|
168
|
+
|
|
169
|
+
export const MixedContentTypesCentered = () => html`
|
|
170
|
+
<bd-card-section title="Mixed Content Types - Centered">
|
|
171
|
+
<bd-card-item
|
|
172
|
+
title="With Description"
|
|
173
|
+
icon="/assets/device_protection.png"
|
|
174
|
+
align="center"
|
|
175
|
+
>
|
|
176
|
+
<bd-p kind="small">This card has both icon, title and description text below.</bd-p>
|
|
177
|
+
</bd-card-item>
|
|
178
|
+
|
|
179
|
+
<bd-card-item
|
|
180
|
+
title="Icon + Title Only"
|
|
181
|
+
icon="/assets/privacy_protection.png"
|
|
182
|
+
align="center"
|
|
183
|
+
></bd-card-item>
|
|
184
|
+
|
|
185
|
+
<bd-card-item
|
|
186
|
+
title="Another With Description"
|
|
187
|
+
icon="/assets/identity_protection.png"
|
|
188
|
+
align="center"
|
|
189
|
+
>
|
|
190
|
+
<bd-p kind="small">This card includes detailed description about the feature.</bd-p>
|
|
191
|
+
</bd-card-item>
|
|
192
|
+
|
|
193
|
+
<bd-card-item
|
|
194
|
+
title="Another Icon Only"
|
|
195
|
+
icon="/assets/financial_insurance.png"
|
|
196
|
+
align="center"
|
|
197
|
+
></bd-card-item>
|
|
198
|
+
</bd-card-section>
|
|
199
|
+
`;
|
|
200
|
+
|
|
201
|
+
export const WithoutTitle = Template.bind({});
|
|
202
|
+
WithoutTitle.args = {
|
|
203
|
+
title: '',
|
|
204
|
+
align: 'start'
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
export const WithoutTitleCentered = Template.bind({});
|
|
208
|
+
WithoutTitleCentered.args = {
|
|
209
|
+
title: '',
|
|
210
|
+
align: 'center'
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
export const SingleCard = (args) => html`
|
|
214
|
+
<bd-card-section title="${args.title}">
|
|
215
|
+
<bd-card-item
|
|
216
|
+
title="${args.cardTitle}"
|
|
217
|
+
icon="${args.icon}"
|
|
218
|
+
align="${args.align}"
|
|
219
|
+
>
|
|
220
|
+
<bd-p kind="small">${args.content}</bd-p>
|
|
221
|
+
</bd-card-item>
|
|
222
|
+
</bd-card-section>
|
|
223
|
+
`;
|
|
224
|
+
SingleCard.args = {
|
|
225
|
+
title : 'Single Feature',
|
|
226
|
+
cardTitle: 'Scam Copilot Chatbot',
|
|
227
|
+
icon : '/assets/device_protection.png',
|
|
228
|
+
content : 'Specialized AI chatbot that helps you identify suspicious online interactions.',
|
|
229
|
+
align : 'start'
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
export const SingleCardCentered = SingleCard.bind({});
|
|
233
|
+
SingleCardCentered.args = {
|
|
234
|
+
...SingleCard.args,
|
|
235
|
+
title: 'Single Feature - Centered',
|
|
236
|
+
align: 'center'
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
export const SingleCardNoContent = (args) => html`
|
|
240
|
+
<bd-card-section title="${args.title}">
|
|
241
|
+
<bd-card-item
|
|
242
|
+
title="${args.cardTitle}"
|
|
243
|
+
icon="${args.icon}"
|
|
244
|
+
align="${args.align}"
|
|
245
|
+
></bd-card-item>
|
|
246
|
+
</bd-card-section>
|
|
247
|
+
`;
|
|
248
|
+
SingleCardNoContent.args = {
|
|
249
|
+
title : 'Single Feature - Icon + Title Only',
|
|
250
|
+
cardTitle: 'Device Protection',
|
|
251
|
+
icon : '/assets/device_protection.png',
|
|
252
|
+
align : 'start'
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
export const SingleCardNoContentCentered = SingleCardNoContent.bind({});
|
|
256
|
+
SingleCardNoContentCentered.args = {
|
|
257
|
+
...SingleCardNoContent.args,
|
|
258
|
+
title: 'Single Feature - Icon + Title Only - Centered',
|
|
259
|
+
align: 'center'
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
export const MultipleCardsGrid = (args) => html`
|
|
263
|
+
<bd-card-section title="${args.title}">
|
|
264
|
+
${Array.from({ length: args.cardCount }, (_, i) => html`
|
|
265
|
+
<bd-card-item
|
|
266
|
+
title="${args.cardTitle} ${i + 1}"
|
|
267
|
+
icon="${args.icon}"
|
|
268
|
+
align="${args.align}"
|
|
269
|
+
>
|
|
270
|
+
<bd-p kind="small">${args.content} This is card number ${i + 1}.</bd-p>
|
|
271
|
+
</bd-card-item>
|
|
272
|
+
`)}
|
|
273
|
+
</bd-card-section>
|
|
274
|
+
`;
|
|
275
|
+
MultipleCardsGrid.args = {
|
|
276
|
+
title : 'Multiple Security Features',
|
|
277
|
+
cardTitle: 'Security Feature',
|
|
278
|
+
icon : '/assets/device_protection.png',
|
|
279
|
+
content : 'Description for this security feature.',
|
|
280
|
+
cardCount: 6,
|
|
281
|
+
align : 'start'
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
export const MultipleCardsGridCentered = MultipleCardsGrid.bind({});
|
|
285
|
+
MultipleCardsGridCentered.args = {
|
|
286
|
+
...MultipleCardsGrid.args,
|
|
287
|
+
title: 'Multiple Security Features - Centered',
|
|
288
|
+
align: 'center'
|
|
289
|
+
};
|
|
290
|
+
|
|
291
|
+
export const CardItemVariations = () => html`
|
|
292
|
+
<div style="display: flex; flex-direction: column; gap: 3rem;">
|
|
293
|
+
<!-- Start Aligned Variations -->
|
|
294
|
+
<bd-card-section title="Card Item Variations - Start Aligned">
|
|
295
|
+
<bd-card-item
|
|
296
|
+
title="With Icon and Title"
|
|
297
|
+
icon="/assets/device_protection.png"
|
|
298
|
+
align="start"
|
|
299
|
+
>
|
|
300
|
+
<bd-p kind="small">This card has both an icon and a title with description.</bd-p>
|
|
301
|
+
</bd-card-item>
|
|
302
|
+
|
|
303
|
+
<bd-card-item
|
|
304
|
+
title="Icon + Title Only"
|
|
305
|
+
icon="/assets/device_protection.png"
|
|
306
|
+
align="start"
|
|
307
|
+
></bd-card-item>
|
|
308
|
+
|
|
309
|
+
<bd-card-item
|
|
310
|
+
title="Title Only"
|
|
311
|
+
align="start"
|
|
312
|
+
>
|
|
313
|
+
<bd-p kind="small">This card has only a title without an icon, aligned to start.</bd-p>
|
|
314
|
+
</bd-card-item>
|
|
315
|
+
|
|
316
|
+
<bd-card-item
|
|
317
|
+
icon="/assets/privacy_protection.png"
|
|
318
|
+
align="start"
|
|
319
|
+
>
|
|
320
|
+
<bd-p kind="small">This card has only an icon without a title, aligned to start.</bd-p>
|
|
321
|
+
</bd-card-item>
|
|
322
|
+
|
|
323
|
+
<bd-card-item align="start">
|
|
324
|
+
<bd-p kind="small">This card has neither icon nor title - just content, aligned to start.</bd-p>
|
|
325
|
+
</bd-card-item>
|
|
326
|
+
</bd-card-section>
|
|
327
|
+
|
|
328
|
+
<!-- Center Aligned Variations -->
|
|
329
|
+
<bd-card-section title="Card Item Variations - Center Aligned">
|
|
330
|
+
<bd-card-item
|
|
331
|
+
title="With Icon and Title"
|
|
332
|
+
icon="/assets/device_protection.png"
|
|
333
|
+
align="center"
|
|
334
|
+
>
|
|
335
|
+
<bd-p kind="small">This card has both an icon and a title with description.</bd-p>
|
|
336
|
+
</bd-card-item>
|
|
337
|
+
|
|
338
|
+
<bd-card-item
|
|
339
|
+
title="Icon + Title Only"
|
|
340
|
+
icon="/assets/device_protection.png"
|
|
341
|
+
align="center"
|
|
342
|
+
></bd-card-item>
|
|
343
|
+
|
|
344
|
+
<bd-card-item
|
|
345
|
+
title="Title Only"
|
|
346
|
+
align="center"
|
|
347
|
+
>
|
|
348
|
+
<bd-p kind="small">This card has only a title without an icon, centered alignment.</bd-p>
|
|
349
|
+
</bd-card-item>
|
|
350
|
+
|
|
351
|
+
<bd-card-item
|
|
352
|
+
icon="/assets/privacy_protection.png"
|
|
353
|
+
align="center"
|
|
354
|
+
>
|
|
355
|
+
<bd-p kind="small">This card has only an icon without a title, centered alignment.</bd-p>
|
|
356
|
+
</bd-card-item>
|
|
357
|
+
|
|
358
|
+
<bd-card-item align="center">
|
|
359
|
+
<bd-p kind="small">This card has neither icon nor title - just content, centered alignment.</bd-p>
|
|
360
|
+
</bd-card-item>
|
|
361
|
+
</bd-card-section>
|
|
362
|
+
</div>
|
|
363
|
+
`;
|
|
364
|
+
|
|
365
|
+
export const LongContent = () => html`
|
|
366
|
+
<div style="display: flex; flex-direction: column; gap: 3rem;">
|
|
367
|
+
<!-- Start Aligned Long Content -->
|
|
368
|
+
<bd-card-section title="Cards with Long Content - Start Aligned">
|
|
369
|
+
<bd-card-item
|
|
370
|
+
title="Feature with Detailed Description"
|
|
371
|
+
icon="/assets/identity_protection.png"
|
|
372
|
+
align="start"
|
|
373
|
+
>
|
|
374
|
+
<bd-p kind="small">
|
|
375
|
+
This is a much longer description that might wrap across multiple lines.
|
|
376
|
+
It provides comprehensive details about the feature, its benefits,
|
|
377
|
+
and how it helps protect users from various types of online threats
|
|
378
|
+
and scams in today's digital landscape.
|
|
379
|
+
</bd-p>
|
|
380
|
+
<bd-p kind="small">
|
|
381
|
+
Additional paragraph to demonstrate how multiple paragraphs of content
|
|
382
|
+
would appear within the card component.
|
|
383
|
+
</bd-p>
|
|
384
|
+
</bd-card-item>
|
|
385
|
+
|
|
386
|
+
<bd-card-item
|
|
387
|
+
title="Very Long Title That Might Wrap to Multiple Lines"
|
|
388
|
+
icon="/assets/financial_insurance.png"
|
|
389
|
+
align="start"
|
|
390
|
+
>
|
|
391
|
+
<bd-p kind="small">Regular content with an exceptionally long title, aligned to start.</bd-p>
|
|
392
|
+
</bd-card-item>
|
|
393
|
+
</bd-card-section>
|
|
394
|
+
|
|
395
|
+
<!-- Center Aligned Long Content -->
|
|
396
|
+
<bd-card-section title="Cards with Long Content - Center Aligned">
|
|
397
|
+
<bd-card-item
|
|
398
|
+
title="Feature with Detailed Description"
|
|
399
|
+
icon="/assets/identity_protection.png"
|
|
400
|
+
align="center"
|
|
401
|
+
>
|
|
402
|
+
<bd-p kind="small">
|
|
403
|
+
This is a much longer description that might wrap across multiple lines.
|
|
404
|
+
It provides comprehensive details about the feature, its benefits,
|
|
405
|
+
and how it helps protect users from various types of online threats
|
|
406
|
+
and scams in today's digital landscape.
|
|
407
|
+
</bd-p>
|
|
408
|
+
<bd-p kind="small">
|
|
409
|
+
Additional paragraph to demonstrate how multiple paragraphs of content
|
|
410
|
+
would appear within the card component.
|
|
411
|
+
</bd-p>
|
|
412
|
+
</bd-card-item>
|
|
413
|
+
|
|
414
|
+
<bd-card-item
|
|
415
|
+
title="Very Long Title That Might Wrap to Multiple Lines"
|
|
416
|
+
icon="/assets/financial_insurance.png"
|
|
417
|
+
align="center"
|
|
418
|
+
>
|
|
419
|
+
<bd-p kind="small">Regular content with an exceptionally long title, centered alignment.</bd-p>
|
|
420
|
+
</bd-card-item>
|
|
421
|
+
</bd-card-section>
|
|
422
|
+
</div>
|
|
423
|
+
`;
|
|
424
|
+
|
|
425
|
+
export const MixedAlignment = () => html`
|
|
426
|
+
<bd-card-section title="Mixed Alignment Cards">
|
|
427
|
+
<bd-card-item
|
|
428
|
+
title="Start Aligned Card"
|
|
429
|
+
icon="/assets/device_protection.png"
|
|
430
|
+
align="start"
|
|
431
|
+
>
|
|
432
|
+
<bd-p kind="small">This card is left aligned with content starting from the left side.</bd-p>
|
|
433
|
+
<bd-p kind="small">Perfect for longer text content that reads better when left aligned.</bd-p>
|
|
434
|
+
</bd-card-item>
|
|
435
|
+
|
|
436
|
+
<bd-card-item
|
|
437
|
+
title="Center Aligned Card"
|
|
438
|
+
icon="/assets/privacy_protection.png"
|
|
439
|
+
align="center"
|
|
440
|
+
>
|
|
441
|
+
<bd-p kind="small">This card is center aligned with everything centered.</bd-p>
|
|
442
|
+
<bd-p kind="small">Great for highlight features or call-to-action cards.</bd-p>
|
|
443
|
+
</bd-card-item>
|
|
444
|
+
|
|
445
|
+
<bd-card-item
|
|
446
|
+
title="Another Start Aligned"
|
|
447
|
+
icon="/assets/identity_protection.png"
|
|
448
|
+
align="start"
|
|
449
|
+
>
|
|
450
|
+
<bd-p kind="small">Another left aligned card with detailed description.</bd-p>
|
|
451
|
+
</bd-card-item>
|
|
452
|
+
|
|
453
|
+
<bd-card-item
|
|
454
|
+
title="Another Center Aligned"
|
|
455
|
+
icon="/assets/financial_insurance.png"
|
|
456
|
+
align="center"
|
|
457
|
+
>
|
|
458
|
+
<bd-p kind="small">Another center aligned card for balanced presentation.</bd-p>
|
|
459
|
+
</bd-card-item>
|
|
460
|
+
</bd-card-section>
|
|
461
|
+
`;
|
|
462
|
+
|
|
463
|
+
export const AlignmentComparison = () => html`
|
|
464
|
+
<bd-card-section title="Alignment Comparison">
|
|
465
|
+
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-bottom: 2rem;">
|
|
466
|
+
<div>
|
|
467
|
+
<bd-h as="h4" style="text-align: center; color: #333; padding: 10px 0;">Start Aligned</bd-h>
|
|
468
|
+
<bd-card-item
|
|
469
|
+
title="Start Aligned Example"
|
|
470
|
+
icon="/assets/device_protection.png"
|
|
471
|
+
align="start"
|
|
472
|
+
>
|
|
473
|
+
<bd-p kind="small">This card shows start alignment where content begins from the left.</bd-p>
|
|
474
|
+
<bd-p kind="small">Ideal for readability and longer text content.</bd-p>
|
|
475
|
+
</bd-card-item>
|
|
476
|
+
</div>
|
|
477
|
+
<div>
|
|
478
|
+
<bd-h as="h4" style="text-align: center; color: #333; padding: 10px 0;">Center Aligned</bd-h>
|
|
479
|
+
<bd-card-item
|
|
480
|
+
title="Center Aligned Example"
|
|
481
|
+
icon="/assets/device_protection.png"
|
|
482
|
+
align="center"
|
|
483
|
+
>
|
|
484
|
+
<bd-p kind="small">This card shows center alignment with balanced presentation.</bd-p>
|
|
485
|
+
<bd-p kind="small">Perfect for feature highlights and visual balance.</bd-p>
|
|
486
|
+
</bd-card-item>
|
|
487
|
+
</div>
|
|
488
|
+
</div>
|
|
489
|
+
</bd-card-section>
|
|
490
|
+
`;
|
|
491
|
+
|
|
492
|
+
export const ResponsiveAlignment = () => html`
|
|
493
|
+
<bd-card-section title="Responsive Alignment Examples">
|
|
494
|
+
<bd-card-item
|
|
495
|
+
title="Responsive Start Aligned"
|
|
496
|
+
icon="/assets/device_protection.png"
|
|
497
|
+
align="start"
|
|
498
|
+
>
|
|
499
|
+
<bd-p kind="small">This card maintains start alignment across all screen sizes.</bd-p>
|
|
500
|
+
<bd-p kind="small">On mobile devices, the content will still be aligned to the start.</bd-p>
|
|
501
|
+
</bd-card-item>
|
|
502
|
+
|
|
503
|
+
<bd-card-item
|
|
504
|
+
title="Responsive Center Aligned"
|
|
505
|
+
icon="/assets/privacy_protection.png"
|
|
506
|
+
align="center"
|
|
507
|
+
>
|
|
508
|
+
<bd-p kind="small">This card maintains center alignment across all screen sizes.</bd-p>
|
|
509
|
+
<bd-p kind="small">On mobile devices, the content will remain centered for consistency.</bd-p>
|
|
510
|
+
</bd-card-item>
|
|
511
|
+
</bd-card-section>
|
|
512
|
+
`;
|
|
@@ -9,6 +9,8 @@ export default css`
|
|
|
9
9
|
--bd-accesibility-focus: var(--color-blue-800);
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
|
|
13
|
+
p{ font-size: 40px;}
|
|
12
14
|
.bd-carousel {
|
|
13
15
|
display: block;
|
|
14
16
|
align-items: center;
|
|
@@ -47,6 +49,9 @@ export default css`
|
|
|
47
49
|
margin-bottom: 50px;
|
|
48
50
|
margin-top: 50px;
|
|
49
51
|
}
|
|
52
|
+
|
|
53
|
+
.bd-heading{
|
|
54
|
+
padding: 20px}
|
|
50
55
|
.bd-carousel-container {
|
|
51
56
|
display: flex;
|
|
52
57
|
flex-direction: column;
|
|
@@ -71,45 +76,52 @@ export default css`
|
|
|
71
76
|
text-align: center;
|
|
72
77
|
}
|
|
73
78
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
79
|
+
.bd-left-arrow {
|
|
80
|
+
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><circle cx="20" cy="20" r="20" transform="matrix(-1 0 0 1 40 0)" fill="%23006DFF"/><path d="M23.3431 14.4142L21.9289 13L14.8579 20.071L16.2721 21.4853L23.3431 14.4142Z" fill="white"/><path d="M16.2721 18.6568L14.8579 20.071L21.9289 27.1421L23.3431 25.7279L16.2721 18.6568Z" fill="white"/></svg>');
|
|
81
|
+
}
|
|
77
82
|
|
|
78
|
-
.bd-left-arrow:hover {
|
|
79
|
-
content: url("/assets/left_hover.svg");
|
|
80
|
-
}
|
|
81
83
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
84
|
+
.bd-left-arrow:hover {
|
|
85
|
+
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><circle cx="20" cy="20" r="20" transform="matrix(-1 0 0 1 40 0)" fill="%230059D6"/><path d="M23.3431 14.4142L21.9289 13L14.8579 20.071L16.2721 21.4853L23.3431 14.4142Z" fill="white"/><path d="M16.2721 18.6568L14.8579 20.071L21.9289 27.1421L23.3431 25.7279L16.2721 18.6568Z" fill="white"/></svg>');
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.bd-left-arrow:active {
|
|
89
|
+
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><circle cx="20" cy="20" r="20" transform="matrix(-1 0 0 1 40 0)" fill="%230045AD"/><path d="M23.3431 14.4142L21.9289 13L14.8579 20.071L16.2721 21.4853L23.3431 14.4142Z" fill="white"/><path d="M16.2721 18.6568L14.8579 20.071L21.9289 27.1421L23.3431 25.7279L16.2721 18.6568Z" fill="white"/></svg>');
|
|
90
|
+
}
|
|
91
|
+
|
|
85
92
|
|
|
86
93
|
.bd-left-arrow:disabled {
|
|
87
|
-
|
|
94
|
+
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><circle cx="20" cy="20" r="20" fill="%23F1F2F3"/><path d="M23.3431 14.4142L21.9289 13L14.8579 20.071L16.2721 21.4853L23.3431 14.4142Z" fill="%23A6ADB4"/><path d="M16.2721 18.6568L14.8579 20.071L21.9289 27.1421L23.3431 25.7279L16.2721 18.6568Z" fill="%23A6ADB4"/></svg>');
|
|
88
95
|
}
|
|
89
96
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
97
|
+
.bd-right-arrow {
|
|
98
|
+
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><circle cx="20" cy="20" r="20" fill="%23006DFF"/><path d="M16.6569 14.4142L18.0711 13L25.1421 20.071L23.7279 21.4853L16.6569 14.4142Z" fill="white"/><path d="M23.7279 18.6568L25.1421 20.071L18.0711 27.1421L16.6569 25.7279L23.7279 18.6568Z" fill="white"/></svg>');
|
|
99
|
+
}
|
|
93
100
|
|
|
94
|
-
.bd-right-arrow:hover {
|
|
95
|
-
content: url("/assets/right_hover.svg");
|
|
96
|
-
}
|
|
97
101
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
102
|
+
.bd-right-arrow:hover {
|
|
103
|
+
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><circle cx="20" cy="20" r="20" fill="%230059D6"/><path d="M16.6569 14.4142L18.0711 13L25.1421 20.071L23.7279 21.4853L16.6569 14.4142Z" fill="white"/><path d="M23.7279 18.6568L25.1421 20.071L18.0711 27.1421L16.6569 25.7279L23.7279 18.6568Z" fill="white"/></svg>');
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
.bd-right-arrow:active {
|
|
108
|
+
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><circle cx="20" cy="20" r="20" fill="%230045AD"/><path d="M16.6569 14.4142L18.0711 13L25.1421 20.071L23.7279 21.4853L16.6569 14.4142Z" fill="white"/><path d="M23.7279 18.6568L25.1421 20.071L18.0711 27.1421L16.6569 25.7279L23.7279 18.6568Z" fill="white"/></svg>');
|
|
109
|
+
}
|
|
110
|
+
|
|
101
111
|
|
|
102
112
|
.bd-right-arrow:disabled {
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
.bd-right-arrow.bd-disabled {
|
|
106
|
-
content: url("/assets/right_disabled.svg");
|
|
107
|
-
cursor: not-allowed;
|
|
108
|
-
}
|
|
109
|
-
.bd-left-arrow.bd-disabled {
|
|
110
|
-
content: url("/assets/left_disabled.svg");
|
|
111
|
-
cursor: not-allowed;
|
|
113
|
+
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><circle cx="20" cy="20" r="20" fill="%23F1F2F3"/><path d="M16.6569 14.4142L18.0711 13L25.1421 20.071L23.7279 21.4853L16.6569 14.4142Z" fill="%23A6ADB4"/><path d="M23.7279 18.6568L25.1421 20.071L18.0711 27.1421L16.6569 25.7279L23.7279 18.6568Z" fill="%23A6ADB4"/></svg>');
|
|
112
114
|
}
|
|
115
|
+
.bd-right-arrow.bd-disabled {
|
|
116
|
+
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><circle cx="20" cy="20" r="20" fill="%23F1F2F3"/><path d="M16.6569 14.4142L18.0711 13L25.1421 20.071L23.7279 21.4853L16.6569 14.4142Z" fill="%23A6ADB4"/><path d="M23.7279 18.6568L25.1421 20.071L18.0711 27.1421L16.6569 25.7279L23.7279 18.6568Z" fill="%23A6ADB4"/></svg>');
|
|
117
|
+
cursor: not-allowed;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.bd-left-arrow.bd-disabled {
|
|
121
|
+
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40"><circle cx="20" cy="20" r="20" fill="%23F1F2F3"/><path d="M23.3431 14.4142L21.9289 13L14.8579 20.071L16.2721 21.4853L23.3431 14.4142Z" fill="%23A6ADB4"/><path d="M16.2721 18.6568L14.8579 20.071L21.9289 27.1421L23.3431 25.7279L16.2721 18.6568Z" fill="%23A6ADB4"/></svg>');
|
|
122
|
+
cursor: not-allowed;
|
|
123
|
+
}
|
|
124
|
+
|
|
113
125
|
.bd-disabled {
|
|
114
126
|
background: #f1f2f3;
|
|
115
127
|
color: #a6adb4;
|
|
@@ -172,11 +184,13 @@ export default css`
|
|
|
172
184
|
z-index: 2;
|
|
173
185
|
}
|
|
174
186
|
|
|
175
|
-
.bd-box
|
|
187
|
+
.bd-box bd-h {
|
|
176
188
|
font-size: var(--spacing-18);
|
|
177
189
|
margin: var(--spacing-0) var(--spacing-0) 0.5em var(--spacing-0);
|
|
178
190
|
font-weight: 600;
|
|
179
191
|
font-family: var(--typography-fontFamily-sans);
|
|
192
|
+
padding: 10px 0; /* Adaugă aici */
|
|
193
|
+
|
|
180
194
|
}
|
|
181
195
|
|
|
182
196
|
.bd-box p {
|
|
@@ -234,7 +248,7 @@ export default css`
|
|
|
234
248
|
}
|
|
235
249
|
|
|
236
250
|
.bd-plus-button {
|
|
237
|
-
|
|
251
|
+
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none"><circle cx="20" cy="20" r="19" stroke="%23006DFF" stroke-width="2"/><path d="M19 11H21V29H19V11Z" fill="%23006DFF"/><path d="M29 19V21L11 21L11 19L29 19Z" fill="%23006DFF"/></svg>');
|
|
238
252
|
position: absolute;
|
|
239
253
|
bottom: var(--spacing-10);
|
|
240
254
|
right: var(--spacing-10);
|
|
@@ -249,17 +263,18 @@ export default css`
|
|
|
249
263
|
font-weight: bold;
|
|
250
264
|
cursor: pointer;
|
|
251
265
|
}
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
266
|
+
.bd-plus-button:hover {
|
|
267
|
+
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none"><circle cx="20" cy="20" r="19" fill="%23F0F7FF" stroke="%23006DFF" stroke-width="2"/><path d="M19 11H21V29H19V11Z" fill="%23006DFF"/><path d="M29 19V21L11 21L11 19L29 19Z" fill="%23006DFF"/></svg>');
|
|
268
|
+
}
|
|
269
|
+
|
|
255
270
|
|
|
256
271
|
bd-carousel-item::part(content) {
|
|
257
272
|
font-family: var(--typography-fontFamily-sans);
|
|
258
273
|
}
|
|
259
274
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
275
|
+
.bd-plus-button:active {
|
|
276
|
+
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none"><circle cx="20" cy="20" r="19" fill="%23006DFF" stroke="%23006DFF" stroke-width="2"/><path d="M19 11H21V29H19V11Z" fill="white"/><path d="M29 19V21L11 21L11 19L29 19Z" fill="white"/></svg>');
|
|
277
|
+
}
|
|
263
278
|
|
|
264
279
|
.bd-left-arrow {
|
|
265
280
|
margin-right: var(--spacing-6);
|
|
@@ -2,7 +2,6 @@ import { LitElement, html } from "lit";
|
|
|
2
2
|
import { tokens } from "../../tokens/tokens.js";
|
|
3
3
|
import carouselCSS from "../carousel/carousel.css.js";
|
|
4
4
|
import "../modal/modal.js";
|
|
5
|
-
|
|
6
5
|
export class CarouselItem extends LitElement {
|
|
7
6
|
static properties = {
|
|
8
7
|
icon : { type: String },
|