@repobit/dex-system-design 0.23.71 → 0.23.73

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 CHANGED
@@ -3,6 +3,24 @@
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.23.73](https://github.com/bitdefender/dex-core/compare/@repobit/dex-system-design@0.23.72...@repobit/dex-system-design@0.23.73) (2026-07-08)
7
+
8
+ ### Bug Fixes
9
+
10
+ * **DEX-1014:** fix for tabs and features
11
+ * **DEX-1014:** new features tab component
12
+ * **DEX-1014:** package.json updated
13
+ * **DEX-1014:** package.json updated
14
+
15
+
16
+ ## [0.23.72](https://github.com/bitdefender/dex-core/compare/@repobit/dex-system-design@0.23.71...@repobit/dex-system-design@0.23.72) (2026-07-08)
17
+
18
+ ### Bug Fixes
19
+
20
+ * **DEX-1014:** tabs component family
21
+ * **DEX-1014:** tabs component family
22
+
23
+
6
24
  ## [0.23.71](https://github.com/bitdefender/dex-core/compare/@repobit/dex-system-design@0.23.70...@repobit/dex-system-design@0.23.71) (2026-07-07)
7
25
 
8
26
  ### Bug Fixes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@repobit/dex-system-design",
3
- "version": "0.23.71",
3
+ "version": "0.23.73",
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",
@@ -32,6 +32,7 @@
32
32
  "./divider-vertical": "./src/components/divider/divider-vertical.js",
33
33
  "./dropdown": "./src/components/dropdown/dropdown.js",
34
34
  "./features": "./src/components/features/features.js",
35
+ "./features-tab": "./src/components/features-tab/features-tab.js",
35
36
  "./footer": "./src/components/footer/footer.js",
36
37
  "./footer-links-group": "./src/components/footer/footer-links-group.js",
37
38
  "./footer-lp": "./src/components/footer/footer-lp.js",
@@ -52,6 +53,7 @@
52
53
  "./pricing-cards": "./src/components/pricing-cards/pricing-card.js",
53
54
  "./radio": "./src/components/radio/radio.js",
54
55
  "./tabs": "./src/components/tabs/tabs.js",
56
+ "./tabsComponent": "./src/components/tabsComponent/tabsComponent.js",
55
57
  "./terms": "./src/components/termsOfUse/terms.js"
56
58
  },
57
59
  "publishConfig": {
@@ -72,8 +74,8 @@
72
74
  "url": "https://github.com/bitdefender/dex-core/issues"
73
75
  },
74
76
  "dependencies": {
75
- "@repobit/dex-store": "1.3.67",
76
- "@repobit/dex-store-elements": "1.4.59",
77
+ "@repobit/dex-store": "1.3.69",
78
+ "@repobit/dex-store-elements": "1.4.61",
77
79
  "lit": "^3.3.2"
78
80
  },
79
81
  "devDependencies": {
@@ -90,5 +92,5 @@
90
92
  "volta": {
91
93
  "node": "24.14.0"
92
94
  },
93
- "gitHead": "b8bacc469b17438b97fb365454579a626a3c2b43"
95
+ "gitHead": "c2b31338e7ca8c4e8cc49cd4e7ed95419f23b369"
94
96
  }
@@ -16,6 +16,7 @@ export default css`
16
16
  height: auto !important;
17
17
  object-fit: contain !important;
18
18
  display: block !important;
19
+ border-radius: var(--spacing-20);
19
20
  }
20
21
 
21
22
  .bd-section-title-s {
@@ -168,6 +169,7 @@ export default css`
168
169
  align-items: flex-start;
169
170
  gap: var(--spacing-4, 4px);
170
171
  overflow: hidden;
172
+ margin-bottom: var(--spacing-8);
171
173
  }
172
174
 
173
175
  .bd-light-title-no-content {
@@ -0,0 +1,104 @@
1
+ import { css } from "lit";
2
+
3
+ export default css`
4
+ :host {
5
+ display: block;
6
+ width: 100%;
7
+ max-width: 1290px;
8
+ margin: 0 auto;
9
+ padding-inline: var(--layout-ensemble-inline-padding, var(--spacing-24));
10
+ box-sizing: border-box;
11
+ }
12
+
13
+ .bd-features-tab-container {
14
+ display: flex;
15
+ align-items: center;
16
+ gap: var(--spacing-64);
17
+ width: 100%;
18
+ animation: bd-fade-slide-right 350ms ease forwards;
19
+ }
20
+
21
+ .bd-features-tab-left {
22
+ flex: 1;
23
+ display: flex;
24
+ flex-direction: column;
25
+ align-items: flex-start;
26
+ gap: var(--spacing-24);
27
+ }
28
+
29
+ .bd-features-tab-content {
30
+ display: flex;
31
+ flex-direction: column;
32
+ gap: var(--spacing-8);
33
+ }
34
+
35
+ .bd-features-tab-right {
36
+ flex: 1;
37
+ display: flex;
38
+ align-items: center;
39
+ justify-content: center;
40
+ }
41
+
42
+ .bd-features-tab-image {
43
+ width: 100%;
44
+ max-width: 520px;
45
+ height: auto;
46
+ border-radius: var(--radius-lg, 16px);
47
+ object-fit: cover;
48
+ display: block;
49
+ }
50
+
51
+ ::slotted([slot="image"]) {
52
+ width: 100%;
53
+ max-width: 520px;
54
+ height: auto;
55
+ border-radius: var(--radius-lg, 16px);
56
+ object-fit: cover;
57
+ display: block;
58
+ }
59
+
60
+ ::slotted([slot="heading"]) {
61
+ margin: 0;
62
+ }
63
+
64
+ @keyframes bd-fade-slide-right {
65
+ from {
66
+ opacity: 0;
67
+ transform: translateX(24px);
68
+ }
69
+ to {
70
+ opacity: 1;
71
+ transform: translateX(0);
72
+ }
73
+ }
74
+
75
+ @media (max-width: 992px) {
76
+ .bd-features-tab-container {
77
+ flex-direction: column-reverse;
78
+ gap: var(--spacing-32);
79
+ }
80
+
81
+ .bd-features-tab-container.bd-features-tab-reverse {
82
+ flex-direction: column-reverse;
83
+ }
84
+
85
+ .bd-features-tab-left {
86
+ align-items: center;
87
+ text-align: center;
88
+ }
89
+
90
+ .bd-features-tab-image {
91
+ max-width: 100%;
92
+ }
93
+
94
+ ::slotted([slot="image"]) {
95
+ max-width: 100%;
96
+ }
97
+ }
98
+
99
+ @media (max-width: 600px) {
100
+ .bd-features-tab-container {
101
+ gap: var(--spacing-24);
102
+ }
103
+ }
104
+ `;
@@ -0,0 +1,84 @@
1
+ import { LitElement, html } from "lit";
2
+ import { tokens } from "../../tokens/tokens.js";
3
+ import "../button/button.js";
4
+ import "../heading/heading.js";
5
+ import "../paragraph/paragraph.js";
6
+ import featuresTabCSS from "./features-tab.css.js";
7
+
8
+ class BdFeaturesTab extends LitElement {
9
+ static properties = {
10
+ imageSrc: { type: String, attribute: "image-src" },
11
+ imageAlt: { type: String, attribute: "image-alt" },
12
+ ctaLabel: { type: String, attribute: "cta-label" },
13
+ ctaHref : { type: String, attribute: "cta-href" },
14
+ ctaKind : { type: String, attribute: "cta-kind" },
15
+ ctaSize : { type: String, attribute: "cta-size" },
16
+ reverse : { type: Boolean, reflect: true }
17
+ };
18
+
19
+ static styles = [tokens, featuresTabCSS];
20
+
21
+ constructor() {
22
+ super();
23
+ this.imageSrc = "";
24
+ this.imageAlt = "";
25
+ this.ctaLabel = "";
26
+ this.ctaHref = "#";
27
+ this.ctaKind = "danger";
28
+ this.ctaSize = "md";
29
+ this.reverse = false;
30
+ }
31
+
32
+ render() {
33
+ const hasCtaSlot = this.querySelector("[slot='cta']");
34
+ const hasImgSlot = this.querySelector("[slot='image']");
35
+
36
+ const leftContent = html`
37
+ <div class="bd-features-tab-left">
38
+ <slot name="heading"></slot>
39
+ <div class="bd-features-tab-content">
40
+ <slot name="content"></slot>
41
+ </div>
42
+ ${hasCtaSlot
43
+ ? html`<slot name="cta"></slot>`
44
+ : this.ctaLabel
45
+ ? html`
46
+ <bd-button-link
47
+ href="${this.ctaHref}"
48
+ kind="${this.ctaKind}"
49
+ size="${this.ctaSize}"
50
+ label="${this.ctaLabel}"
51
+ strong="true"
52
+ >
53
+ ${this.ctaLabel}
54
+ </bd-button-link>`
55
+ : ""}
56
+ </div>
57
+ `;
58
+
59
+ const rightContent = html`
60
+ <div class="bd-features-tab-right">
61
+ ${hasImgSlot
62
+ ? html`<slot name="image"></slot>`
63
+ : this.imageSrc
64
+ ? html`<img
65
+ src="${this.imageSrc}"
66
+ alt="${this.imageAlt}"
67
+ class="bd-features-tab-image"
68
+ loading="lazy"
69
+ />`
70
+ : ""}
71
+ </div>
72
+ `;
73
+
74
+ return html`
75
+ <div class="bd-features-tab-container ${this.reverse ? "bd-features-tab-reverse" : ""}">
76
+ ${this.reverse
77
+ ? html`${rightContent}${leftContent}`
78
+ : html`${leftContent}${rightContent}`}
79
+ </div>
80
+ `;
81
+ }
82
+ }
83
+
84
+ customElements.define("bd-features-tab", BdFeaturesTab);