@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
package/CHANGELOG.md CHANGED
@@ -3,6 +3,23 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.21.1](https://github.com/bitdefender/dex-core/compare/@repobit/dex-system-design@0.21.0...@repobit/dex-system-design@0.21.1) (2025-11-18)
7
+
8
+ **Note:** Version bump only for package @repobit/dex-system-design
9
+
10
+
11
+
12
+
13
+
14
+ ## [0.21.0](https://github.com/bitdefender/dex-core/compare/@repobit/dex-system-design@0.20.0...@repobit/dex-system-design@0.21.0) (2025-11-05)
15
+
16
+
17
+ ### Features
18
+
19
+ * **DEX-1004:** add bd-h, bd-p, bd-ul, bd-li components and update stories ([3aada6e](https://github.com/bitdefender/dex-core/commit/3aada6e25f74869d0915cb18dfcf512e11a76be1))
20
+
21
+
22
+
6
23
  ## [0.20.0](https://github.com/bitdefender/dex-core/compare/@repobit/dex-system-design@0.19.2...@repobit/dex-system-design@0.20.0) (2025-10-08)
7
24
 
8
25
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@repobit/dex-system-design",
3
- "version": "0.20.0",
3
+ "version": "0.21.1",
4
4
  "description": "Design system based on Web Components.",
5
5
  "author": "Iordache Matei Cezar <miordache@bitdefender.com>",
6
6
  "homepage": "https://github.com/bitdefender/dex-core#readme",
@@ -31,13 +31,18 @@
31
31
  "./footer-lp": "./src/components/footer/footer-lp.js",
32
32
  "./footer-nav-menu": "./src/components/footer/footer-nav-menu.js",
33
33
  "./grid": "./src/components/grid/grid.js",
34
+ "./heading": "./src/components/heading/heading.js",
34
35
  "./header": "./src/components/header/header.js",
35
36
  "./highlight": "./src/components/highlight/highlight.js",
37
+ "./image": "./src/components/image/image.js",
36
38
  "./input": "./src/components/input/input.js",
37
39
  "./link": "./src/components/link/link.js",
40
+ "./list": "./src/components/list/list.js",
41
+ "./list-item": "./src/components/list/list-item/list-item.js",
38
42
  "./light-carousel": "./src/components/light-carousel/light-carousel.js",
39
43
  "./modal": "./src/components/modal/modal.js",
40
44
  "./paragraph": "./src/components/paragraph/paragraph.js",
45
+ "./picture": "./src/components/picture/picture.js",
41
46
  "./pricing-cards": "./src/components/pricing-cards/pricing-card.js",
42
47
  "./radio": "./src/components/radio/radio.js",
43
48
  "./tabs": "./src/components/tabs/tabs.js",
@@ -78,5 +83,5 @@
78
83
  "volta": {
79
84
  "node": "22.14.0"
80
85
  },
81
- "gitHead": "a8089d8dbd8b06f741f5d710fbe98d70d1a56c7e"
86
+ "gitHead": "a874788bf063e42ab6487aae1955204f12908763"
82
87
  }
@@ -1,24 +1,24 @@
1
- import "./Button.js";
2
1
  import { html } from "lit";
2
+ import "./Button.js";
3
3
 
4
4
  export default {
5
- title: "Atoms/Button",
5
+ title : "Atoms/Button",
6
6
  component: "bd-button",
7
- tags: ["autodocs"],
8
- argTypes: {
7
+ tags : ["autodocs"],
8
+ argTypes : {
9
9
  label: { control: "text" },
10
- href: { control: "text" },
11
- size: {
10
+ href : { control: "text" },
11
+ size : {
12
12
  control: { type: "select" },
13
- options: ["sm", "md", "lg"],
13
+ options: ["sm", "md", "lg"]
14
14
  },
15
15
  kind: {
16
16
  control: { type: "select" },
17
- options: ["primary", "secondary", "outline", "primary-outline", "danger"],
17
+ options: ["primary", "secondary", "outline", "primary-outline", "danger"]
18
18
  },
19
19
  fullWidth: { control: "boolean" },
20
- strong: { control: "boolean" },
21
- },
20
+ strong : { control: "boolean" }
21
+ }
22
22
  };
23
23
 
24
24
  const Template = (args) => {
@@ -39,72 +39,72 @@ const Template = (args) => {
39
39
 
40
40
  export const Primary = Template.bind({});
41
41
  Primary.args = {
42
- label: "Buy Now",
43
- href: "#",
44
- size: "md",
45
- kind: "primary",
42
+ label : "Buy Now",
43
+ href : "#",
44
+ size : "md",
45
+ kind : "primary",
46
46
  fullWidth: false,
47
- strong: false,
47
+ strong : false
48
48
  };
49
49
 
50
50
  export const Secondary = Template.bind({});
51
51
  Secondary.args = {
52
- label: "Learn More",
53
- href: "#",
54
- size: "md",
55
- kind: "secondary",
52
+ label : "Learn More",
53
+ href : "#",
54
+ size : "md",
55
+ kind : "secondary",
56
56
  fullWidth: false,
57
- strong: false,
57
+ strong : false
58
58
  };
59
59
 
60
60
  export const Outline = Template.bind({});
61
61
  Outline.args = {
62
- label: "See Details",
63
- href: "#",
64
- size: "md",
65
- kind: "outline",
62
+ label : "See Details",
63
+ href : "#",
64
+ size : "md",
65
+ kind : "outline",
66
66
  fullWidth: false,
67
- strong: false,
67
+ strong : false
68
68
  };
69
69
 
70
70
  export const PrimaryOutline = Template.bind({});
71
71
  PrimaryOutline.args = {
72
- label: "Subscribe",
73
- href: "#",
74
- size: "md",
75
- kind: "primary-outline",
72
+ label : "Subscribe",
73
+ href : "#",
74
+ size : "md",
75
+ kind : "primary-outline",
76
76
  fullWidth: false,
77
- strong: false,
77
+ strong : false
78
78
  };
79
79
 
80
80
  export const Danger = Template.bind({});
81
81
  Danger.args = {
82
- label: "Delete",
83
- href: "#",
84
- size: "md",
85
- kind: "danger",
82
+ label : "Delete",
83
+ href : "#",
84
+ size : "md",
85
+ kind : "danger",
86
86
  fullWidth: false,
87
- strong: true,
87
+ strong : true
88
88
  };
89
89
 
90
90
  export const LargeFullWidthStrong = Template.bind({});
91
91
  LargeFullWidthStrong.args = {
92
- label: "Get Started",
93
- href: "#",
94
- size: "lg",
95
- kind: "primary",
92
+ label : "Get Started",
93
+ href : "#",
94
+ size : "lg",
95
+ kind : "primary",
96
96
  fullWidth: true,
97
- strong: true,
97
+ strong : true
98
98
  };
99
99
 
100
100
  export const SmallButton = Template.bind({});
101
101
  SmallButton.args = {
102
- label: "Small Btn",
103
- href: "#",
104
- size: "sm",
105
- kind: "secondary",
102
+ label : "Small Btn",
103
+ href : "#",
104
+ size : "sm",
105
+ kind : "secondary",
106
106
  fullWidth: false,
107
- strong: false,
107
+ strong : false
108
108
  };
109
109
 
110
110
  // Story pentru bd-button-link
@@ -121,12 +121,12 @@ export const ButtonLinkExample = (args) => html`
121
121
  </bd-button-link>
122
122
  `;
123
123
  ButtonLinkExample.args = {
124
- label: "Go to Link",
125
- href: "https://example.com",
126
- size: "md",
127
- kind: "primary",
124
+ label : "Go to Link",
125
+ href : "https://example.com",
126
+ size : "md",
127
+ kind : "primary",
128
128
  fullWidth: false,
129
- strong: false,
129
+ strong : false
130
130
  };
131
131
 
132
- ;
132
+
@@ -2,88 +2,78 @@ import { css } from "lit";
2
2
 
3
3
  export default css`
4
4
  @layer bd-components {
5
- :host {
6
- --background-card-grey: var(--color-neutral-25);
7
- --border-card-grey: var(--color-neutral-50);
8
- --border-card-green: var(--color-green-700);
9
- --badge-background: var(--color-blue-500);
10
- --text-color-white: var(--color-neutral-0);
11
- --bd-accesibility-focus: var(--color-blue-500);
12
- display: block;
13
- }
14
-
15
- .bd-accordion-bg-item {
16
- margin-bottom: var(--spacing-16);
17
- border-radius: var(--spacing-8);
18
- background-color: var(--color-blue-50);
19
- overflow: hidden;
20
- transition: box-shadow 0.3s ease;
21
- }
5
+ :host {
6
+ --background-card-grey: var(--color-neutral-25);
7
+ --border-card-grey: var(--color-neutral-50);
8
+ --border-card-green: var(--color-green-700);
9
+ --badge-background: var(--color-blue-500);
10
+ --text-color-white: var(--color-neutral-0);
11
+ --bd-accesibility-focus: var(--color-blue-500);
12
+ display: block;
13
+ }
22
14
 
23
- .bd-accordion-bg-item:hover {
24
- .bd-accordion-bg-question-text {
25
- text-decoration-line: underline;
26
- }
27
- }
15
+ .bd-accordion-bg-item {
16
+ margin-bottom: var(--spacing-16);
17
+ border-radius: var(--spacing-8);
18
+ background-color: var(--color-blue-50);
19
+ overflow: hidden;
20
+ transition: box-shadow 0.3s ease;
21
+ }
28
22
 
29
- .bd-accordion-bg-question {
30
- cursor: pointer;
31
- display: flex;
32
- justify-content: flex-start;
33
- align-items: center;
34
- gap: var(--spacing-10);
35
- padding: var(--spacing-16);
36
- font-weight: bold;
37
- background-color: var(--color-blue-50);
38
- color: #333;
39
- transition: background-color 0.3s ease, color 0.3s ease;
23
+ .bd-accordion-bg-item:hover {
24
+ .bd-accordion-bg-question-text {
25
+ text-decoration-line: underline;
40
26
  }
27
+ }
41
28
 
42
- .bd-accordion-bg-header {
43
- margin-bottom: var(--spacing-32);
44
- }
29
+ .bd-accordion-bg-question {
30
+ cursor: pointer;
31
+ display: flex;
32
+ justify-content: flex-start;
33
+ align-items: center;
34
+ gap: var(--spacing-10);
35
+ padding: var(--spacing-16);
36
+ font-weight: bold;
37
+ background-color: var(--color-blue-50);
38
+ color: #333;
39
+ transition: background-color 0.3s ease, color 0.3s ease;
40
+ }
45
41
 
46
- .bd-accordion-bg-question:hover {
47
- color: #0073e6;
48
- }
42
+ .bd-accordion-bg-header {
43
+ margin-bottom: var(--spacing-32);
44
+ }
49
45
 
50
- .bd-accordion-bg-item:focus-visible {
51
- outline: var(--spacing-2) solid var(--bd-accesibility-focus);
52
- outline-offset: var(--spacing-2);
53
- border-radius: var(--space-2xs);
54
- }
46
+ .bd-accordion-bg-question:hover {
47
+ color: #0073e6;
48
+ }
55
49
 
56
- .bd-accordion-bg-item:focus {
57
- .bd-accordion-bg-question-text {
58
- font-weight: 600;
59
- text-decoration-line: underline;
60
- color: var(--color-blue-600);
61
- text-decoration-thickness: var(--spacing-2);
62
- }
63
- }
50
+ .bd-accordion-bg-item:focus-visible {
51
+ outline: var(--spacing-2) solid var(--bd-accesibility-focus);
52
+ outline-offset: var(--spacing-2);
53
+ border-radius: var(--space-2xs);
54
+ }
64
55
 
56
+ .bd-accordion-bg-item:focus {
65
57
  .bd-accordion-bg-question-text {
66
- font-family: var(--typography-fontFamily-sans);
67
- font-weight: var(--typography-fontWeight-semibold);
58
+ font-weight: 600;
59
+ text-decoration-line: underline;
60
+ color: var(--color-blue-600);
61
+ text-decoration-thickness: var(--spacing-2);
68
62
  }
63
+ }
69
64
 
70
- .bd-accordion-bg-title {
71
- font-family: var(--typography-fontFamily-sans);
72
- font-weight: var(--typography-fontWeight-semibold);
73
- margin-left: auto;
74
- margin-right: auto;
75
- text-align: center;
76
- }
65
+ .bd-accordion-bg-question-text {
66
+ font-family: var(--typography-fontFamily-sans);
67
+ font-weight: var(--typography-fontWeight-semibold);
68
+ }
77
69
 
78
- .bd-accordion-bg-icon {
79
- transition: transform 0.3s ease;
80
- width: var(--spacing-14);
81
- height: var(--spacing-14);
82
- color: var(--color-blue-500);
83
- text-align: center;
84
- position: relative;
85
- bottom: 1px;
86
- }
70
+ .bd-accordion-bg-title {
71
+ font-family: var(--typography-fontFamily-sans);
72
+ font-weight: var(--typography-fontWeight-semibold);
73
+ margin-left: auto;
74
+ margin-right: auto;
75
+ text-align: center;
76
+ }
87
77
 
88
78
  .bd-accordion-bg-icon {
89
79
  transition: transform 0.3s ease;
@@ -92,84 +82,112 @@ export default css`
92
82
  color: var(--color-blue-500);
93
83
  text-align: center;
94
84
  position: relative;
85
+ bottom: 1px;
95
86
  }
96
87
 
97
- .bd-accordion-bg-item:not(.open) .bd-accordion-bg-icon {
98
- content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14"><rect x="6" width="2" height="14" fill="%23006DFF"/><rect x="14" y="6" width="2" height="14" transform="rotate(90 14 6)" fill="%23006DFF"/></svg>');
99
- }
88
+ .bd-accordion-bg-icon {
89
+ transition: transform 0.3s ease;
90
+ width: var(--spacing-14);
91
+ height: var(--spacing-14);
92
+ color: var(--color-blue-500);
93
+ text-align: center;
94
+ position: relative;
95
+ }
100
96
 
101
- .bd-accordion-bg-item.open .bd-accordion-bg-icon {
102
- content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14"><rect x="14" y="6" width="2" height="14" transform="rotate(90 14 6)" fill="%23006DFF"/></svg>');
103
- }
97
+ .bd-accordion-bg-item:not(.open) .bd-accordion-bg-icon {
98
+ content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14"><rect x="6" width="2" height="14" fill="%23006DFF"/><rect x="14" y="6" width="2" height="14" transform="rotate(90 14 6)" fill="%23006DFF"/></svg>');
99
+ }
100
+
101
+ .bd-accordion-bg-item.open .bd-accordion-bg-icon {
102
+ content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14"><rect x="14" y="6" width="2" height="14" transform="rotate(90 14 6)" fill="%23006DFF"/></svg>');
103
+ }
104
104
 
105
105
  .bd-accordion-bg-answer {
106
106
  overflow: hidden;
107
107
  max-height: 0;
108
108
  opacity: 0;
109
- padding: 0 15px;
109
+ padding: 0 var(--spacing-16);
110
110
  background-color: var(--color-blue-50);
111
111
  font-family: var(--typography-fontFamily-sans);
112
112
  font-weight: var(--font-weight-sans-medium);
113
+ transition: none;
114
+ padding-left: calc(var(--spacing-14) + var(--spacing-10) + var(--spacing-16));
115
+
113
116
  }
114
117
 
118
+ .bd-accordion-bg-item.open .bd-accordion-bg-answer {
119
+ max-height: 5000px;
120
+ opacity: 1;
121
+ padding: var(--spacing-16) var(--spacing-16);
122
+ padding-left: calc(var(--spacing-14) + var(--spacing-10) + var(--spacing-16));
115
123
 
116
- .bd-accordion-bg-answer > div {
117
- overflow: hidden;
118
- }
124
+ }
119
125
 
120
- .bd-accordion-bg-container {
121
- width: 90%;
122
- margin: auto;
123
- padding-top: var(--spacing-64);
124
- padding-bottom: var(--spacing-64);
125
- }
126
+ .bd-accordion-bg-answer > div {
127
+ overflow: hidden;
128
+ }
126
129
 
127
- .bd-accordion-bg-link-noline {
128
- text-decoration: none;
129
- }
130
+ .bd-accordion-bg-container {
131
+ width: 90%;
132
+ margin: auto;
133
+ padding-top: var(--spacing-64);
134
+ padding-bottom: var(--spacing-64);
135
+ }
130
136
 
131
- .test-accordion {
132
- background-color: blue;
133
- }
137
+ .bd-accordion-bg-link-noline {
138
+ text-decoration: none;
139
+ }
134
140
 
135
- .test-accordion p {
136
- font-size: 20px;
137
- }
141
+ .test-accordion {
142
+ background-color: blue;
138
143
  }
139
- .bd-accordion-bg-container.no-bg {
140
- background: none;
141
- }
142
144
 
143
- .bd-accordion-bg-item.no-bg {
144
- background-color: transparent;
145
- border: none;
146
- }
145
+ .test-accordion p {
146
+ font-size: 20px;
147
+ }
147
148
 
148
- .bd-accordion-bg-item.no-bg .bd-accordion-bg-question {
149
- background-color: transparent;
150
- }
149
+ .bd-accordion-bg-container.no-bg {
150
+ background: none;
151
+ }
151
152
 
152
- .bd-accordion-bg-item.no-bg .bd-accordion-bg-answer {
153
- background-color: transparent;
154
- padding: var(--spacing-0) var(--spacing-40);
155
- }
153
+ .bd-accordion-bg-item.no-bg {
154
+ background-color: transparent;
155
+ border: none;
156
+ }
156
157
 
157
- .bd-accordion-bg-item.no-bg:hover {
158
- background-color: transparent;
159
- }
158
+ .bd-accordion-bg-item.no-bg .bd-accordion-bg-question {
159
+ background-color: transparent;
160
+ }
160
161
 
161
- .bd-accordion-bg-item.no-bg:hover .bd-accordion-bg-question-text {
162
- text-decoration-line: none;
163
- }
162
+ .bd-accordion-bg-item.no-bg .bd-accordion-bg-answer {
163
+ background-color: transparent;
164
+ padding: 0 var(--spacing-40);
165
+ }
164
166
 
165
- .bd-accordion-bg-item:hover .bd-accordion-bg-question-text {
166
- text-decoration-line: none;
167
- }
168
- .bd-accordion-bg-item:focus .bd-accordion-bg-question-text {
169
- text-decoration-line: none;
170
- }
171
- .bd-accordion-bg-item.no-bg:focus .bd-accordion-bg-question-text {
172
- text-decoration-line: none;
167
+ /* REGULĂ NOUĂ PENTRU NO-BG DESCHIS */
168
+ .bd-accordion-bg-item.no-bg.open .bd-accordion-bg-answer {
169
+ padding: var(--spacing-16) var(--spacing-40);
170
+ }
171
+
172
+ .bd-accordion-bg-item.no-bg:hover {
173
+ background-color: transparent;
174
+ }
175
+
176
+ .bd-accordion-bg-item.no-bg:hover .bd-accordion-bg-question-text {
177
+ text-decoration-line: none;
178
+ }
179
+
180
+ .bd-accordion-bg-item:hover .bd-accordion-bg-question-text {
181
+ text-decoration-line: none;
182
+ }
183
+
184
+ .bd-accordion-bg-item:focus .bd-accordion-bg-question-text {
185
+ text-decoration-line: none;
186
+ }
187
+
188
+ .bd-accordion-bg-item.no-bg:focus .bd-accordion-bg-question-text {
189
+ text-decoration-line: none;
190
+ }
173
191
  }
174
192
 
175
193
  `;