@repobit/dex-system-design 0.23.35 → 0.23.37
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 +15 -0
- package/package.json +4 -4
- package/src/components/accordion/accordion-bg.css.js +36 -22
- package/src/components/accordion/accordion-bg.js +14 -12
- package/src/components/accordion/accordion-bg.stories.js +206 -229
- package/src/components/accordion/accordion.css.js +31 -56
- package/src/components/list/list-item/list-item.css.js +13 -8
- package/src/components/list/list-item/list-item.stories.js +144 -58
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,21 @@
|
|
|
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.37](https://github.com/bitdefender/dex-core/compare/@repobit/dex-system-design@0.23.36...@repobit/dex-system-design@0.23.37) (2026-05-26)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **DEX-1014:** css adjustment for accesibility
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## [0.23.36](https://github.com/bitdefender/dex-core/compare/@repobit/dex-system-design@0.23.35...@repobit/dex-system-design@0.23.36) (2026-05-25)
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* **DEX-1014:** css adjustment for accordion
|
|
18
|
+
* **DEX-1014:** css adjustment for accordion
|
|
19
|
+
|
|
20
|
+
|
|
6
21
|
## [0.23.35](https://github.com/bitdefender/dex-core/compare/@repobit/dex-system-design@0.23.34...@repobit/dex-system-design@0.23.35) (2026-05-22)
|
|
7
22
|
|
|
8
23
|
### Bug Fixes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@repobit/dex-system-design",
|
|
3
|
-
"version": "0.23.
|
|
3
|
+
"version": "0.23.37",
|
|
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",
|
|
@@ -70,8 +70,8 @@
|
|
|
70
70
|
"url": "https://github.com/bitdefender/dex-core/issues"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@repobit/dex-store": "1.3.
|
|
74
|
-
"@repobit/dex-store-elements": "1.4.
|
|
73
|
+
"@repobit/dex-store": "1.3.33",
|
|
74
|
+
"@repobit/dex-store-elements": "1.4.25",
|
|
75
75
|
"lit": "^3.3.2"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
|
@@ -88,5 +88,5 @@
|
|
|
88
88
|
"volta": {
|
|
89
89
|
"node": "24.14.0"
|
|
90
90
|
},
|
|
91
|
-
"gitHead": "
|
|
91
|
+
"gitHead": "5a292c3a335078319bff9151c88f8be3061c7146"
|
|
92
92
|
}
|
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
import { css } from "lit";
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* FAQ-style card accordion (Figma accordeon_faq / ds-accordion variant card, compact).
|
|
5
|
-
* Tokens only from truth_tokens — spacing-12 = 12px, radius-md ≈ 6px, etc.
|
|
6
|
-
*/
|
|
7
3
|
export default css`
|
|
8
4
|
:host {
|
|
9
5
|
--bd-accesibility-focus: var(--color-blue-500);
|
|
10
6
|
display: block;
|
|
11
7
|
}
|
|
12
|
-
:host(bd-accordion-bg-item[data-variant="terms-of-use"]) {
|
|
13
|
-
background-color: transparent !important;
|
|
14
|
-
padding: 0;
|
|
15
|
-
border-radius: 0;
|
|
16
|
-
}
|
|
17
8
|
|
|
9
|
+
:host(bd-accordion-bg-item[data-variant="terms-of-use"]) {
|
|
10
|
+
background-color: transparent !important;
|
|
11
|
+
padding: 0;
|
|
12
|
+
border-radius: 0;
|
|
13
|
+
}
|
|
18
14
|
|
|
19
15
|
:host(bd-accordion-bg-item) {
|
|
20
16
|
display: block;
|
|
@@ -23,17 +19,22 @@ export default css`
|
|
|
23
19
|
box-sizing: border-box;
|
|
24
20
|
background-color: var(--color-blue-50);
|
|
25
21
|
border-radius: var(--radius-lg);
|
|
26
|
-
/* visible so focus ring is not clipped; panel animates with its own overflow */
|
|
27
22
|
overflow: visible;
|
|
28
23
|
}
|
|
29
24
|
|
|
30
25
|
:host(bd-accordion-bg-item[data-bd-acc-focus]) {
|
|
31
26
|
outline: none;
|
|
32
|
-
/* Darker outer ring so focus stays visible on --color-blue-50 */
|
|
33
27
|
box-shadow: 0 0 0 2px var(--color-neutral-0),
|
|
34
28
|
0 0 0 4px var(--color-blue-700);
|
|
35
29
|
position: relative;
|
|
36
30
|
z-index: 1;
|
|
31
|
+
border-radius: var(--radius-sm);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* Focus ring pentru varianta terms-of-use — fara background deci ring simplu */
|
|
35
|
+
:host(bd-accordion-bg-item[data-variant="terms-of-use"][data-bd-acc-focus]) {
|
|
36
|
+
// box-shadow: var(--focus-outline-primary);
|
|
37
|
+
border-radius: var(--radius-sm);
|
|
37
38
|
}
|
|
38
39
|
|
|
39
40
|
:host(bd-accordion-bg-item:last-of-type) {
|
|
@@ -58,12 +59,30 @@ export default css`
|
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
::slotted(bd-p) {
|
|
61
|
-
|
|
62
|
-
}
|
|
62
|
+
padding-bottom: var(--spacing-16);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
::slotted(bd-p:last-child) {
|
|
66
|
+
padding-bottom: 0;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
::slotted(bd-list) {
|
|
70
|
+
--bd-li-margin-bottom: var(--spacing-16);
|
|
71
|
+
display: block;
|
|
72
|
+
margin-bottom: var(--spacing-16);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
::slotted(bd-list:last-child) {
|
|
76
|
+
margin-bottom: 0;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/* Footer slot — italic, spacing deasupra */
|
|
80
|
+
::slotted([slot="footer"]) {
|
|
81
|
+
display: block;
|
|
82
|
+
padding-top: var(--spacing-16);
|
|
83
|
+
font-style: italic;
|
|
84
|
+
}
|
|
63
85
|
|
|
64
|
-
::slotted(bd-p:last-child) {
|
|
65
|
-
padding-bottom: 0;
|
|
66
|
-
}
|
|
67
86
|
.bd-accordion-bg-item {
|
|
68
87
|
margin-bottom: 0;
|
|
69
88
|
border-radius: 0;
|
|
@@ -143,7 +162,6 @@ export default css`
|
|
|
143
162
|
justify-content: center;
|
|
144
163
|
line-height: 0;
|
|
145
164
|
user-select: none;
|
|
146
|
-
/* Match question line-height (1.3) — icon aligns to first line when title wraps */
|
|
147
165
|
margin-top: calc((1.3 * 1em - var(--icon-sm-size)) / 2);
|
|
148
166
|
}
|
|
149
167
|
|
|
@@ -154,7 +172,6 @@ export default css`
|
|
|
154
172
|
object-fit: contain;
|
|
155
173
|
}
|
|
156
174
|
|
|
157
|
-
/* Panel: Figma 244:943 — padding 0, 0, 12px, 28px (icon 16 + gap 12) */
|
|
158
175
|
.bd-accordion-bg-answer {
|
|
159
176
|
overflow: hidden;
|
|
160
177
|
max-height: 0;
|
|
@@ -182,7 +199,6 @@ export default css`
|
|
|
182
199
|
calc(var(--icon-sm-size) + var(--spacing-12));
|
|
183
200
|
}
|
|
184
201
|
|
|
185
|
-
/* Slotted <p> default margins read as extra “padding” in devtools; spec has no panel padding-top */
|
|
186
202
|
::slotted(p) {
|
|
187
203
|
margin: var(--spacing-0);
|
|
188
204
|
}
|
|
@@ -192,9 +208,7 @@ export default css`
|
|
|
192
208
|
}
|
|
193
209
|
|
|
194
210
|
.bd-accordion-bg-container {
|
|
195
|
-
// width: 100%;
|
|
196
211
|
margin: auto;
|
|
197
|
-
// padding: var(--spacing-0) var(--spacing-32) var(--spacing-0) var(--spacing-32)
|
|
198
212
|
}
|
|
199
213
|
|
|
200
214
|
.bd-accordion-bg-container.no-bg {
|
|
@@ -226,4 +240,4 @@ export default css`
|
|
|
226
240
|
.bd-accordion-bg-item.no-bg .bd-accordion-bg-question:hover .bd-accordion-bg-question-text {
|
|
227
241
|
text-decoration-line: none;
|
|
228
242
|
}
|
|
229
|
-
`;
|
|
243
|
+
`;
|
|
@@ -16,13 +16,13 @@ class BdAccordionBg extends LitElement {
|
|
|
16
16
|
guideHref : { type: String, reflect: true, attribute: "guide-href" },
|
|
17
17
|
_variant : { state: true },
|
|
18
18
|
variant : { type: String, reflect: true, attribute: "data-variant" }
|
|
19
|
-
}
|
|
19
|
+
};
|
|
20
20
|
|
|
21
21
|
constructor() {
|
|
22
22
|
super();
|
|
23
|
-
this.noBg
|
|
24
|
-
this._variant
|
|
25
|
-
this.variant
|
|
23
|
+
this.noBg = false;
|
|
24
|
+
this._variant = "default";
|
|
25
|
+
this.variant = "default";
|
|
26
26
|
this.guideIcon = "";
|
|
27
27
|
this.guideLabel = "";
|
|
28
28
|
this.guideHref = "#";
|
|
@@ -35,8 +35,6 @@ class BdAccordionBg extends LitElement {
|
|
|
35
35
|
Promise.resolve().then(() => this._detectVariant());
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
// În BdAccordionBg, înlocuiește _detectVariant și adaugă firstUpdated:
|
|
39
|
-
|
|
40
38
|
_detectVariant() {
|
|
41
39
|
let el = this.parentElement;
|
|
42
40
|
while (el) {
|
|
@@ -48,7 +46,7 @@ class BdAccordionBg extends LitElement {
|
|
|
48
46
|
}
|
|
49
47
|
if (
|
|
50
48
|
el.classList.contains("terms-of-use") ||
|
|
51
|
-
|
|
49
|
+
el.classList.contains("system-requirements")
|
|
52
50
|
) {
|
|
53
51
|
this._variant = "terms-of-use";
|
|
54
52
|
this.variant = "terms-of-use";
|
|
@@ -63,7 +61,6 @@ class BdAccordionBg extends LitElement {
|
|
|
63
61
|
}
|
|
64
62
|
|
|
65
63
|
_propagateVariant(variant) {
|
|
66
|
-
// Setam data-variant pe toti copiii slotted bd-accordion-bg-item
|
|
67
64
|
this.querySelectorAll("bd-accordion-bg-item").forEach(item => {
|
|
68
65
|
item.setAttribute("data-variant", variant);
|
|
69
66
|
});
|
|
@@ -76,6 +73,7 @@ class BdAccordionBg extends LitElement {
|
|
|
76
73
|
<bd-h as="h2" class="bd-accordion-bg-title">${this.title}</bd-h>
|
|
77
74
|
</div>
|
|
78
75
|
<slot></slot>
|
|
76
|
+
<slot name="footer"></slot>
|
|
79
77
|
</div>
|
|
80
78
|
`;
|
|
81
79
|
}
|
|
@@ -84,9 +82,10 @@ class BdAccordionBg extends LitElement {
|
|
|
84
82
|
return html`
|
|
85
83
|
<div class="bd-accordion-section-container">
|
|
86
84
|
${this.title
|
|
87
|
-
? html`<bd-h as="h6" paddingBottom=var(--spacing-32) fontWeight="700" class="section-title">${this.title}</bd-h>`
|
|
85
|
+
? html`<bd-h as="h6" paddingBottom="var(--spacing-32)" fontWeight="700" class="section-title">${this.title}</bd-h>`
|
|
88
86
|
: ""}
|
|
89
87
|
<slot></slot>
|
|
88
|
+
<slot name="footer"></slot>
|
|
90
89
|
${this.guideLabel
|
|
91
90
|
? html`
|
|
92
91
|
<p class="user-guide-link">
|
|
@@ -114,7 +113,8 @@ class BdAccordionBgItem extends LitElement {
|
|
|
114
113
|
title : { type: String },
|
|
115
114
|
open : { type: Boolean, reflect: true },
|
|
116
115
|
noBg : { type: Boolean, reflect: true, attribute: "no-bg" },
|
|
117
|
-
_variant: { state: true }
|
|
116
|
+
_variant: { state: true },
|
|
117
|
+
variant : { type: String, reflect: true, attribute: "data-variant" }
|
|
118
118
|
};
|
|
119
119
|
|
|
120
120
|
constructor() {
|
|
@@ -123,6 +123,7 @@ class BdAccordionBgItem extends LitElement {
|
|
|
123
123
|
this.open = false;
|
|
124
124
|
this.noBg = false;
|
|
125
125
|
this._variant = "default";
|
|
126
|
+
this.variant = "default";
|
|
126
127
|
const id = Math.random().toString(36)
|
|
127
128
|
.slice(2, 11);
|
|
128
129
|
this._headerId = `acc-bg-h-${id}`;
|
|
@@ -141,6 +142,7 @@ class BdAccordionBgItem extends LitElement {
|
|
|
141
142
|
while (el) {
|
|
142
143
|
if (el.classList.contains("faq")) {
|
|
143
144
|
this._variant = "faq";
|
|
145
|
+
this.variant = "faq";
|
|
144
146
|
return;
|
|
145
147
|
}
|
|
146
148
|
if (
|
|
@@ -148,11 +150,13 @@ class BdAccordionBgItem extends LitElement {
|
|
|
148
150
|
el.classList.contains("system-requirements")
|
|
149
151
|
) {
|
|
150
152
|
this._variant = "terms-of-use";
|
|
153
|
+
this.variant = "terms-of-use";
|
|
151
154
|
return;
|
|
152
155
|
}
|
|
153
156
|
el = el.parentElement;
|
|
154
157
|
}
|
|
155
158
|
this._variant = "default";
|
|
159
|
+
this.variant = "default";
|
|
156
160
|
}
|
|
157
161
|
|
|
158
162
|
toggleItem() {
|
|
@@ -175,7 +179,6 @@ class BdAccordionBgItem extends LitElement {
|
|
|
175
179
|
this.removeAttribute("data-bd-acc-focus");
|
|
176
180
|
}
|
|
177
181
|
|
|
178
|
-
// Design bd-accordion — pentru terms-of-use si system-requirements
|
|
179
182
|
_renderTerms() {
|
|
180
183
|
return html`
|
|
181
184
|
<button
|
|
@@ -200,7 +203,6 @@ class BdAccordionBgItem extends LitElement {
|
|
|
200
203
|
`;
|
|
201
204
|
}
|
|
202
205
|
|
|
203
|
-
// Design bd-accordion-bg — pentru faq (default)
|
|
204
206
|
_renderDefault() {
|
|
205
207
|
return html`
|
|
206
208
|
<div class="bd-accordion-bg-item ${this.open ? "open" : ""} ${this.noBg ? "no-bg" : ""}">
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { html } from "lit";
|
|
2
|
-
import "../accordion/accordion.js";
|
|
3
2
|
import "../divider/divider-horizontal.js";
|
|
4
3
|
import "../list/list-item/list-item.js";
|
|
5
4
|
import "../list/list.js";
|
|
@@ -14,46 +13,72 @@ export default {
|
|
|
14
13
|
docs : {
|
|
15
14
|
description: {
|
|
16
15
|
component: `
|
|
17
|
-
|
|
16
|
+
Componentă Lit pentru secțiuni accordion cu două variante de design detectate automat din clasa părintelui DOM.
|
|
18
17
|
|
|
19
18
|
\`\`\`html
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
<!-- FAQ (design cu background albastru) -->
|
|
20
|
+
<div class="accordion faq block">
|
|
21
|
+
<bd-accordion-bg title="Questions? Answers.">
|
|
22
|
+
<bd-accordion-bg-item title="What is Bitdefender?">
|
|
23
|
+
<bd-p kind="small">Answer here...</bd-p>
|
|
24
|
+
</bd-accordion-bg-item>
|
|
25
|
+
<bd-p slot="footer" kind="small">* Footer note</bd-p>
|
|
26
|
+
</bd-accordion-bg>
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<!-- Terms of Use / System Requirements (design simplu, fără background) -->
|
|
30
|
+
<div class="accordion terms-of-use block">
|
|
31
|
+
<bd-accordion-bg title="Terms of use">
|
|
32
|
+
<bd-accordion-bg-item title="Auto renewal terms" open>
|
|
33
|
+
<bd-p kind="small">Your subscription...</bd-p>
|
|
34
|
+
</bd-accordion-bg-item>
|
|
35
|
+
<bd-p slot="footer" kind="small">* Terms apply</bd-p>
|
|
36
|
+
</bd-accordion-bg>
|
|
37
|
+
</div>
|
|
25
38
|
\`\`\`
|
|
26
39
|
|
|
27
|
-
###
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
| \`
|
|
33
|
-
| \`
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
|
37
|
-
|
|
38
|
-
| \`title\`
|
|
39
|
-
| \`
|
|
40
|
-
| \`
|
|
40
|
+
### Detectare automată variantă
|
|
41
|
+
Componenta urcă în DOM și detectează clasa părintelui:
|
|
42
|
+
| Clasă părinte | Variantă | Design |
|
|
43
|
+
|---|---|---|
|
|
44
|
+
| \`faq\` | faq | Badge-uri albastre, background \`color-blue-50\` |
|
|
45
|
+
| \`terms-of-use\` | terms-of-use | Design simplu, fără background |
|
|
46
|
+
| \`system-requirements\` | terms-of-use | Design simplu, fără background |
|
|
47
|
+
|
|
48
|
+
### Atribute \`bd-accordion-bg\`
|
|
49
|
+
| Atribut | Tip | Default | Descriere |
|
|
50
|
+
|---|---|---|---|
|
|
51
|
+
| \`title\` | String | — | Titlul secțiunii |
|
|
52
|
+
| \`no-bg\` | Boolean | \`false\` | Elimină background-ul containerului |
|
|
53
|
+
| \`guide-icon\` | String | — | Cale icon pentru link-ul ghid (doar terms-of-use) |
|
|
54
|
+
| \`guide-label\` | String | — | Text link ghid (doar terms-of-use) |
|
|
55
|
+
| \`guide-href\` | String | \`#\` | URL link ghid (doar terms-of-use) |
|
|
56
|
+
|
|
57
|
+
### Atribute \`bd-accordion-bg-item\`
|
|
58
|
+
| Atribut | Tip | Default | Descriere |
|
|
59
|
+
|---|---|---|---|
|
|
60
|
+
| \`title\` | String | — | Titlul întrebării |
|
|
61
|
+
| \`open\` | Boolean | \`false\` | Item deschis implicit |
|
|
62
|
+
| \`no-bg\` | Boolean | \`false\` | Elimină background-ul item-ului |
|
|
63
|
+
|
|
64
|
+
### Slot \`footer\`
|
|
65
|
+
Ambele variante suportă un slot \`footer\` pentru text italic după toate item-urile:
|
|
66
|
+
\`\`\`html
|
|
67
|
+
<bd-p slot="footer" kind="small">* Notă de subsol</bd-p>
|
|
68
|
+
\`\`\`
|
|
41
69
|
`
|
|
42
70
|
}
|
|
43
71
|
}
|
|
44
72
|
}
|
|
45
73
|
};
|
|
46
74
|
|
|
75
|
+
// ─── FAQ — Default ────────────────────────────────────────────────────────────
|
|
47
76
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
export const AllVariants = {
|
|
51
|
-
name : "FAQ + Terms of Use + System Requirements",
|
|
77
|
+
export const FaqDefault = {
|
|
78
|
+
name : "FAQ — Default",
|
|
52
79
|
render: () => html`
|
|
53
|
-
|
|
54
|
-
<!-- FAQ -->
|
|
55
80
|
<div class="accordion faq block">
|
|
56
|
-
<bd-accordion-bg title="Questions? Answers."
|
|
81
|
+
<bd-accordion-bg title="Questions? Answers.">
|
|
57
82
|
<bd-accordion-bg-item title="How does Bitdefender Internet Security protect me?">
|
|
58
83
|
<bd-p kind="small">Bitdefender Internet Security provides the best protection through multiple layers of security:</bd-p>
|
|
59
84
|
<bd-list type="unordered" spacing="md" variant="default" orientation="vertical">
|
|
@@ -76,248 +101,200 @@ export const AllVariants = {
|
|
|
76
101
|
</bd-accordion-bg-item>
|
|
77
102
|
|
|
78
103
|
<bd-accordion-bg-item title="Do I get a VPN with Bitdefender Internet Security?">
|
|
79
|
-
<bd-p kind="small">Bitdefender Internet Security includes a basic VPN with 200MB per day
|
|
80
|
-
<bd-list type="unordered" spacing="md" variant="default" orientation="vertical">
|
|
81
|
-
<bd-li kind="bullet" size="md"><bd-p kind="small">200MB daily VPN traffic for secure browsing</bd-p></bd-li>
|
|
82
|
-
<bd-li kind="bullet" size="md"><bd-p kind="small">Automatic activation on unsecured Wi-Fi networks</bd-p></bd-li>
|
|
83
|
-
<bd-li kind="bullet" size="md"><bd-p kind="small">Banking encryption for financial transactions</bd-p></bd-li>
|
|
84
|
-
<bd-li kind="bullet" size="md"><bd-p kind="small">Option to upgrade to unlimited VPN</bd-p></bd-li>
|
|
85
|
-
</bd-list>
|
|
86
|
-
</bd-accordion-bg-item>
|
|
87
|
-
|
|
88
|
-
<bd-accordion-bg-item title="What devices are supported?">
|
|
89
|
-
<bd-p kind="small">Bitdefender Internet Security supports a wide range of devices:</bd-p>
|
|
90
|
-
<bd-list type="unordered" spacing="md" variant="default" orientation="vertical">
|
|
91
|
-
<bd-li kind="bullet" size="md"><bd-p kind="small">Windows 10, 11 (32-bit and 64-bit)</bd-p></bd-li>
|
|
92
|
-
<bd-li kind="bullet" size="md"><bd-p kind="small">macOS 10.12 or later</bd-p></bd-li>
|
|
93
|
-
<bd-li kind="bullet" size="md"><bd-p kind="small">Android 5.0 or later</bd-p></bd-li>
|
|
94
|
-
<bd-li kind="bullet" size="md"><bd-p kind="small">iOS 12 or later</bd-p></bd-li>
|
|
95
|
-
</bd-list>
|
|
96
|
-
</bd-accordion-bg-item>
|
|
97
|
-
|
|
98
|
-
<bd-accordion-bg-item title="System requirements">
|
|
99
|
-
<bd-p kind="small">Minimum system requirements for optimal performance:</bd-p>
|
|
100
|
-
<bd-list type="unordered" spacing="md" variant="default" orientation="vertical">
|
|
101
|
-
<bd-li kind="bullet" size="md"><bd-p kind="small">1GB RAM minimum (2GB recommended)</bd-p></bd-li>
|
|
102
|
-
<bd-li kind="bullet" size="md"><bd-p kind="small">2.5GB available hard disk space</bd-p></bd-li>
|
|
103
|
-
<bd-li kind="bullet" size="md"><bd-p kind="small">Internet connection for activation and updates</bd-p></bd-li>
|
|
104
|
-
<bd-li kind="bullet" size="md"><bd-p kind="small">Intel Core 2 Duo processor or equivalent</bd-p></bd-li>
|
|
105
|
-
</bd-list>
|
|
104
|
+
<bd-p kind="small">Bitdefender Internet Security includes a basic VPN with 200MB per day.</bd-p>
|
|
106
105
|
</bd-accordion-bg-item>
|
|
107
106
|
</bd-accordion-bg>
|
|
108
107
|
</div>
|
|
109
|
-
|
|
110
|
-
<!-- Terms of Use -->
|
|
111
|
-
<div class="accordion terms-of-use block">
|
|
112
|
-
<bd-accordion-section title="Terms of use">
|
|
113
|
-
<bd-accordion-item title="Auto renewal terms" open>
|
|
114
|
-
<bd-p kind="small">Your subscription automatically begins at the purchase date;</bd-p>
|
|
115
|
-
<bd-p kind="small">By subscribing, you are purchasing a recurring subscription which will automatically renew;</bd-p>
|
|
116
|
-
<bd-p kind="small">The Bitdefender Auto Renewal Plan is designed to save you time, effort, and minimize your vulnerability risk by extending your subscription automatically before you run out of protection.</bd-p>
|
|
117
|
-
</bd-accordion-item>
|
|
118
|
-
|
|
119
|
-
<bd-accordion-item title="Here is what the Bitdefender Auto Renewal Plan means for you">
|
|
120
|
-
<bd-p kind="small"><a href="#">Here is what the Bitdefender Auto Renewal Plan means for you</a></bd-p>
|
|
121
|
-
</bd-accordion-item>
|
|
122
|
-
|
|
123
|
-
<bd-accordion-item title="Affirmative consent">
|
|
124
|
-
<bd-p kind="small"><a href="#">Affirmative consent</a></bd-p>
|
|
125
|
-
</bd-accordion-item>
|
|
126
|
-
|
|
127
|
-
<bd-accordion-item title="How to cancel + email address cancelation support">
|
|
128
|
-
<bd-p kind="small"><a href="#">How to cancel + email address cancelation support</a></bd-p>
|
|
129
|
-
</bd-accordion-item>
|
|
130
|
-
</bd-accordion-section>
|
|
131
|
-
</div>
|
|
132
|
-
|
|
133
|
-
<bd-divider-horizontal width="95%"></bd-divider-horizontal>
|
|
134
|
-
|
|
135
|
-
<!-- System Requirements -->
|
|
136
|
-
<div class="accordion system-requirements block">
|
|
137
|
-
<bd-accordion-section title="System Requirements" guide-icon="src/assets/user_guide.png" guide-label="User guide >" guide-href="#">
|
|
138
|
-
<bd-accordion-item title="Bitdefender Parental Control" open>
|
|
139
|
-
<bd-p kind="small">
|
|
140
|
-
<strong>Windows™ Operating Systems</strong><br />
|
|
141
|
-
Microsoft Windows 7 (all versions) with Service Pack 1 (SP 1) or later.
|
|
142
|
-
</bd-p>
|
|
143
|
-
<bd-p kind="small">
|
|
144
|
-
<strong>Mac® Operating Systems</strong><br />
|
|
145
|
-
macOS X Yosemite (10.10) or later
|
|
146
|
-
</bd-p>
|
|
147
|
-
<bd-p kind="small">
|
|
148
|
-
<strong>Android™ Operating Systems</strong><br />
|
|
149
|
-
Android 5.0 or later
|
|
150
|
-
</bd-p>
|
|
151
|
-
<bd-p kind="small">
|
|
152
|
-
<strong>iOS Operating Systems</strong><br />
|
|
153
|
-
Android 5.0 or later
|
|
154
|
-
</bd-p>
|
|
155
|
-
</bd-accordion-item>
|
|
156
|
-
|
|
157
|
-
<bd-accordion-item title="Bitdefender Central">
|
|
158
|
-
<bd-p kind="small">Bitdefender Central</bd-p>
|
|
159
|
-
</bd-accordion-item>
|
|
160
|
-
</bd-accordion-section>
|
|
161
|
-
</div>
|
|
162
108
|
`
|
|
163
109
|
};
|
|
164
110
|
|
|
111
|
+
// ─── FAQ — Cu footer ─────────────────────────────────────────────────────────
|
|
165
112
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
export const Default = {
|
|
169
|
-
name : "Default",
|
|
113
|
+
export const FaqWithFooter = {
|
|
114
|
+
name : "FAQ — Cu footer",
|
|
170
115
|
render: () => html`
|
|
171
|
-
<
|
|
172
|
-
<bd-accordion-bg
|
|
173
|
-
<
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
<
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
<p
|
|
180
|
-
</bd-accordion-bg
|
|
181
|
-
</
|
|
116
|
+
<div class="accordion faq block">
|
|
117
|
+
<bd-accordion-bg title="Questions? Answers.">
|
|
118
|
+
<bd-accordion-bg-item title="How does Bitdefender protect me?">
|
|
119
|
+
<bd-p kind="small">Bitdefender provides multi-layer protection against all cyber threats.</bd-p>
|
|
120
|
+
</bd-accordion-bg-item>
|
|
121
|
+
<bd-accordion-bg-item title="Does it work on Mac?">
|
|
122
|
+
<bd-p kind="small">Yes, Bitdefender is fully compatible with macOS 10.14 and later.</bd-p>
|
|
123
|
+
</bd-accordion-bg-item>
|
|
124
|
+
<bd-p slot="footer" kind="small">* Prices include VAT. Terms and conditions apply.</bd-p>
|
|
125
|
+
</bd-accordion-bg>
|
|
126
|
+
</div>
|
|
182
127
|
`
|
|
183
128
|
};
|
|
184
129
|
|
|
130
|
+
// ─── FAQ — Item deschis implicit ─────────────────────────────────────────────
|
|
185
131
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
export const OpenByDefault = {
|
|
189
|
-
name : "Item open by default",
|
|
132
|
+
export const FaqOpenByDefault = {
|
|
133
|
+
name : "FAQ — Item deschis implicit",
|
|
190
134
|
render: () => html`
|
|
191
|
-
<
|
|
192
|
-
<bd-accordion-bg
|
|
193
|
-
<
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
<
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
</bd-accordion-bg>
|
|
135
|
+
<div class="accordion faq block">
|
|
136
|
+
<bd-accordion-bg title="Getting Started">
|
|
137
|
+
<bd-accordion-bg-item title="How do I install Bitdefender?" open>
|
|
138
|
+
<bd-p kind="small">Download the installer from your Bitdefender Central account and follow the on-screen steps.</bd-p>
|
|
139
|
+
</bd-accordion-bg-item>
|
|
140
|
+
<bd-accordion-bg-item title="Do I need to remove my old antivirus first?">
|
|
141
|
+
<bd-p kind="small">Yes. Bitdefender will detect any existing security software and guide you through removing it.</bd-p>
|
|
142
|
+
</bd-accordion-bg-item>
|
|
143
|
+
</bd-accordion-bg>
|
|
144
|
+
</div>
|
|
202
145
|
`
|
|
203
146
|
};
|
|
204
147
|
|
|
148
|
+
// ─── FAQ — Fără background items ─────────────────────────────────────────────
|
|
205
149
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
export const NoBgContainer = {
|
|
209
|
-
name : "No background — container",
|
|
150
|
+
export const FaqNoBgItems = {
|
|
151
|
+
name : "FAQ — Fără background items",
|
|
210
152
|
render: () => html`
|
|
211
|
-
<
|
|
212
|
-
<bd-accordion-bg
|
|
213
|
-
<
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
<
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
<
|
|
220
|
-
|
|
221
|
-
|
|
153
|
+
<div class="accordion faq block">
|
|
154
|
+
<bd-accordion-bg title="Product Features">
|
|
155
|
+
<bd-accordion-bg-item title="What is Bitdefender VPN?" no-bg>
|
|
156
|
+
<bd-p kind="small">Bitdefender VPN encrypts your internet connection and masks your IP address.</bd-p>
|
|
157
|
+
</bd-accordion-bg-item>
|
|
158
|
+
<bd-accordion-bg-item title="What is Anti-Tracker?" no-bg>
|
|
159
|
+
<bd-p kind="small">Anti-Tracker blocks advertising trackers and analytics scripts.</bd-p>
|
|
160
|
+
</bd-accordion-bg-item>
|
|
161
|
+
<bd-accordion-bg-item title="What is Bitdefender Photon™?" no-bg>
|
|
162
|
+
<bd-p kind="small">Photon is Bitdefender's adaptive scanning technology.</bd-p>
|
|
163
|
+
</bd-accordion-bg-item>
|
|
164
|
+
</bd-accordion-bg>
|
|
165
|
+
</div>
|
|
222
166
|
`
|
|
223
167
|
};
|
|
224
168
|
|
|
169
|
+
// ─── Terms of Use ─────────────────────────────────────────────────────────────
|
|
225
170
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
export const NoBgItems = {
|
|
229
|
-
name : "No background — items",
|
|
171
|
+
export const TermsOfUse = {
|
|
172
|
+
name : "Terms of Use",
|
|
230
173
|
render: () => html`
|
|
231
|
-
<
|
|
232
|
-
<bd-accordion-bg
|
|
233
|
-
<
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
174
|
+
<div class="accordion terms-of-use block">
|
|
175
|
+
<bd-accordion-bg title="Terms of use">
|
|
176
|
+
<bd-accordion-bg-item title="Auto renewal terms" open>
|
|
177
|
+
<bd-p kind="small">Your subscription automatically begins at the purchase date;</bd-p>
|
|
178
|
+
<bd-p kind="small">By subscribing, you are purchasing a recurring subscription which will automatically renew;</bd-p>
|
|
179
|
+
<bd-p kind="small">The Bitdefender Auto Renewal Plan is designed to save you time and effort.</bd-p>
|
|
180
|
+
</bd-accordion-bg-item>
|
|
181
|
+
<bd-accordion-bg-item title="Here is what the Bitdefender Auto Renewal Plan means for you">
|
|
182
|
+
<bd-p kind="small"><a href="#">Here is what the Bitdefender Auto Renewal Plan means for you</a></bd-p>
|
|
183
|
+
</bd-accordion-bg-item>
|
|
184
|
+
<bd-accordion-bg-item title="Affirmative consent">
|
|
185
|
+
<bd-p kind="small"><a href="#">Affirmative consent</a></bd-p>
|
|
186
|
+
</bd-accordion-bg-item>
|
|
187
|
+
<bd-accordion-bg-item title="How to cancel + email address cancelation support">
|
|
188
|
+
<bd-p kind="small"><a href="#">How to cancel + email address cancelation support</a></bd-p>
|
|
189
|
+
</bd-accordion-bg-item>
|
|
190
|
+
</bd-accordion-bg>
|
|
191
|
+
</div>
|
|
242
192
|
`
|
|
243
193
|
};
|
|
244
194
|
|
|
195
|
+
// ─── Terms of Use — Cu footer ─────────────────────────────────────────────────
|
|
245
196
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
export const NoBgBoth = {
|
|
249
|
-
name : "No background — container + items",
|
|
197
|
+
export const TermsOfUseWithFooter = {
|
|
198
|
+
name : "Terms of Use — Cu footer",
|
|
250
199
|
render: () => html`
|
|
251
|
-
<
|
|
252
|
-
<bd-accordion-bg
|
|
253
|
-
<
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
200
|
+
<div class="accordion terms-of-use block">
|
|
201
|
+
<bd-accordion-bg title="Terms of use">
|
|
202
|
+
<bd-accordion-bg-item title="Auto renewal terms" open>
|
|
203
|
+
<bd-p kind="small">Your subscription automatically begins at the purchase date;</bd-p>
|
|
204
|
+
<bd-p kind="small">By subscribing, you are purchasing a recurring subscription which will automatically renew;</bd-p>
|
|
205
|
+
</bd-accordion-bg-item>
|
|
206
|
+
<bd-accordion-bg-item title="Affirmative consent">
|
|
207
|
+
<bd-p kind="small"><a href="#">Affirmative consent</a></bd-p>
|
|
208
|
+
</bd-accordion-bg-item>
|
|
209
|
+
<bd-p slot="footer" kind="small">* Sales tax included. First year price. See Terms of Use below.</bd-p>
|
|
210
|
+
</bd-accordion-bg>
|
|
211
|
+
</div>
|
|
262
212
|
`
|
|
263
213
|
};
|
|
264
214
|
|
|
215
|
+
// ─── System Requirements ──────────────────────────────────────────────────────
|
|
265
216
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
export const NoTitle = {
|
|
269
|
-
name : "No container title",
|
|
217
|
+
export const SystemRequirements = {
|
|
218
|
+
name : "System Requirements",
|
|
270
219
|
render: () => html`
|
|
271
|
-
<
|
|
272
|
-
<bd-accordion-bg
|
|
273
|
-
<
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
220
|
+
<div class="accordion system-requirements block">
|
|
221
|
+
<bd-accordion-bg title="System Requirements" guide-icon="/assets/user_guide.png" guide-label="User guide >" guide-href="#">
|
|
222
|
+
<bd-accordion-bg-item title="Bitdefender Parental Control" open>
|
|
223
|
+
<bd-p kind="small"><strong>Windows™ Operating Systems</strong><br />Microsoft Windows 7 (all versions) with Service Pack 1 (SP 1) or later.</bd-p>
|
|
224
|
+
<bd-p kind="small"><strong>Mac® Operating Systems</strong><br />macOS X Yosemite (10.10) or later</bd-p>
|
|
225
|
+
<bd-p kind="small"><strong>Android™ Operating Systems</strong><br />Android 5.0 or later</bd-p>
|
|
226
|
+
<bd-p kind="small"><strong>iOS Operating Systems</strong><br />iOS 12.0 or later</bd-p>
|
|
227
|
+
</bd-accordion-bg-item>
|
|
228
|
+
<bd-accordion-bg-item title="Bitdefender Central">
|
|
229
|
+
<bd-p kind="small">Bitdefender Central requires a modern browser with JavaScript enabled.</bd-p>
|
|
230
|
+
</bd-accordion-bg-item>
|
|
231
|
+
<bd-p slot="footer" kind="small">* Requirements may vary by product version.</bd-p>
|
|
232
|
+
</bd-accordion-bg>
|
|
233
|
+
</div>
|
|
279
234
|
`
|
|
280
235
|
};
|
|
281
236
|
|
|
237
|
+
// ─── Toate variantele pe aceeași pagină ───────────────────────────────────────
|
|
282
238
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
export const ItemIsolated = {
|
|
286
|
-
name : "bd-accordion-bg-item (isolated)",
|
|
239
|
+
export const AllVariants = {
|
|
240
|
+
name : "Toate variantele",
|
|
287
241
|
render: () => html`
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
242
|
+
|
|
243
|
+
<div class="accordion faq block">
|
|
244
|
+
<bd-accordion-bg title="Questions? Answers.">
|
|
245
|
+
<bd-accordion-bg-item title="How does Bitdefender Internet Security protect me?">
|
|
246
|
+
<bd-p kind="small">Bitdefender Internet Security provides the best protection through multiple layers of security:</bd-p>
|
|
247
|
+
<bd-list type="unordered" spacing="md" variant="default" orientation="vertical">
|
|
248
|
+
<bd-li kind="bullet" size="md"><bd-p kind="small">Advanced threat detection using artificial intelligence</bd-p></bd-li>
|
|
249
|
+
<bd-li kind="bullet" size="md"><bd-p kind="small">Real-time protection against viruses, malware, and ransomware</bd-p></bd-li>
|
|
250
|
+
<bd-li kind="bullet" size="md"><bd-p kind="small">Secure browsing with anti-phishing technology</bd-p></bd-li>
|
|
251
|
+
<bd-li kind="bullet" size="md"><bd-p kind="small">Firewall protection for network security</bd-p></bd-li>
|
|
252
|
+
</bd-list>
|
|
253
|
+
<bd-p kind="small">All these features work together to provide comprehensive protection for your devices.</bd-p>
|
|
254
|
+
</bd-accordion-bg-item>
|
|
255
|
+
<bd-accordion-bg-item title="Does Bitdefender protect me against ransomware?">
|
|
256
|
+
<bd-p kind="small">Yes! Bitdefender Internet Security offers unbeatable ransomware protection.</bd-p>
|
|
257
|
+
</bd-accordion-bg-item>
|
|
258
|
+
<bd-p slot="footer" kind="small">* Prices include VAT. Terms and conditions apply.</bd-p>
|
|
259
|
+
</bd-accordion-bg>
|
|
292
260
|
</div>
|
|
293
|
-
`
|
|
294
|
-
};
|
|
295
261
|
|
|
262
|
+
<bd-divider-horizontal width="95%"></bd-divider-horizontal>
|
|
263
|
+
|
|
264
|
+
<div class="accordion terms-of-use block">
|
|
265
|
+
<bd-accordion-bg title="Terms of use">
|
|
266
|
+
<bd-accordion-bg-item title="Auto renewal terms" open>
|
|
267
|
+
<bd-p kind="small">Your subscription automatically begins at the purchase date;</bd-p>
|
|
268
|
+
<bd-p kind="small">By subscribing, you are purchasing a recurring subscription which will automatically renew;</bd-p>
|
|
269
|
+
<bd-p kind="small">The Bitdefender Auto Renewal Plan is designed to save you time, effort, and minimize your vulnerability risk.</bd-p>
|
|
270
|
+
</bd-accordion-bg-item>
|
|
271
|
+
<bd-accordion-bg-item title="Here is what the Bitdefender Auto Renewal Plan means for you">
|
|
272
|
+
<bd-p kind="small"><a href="#">Here is what the Bitdefender Auto Renewal Plan means for you</a></bd-p>
|
|
273
|
+
</bd-accordion-bg-item>
|
|
274
|
+
<bd-accordion-bg-item title="Affirmative consent">
|
|
275
|
+
<bd-p kind="small"><a href="#">Affirmative consent</a></bd-p>
|
|
276
|
+
</bd-accordion-bg-item>
|
|
277
|
+
<bd-accordion-bg-item title="How to cancel + email address cancelation support">
|
|
278
|
+
<bd-p kind="small"><a href="#">How to cancel + email address cancelation support</a></bd-p>
|
|
279
|
+
</bd-accordion-bg-item>
|
|
280
|
+
<bd-p slot="footer" kind="small">* Sales tax included. First year price. See Terms of Use below.</bd-p>
|
|
281
|
+
</bd-accordion-bg>
|
|
282
|
+
</div>
|
|
296
283
|
|
|
297
|
-
|
|
284
|
+
<bd-divider-horizontal width="95%"></bd-divider-horizontal>
|
|
298
285
|
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
<
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
<bd-accordion-bg-item title="What is Bitdefender Central?">
|
|
313
|
-
<p>Bitdefender Central is the unified dashboard for managing all your protected devices, viewing security reports, and controlling your subscription.</p>
|
|
314
|
-
</bd-accordion-bg-item>
|
|
315
|
-
<bd-accordion-bg-item title="Can I try Bitdefender for free?">
|
|
316
|
-
<p>Yes. Bitdefender offers a 30-day free trial for most consumer products. No credit card is required to start the trial.</p>
|
|
317
|
-
</bd-accordion-bg-item>
|
|
318
|
-
<bd-accordion-bg-item title="What happens after my trial ends?">
|
|
319
|
-
<p>Once the trial period ends, protection stops unless you purchase a subscription. Your settings and scan history are preserved if you upgrade.</p>
|
|
320
|
-
</bd-accordion-bg-item>
|
|
321
|
-
</bd-accordion-bg>
|
|
286
|
+
<div class="accordion system-requirements block">
|
|
287
|
+
<bd-accordion-bg title="System Requirements" guide-icon="/assets/user_guide.png" guide-label="User guide >" guide-href="#">
|
|
288
|
+
<bd-accordion-bg-item title="Bitdefender Parental Control" open>
|
|
289
|
+
<bd-p kind="small"><strong>Windows™ Operating Systems</strong><br />Microsoft Windows 7 (all versions) with Service Pack 1 (SP 1) or later.</bd-p>
|
|
290
|
+
<bd-p kind="small"><strong>Mac® Operating Systems</strong><br />macOS X Yosemite (10.10) or later</bd-p>
|
|
291
|
+
<bd-p kind="small"><strong>Android™ Operating Systems</strong><br />Android 5.0 or later</bd-p>
|
|
292
|
+
<bd-p kind="small"><strong>iOS Operating Systems</strong><br />iOS 12.0 or later</bd-p>
|
|
293
|
+
</bd-accordion-bg-item>
|
|
294
|
+
<bd-accordion-bg-item title="Bitdefender Central">
|
|
295
|
+
<bd-p kind="small">Bitdefender Central</bd-p>
|
|
296
|
+
</bd-accordion-bg-item>
|
|
297
|
+
</bd-accordion-bg>
|
|
298
|
+
</div>
|
|
322
299
|
`
|
|
323
300
|
};
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import { css } from "lit";
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* bd-accordion-item — tokens scoped with `:host-context(...)` so vars resolve on
|
|
5
|
-
* this host (slotted rules from the section do not). Default + `default-blue` =
|
|
6
|
-
* parent is not `variant="small"` (tuned title/body colors for light tinted bgs).
|
|
7
|
-
*/
|
|
8
3
|
export const accordionItem = css`
|
|
9
4
|
:host {
|
|
10
5
|
display: block;
|
|
@@ -18,13 +13,13 @@ export const accordionItem = css`
|
|
|
18
13
|
box-shadow: var(--focus-outline-primary);
|
|
19
14
|
position: relative;
|
|
20
15
|
z-index: 1;
|
|
16
|
+
border-radius: var(--radius-sm);
|
|
21
17
|
}
|
|
22
18
|
|
|
23
19
|
:host(:last-child) {
|
|
24
20
|
margin-bottom: 0;
|
|
25
21
|
}
|
|
26
22
|
|
|
27
|
-
/* Default / non-small — panel body = 14px (fontSize-sm), titles 16px semibold */
|
|
28
23
|
:host-context(bd-accordion-section:not([variant="small"])) {
|
|
29
24
|
--bd-acc-title-font-size: var(--typography-fontSize-base);
|
|
30
25
|
--bd-acc-title-font-weight: var(--typography-fontWeight-semibold);
|
|
@@ -37,13 +32,11 @@ export const accordionItem = css`
|
|
|
37
32
|
--bd-acc-panel-color: var(--color-neutral-800);
|
|
38
33
|
}
|
|
39
34
|
|
|
40
|
-
/* default-blue: titles blue-600 on blue-50 for stronger contrast (AA vs blue-500) */
|
|
41
35
|
:host-context(bd-accordion-section[variant="default-blue"]) {
|
|
42
36
|
--bd-acc-title-color-expanded: var(--color-blue-600);
|
|
43
37
|
--bd-acc-title-color-collapsed: var(--color-blue-600);
|
|
44
38
|
}
|
|
45
39
|
|
|
46
|
-
/* Small variant — title colors below (collapsed neutral-900; expanded blue-800; hover blue-500) */
|
|
47
40
|
:host-context(bd-accordion-section[variant="small"]) {
|
|
48
41
|
--bd-acc-header-padding: var(--spacing-12) var(--spacing-8);
|
|
49
42
|
--bd-acc-header-margin-bottom: var(--spacing-0);
|
|
@@ -62,6 +55,17 @@ export const accordionItem = css`
|
|
|
62
55
|
--bd-acc-item-margin-bottom: var(--spacing-0);
|
|
63
56
|
}
|
|
64
57
|
|
|
58
|
+
/* bd-list in slot — spacing intre list si ce urmeaza */
|
|
59
|
+
::slotted(bd-list) {
|
|
60
|
+
--bd-li-margin-bottom: var(--spacing-16);
|
|
61
|
+
display: block;
|
|
62
|
+
margin-bottom: var(--spacing-16);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
::slotted(bd-list:last-child) {
|
|
66
|
+
margin-bottom: 0;
|
|
67
|
+
}
|
|
68
|
+
|
|
65
69
|
.header {
|
|
66
70
|
display: flex;
|
|
67
71
|
align-items: flex-start;
|
|
@@ -74,11 +78,8 @@ export const accordionItem = css`
|
|
|
74
78
|
gap: var(--bd-acc-icon-gap, var(--spacing-12));
|
|
75
79
|
font-family: var(--typography-fontFamily-sans);
|
|
76
80
|
font-style: normal;
|
|
77
|
-
font-size: var(--bd-acc-title-font-size, var(--typography-label-
|
|
78
|
-
font-weight: var(
|
|
79
|
-
--bd-acc-title-font-weight,
|
|
80
|
-
var(--typography-fontWeight-semibold)
|
|
81
|
-
);
|
|
81
|
+
font-size: var(--bd-acc-title-font-size, var(--typography-label-large-fontSize));
|
|
82
|
+
font-weight: var(--bd-acc-title-font-weight, var(--typography-fontWeight-semibold));
|
|
82
83
|
line-height: var(--bd-acc-title-line-height, var(--typography-lineHeight-normal));
|
|
83
84
|
margin-bottom: var(--bd-acc-header-margin-bottom, var(--spacing-16));
|
|
84
85
|
}
|
|
@@ -96,27 +97,19 @@ export const accordionItem = css`
|
|
|
96
97
|
color: var(--color-blue-500);
|
|
97
98
|
}
|
|
98
99
|
|
|
99
|
-
:host-context(bd-accordion-section[variant="small"])
|
|
100
|
-
.header[aria-expanded="false"]
|
|
101
|
-
.title {
|
|
100
|
+
:host-context(bd-accordion-section[variant="small"]) .header[aria-expanded="false"] .title {
|
|
102
101
|
color: var(--color-neutral-900);
|
|
103
102
|
}
|
|
104
103
|
|
|
105
|
-
:host-context(bd-accordion-section[variant="small"])
|
|
106
|
-
.header[aria-expanded="false"]:hover
|
|
107
|
-
.title {
|
|
104
|
+
:host-context(bd-accordion-section[variant="small"]) .header[aria-expanded="false"]:hover .title {
|
|
108
105
|
color: var(--color-blue-500);
|
|
109
106
|
}
|
|
110
107
|
|
|
111
|
-
:host-context(bd-accordion-section[variant="small"])
|
|
112
|
-
.header[aria-expanded="true"]
|
|
113
|
-
.title {
|
|
108
|
+
:host-context(bd-accordion-section[variant="small"]) .header[aria-expanded="true"] .title {
|
|
114
109
|
color: var(--color-blue-800);
|
|
115
110
|
}
|
|
116
111
|
|
|
117
|
-
:host-context(bd-accordion-section[variant="small"])
|
|
118
|
-
.header[aria-expanded="true"]:hover
|
|
119
|
-
.title {
|
|
112
|
+
:host-context(bd-accordion-section[variant="small"]) .header[aria-expanded="true"]:hover .title {
|
|
120
113
|
color: var(--color-blue-500);
|
|
121
114
|
}
|
|
122
115
|
|
|
@@ -130,12 +123,9 @@ export const accordionItem = css`
|
|
|
130
123
|
justify-content: center;
|
|
131
124
|
line-height: 0;
|
|
132
125
|
user-select: none;
|
|
133
|
-
/* First-line alignment: icon sits in first line box, not vertically centered on wrapped title */
|
|
134
126
|
margin-top: calc(
|
|
135
|
-
(
|
|
136
|
-
|
|
137
|
-
var(--bd-acc-toggle-size, var(--icon-sm-size))
|
|
138
|
-
) / 2
|
|
127
|
+
(var(--bd-acc-title-line-height, var(--typography-lineHeight-normal)) * 1em -
|
|
128
|
+
var(--bd-acc-toggle-size, var(--icon-sm-size))) / 2
|
|
139
129
|
);
|
|
140
130
|
}
|
|
141
131
|
|
|
@@ -148,39 +138,30 @@ export const accordionItem = css`
|
|
|
148
138
|
|
|
149
139
|
.title {
|
|
150
140
|
flex: 1;
|
|
151
|
-
font-weight: var(
|
|
152
|
-
--bd-acc-title-font-weight,
|
|
153
|
-
var(--typography-fontWeight-semibold)
|
|
154
|
-
);
|
|
141
|
+
font-weight: var(--bd-acc-title-font-weight, var(--typography-fontWeight-semibold));
|
|
155
142
|
}
|
|
156
143
|
|
|
157
144
|
.content {
|
|
158
|
-
padding: var(
|
|
159
|
-
--bd-acc-panel-padding,
|
|
160
|
-
0 0 0 calc(var(--icon-sm-size) + var(--spacing-12))
|
|
161
|
-
);
|
|
145
|
+
padding: var(--bd-acc-panel-padding, 0 0 0 calc(var(--icon-sm-size) + var(--spacing-12)));
|
|
162
146
|
font-family: var(--typography-fontFamily-sans);
|
|
163
147
|
font-size: var(--bd-acc-panel-font-size, var(--typography-fontSize-sm));
|
|
164
|
-
font-weight: var(
|
|
165
|
-
|
|
166
|
-
var(--typography-fontWeight-normal)
|
|
167
|
-
);
|
|
168
|
-
line-height: var(
|
|
169
|
-
--bd-acc-panel-line-height,
|
|
170
|
-
var(--typography-lineHeight-normal)
|
|
171
|
-
);
|
|
148
|
+
font-weight: var(--bd-acc-panel-font-weight, var(--typography-fontWeight-normal));
|
|
149
|
+
line-height: var(--bd-acc-panel-line-height, var(--typography-lineHeight-normal));
|
|
172
150
|
color: var(--bd-acc-panel-color, var(--color-neutral-700));
|
|
173
151
|
}
|
|
174
152
|
|
|
175
153
|
.content[hidden] {
|
|
176
154
|
display: none !important;
|
|
177
155
|
}
|
|
156
|
+
|
|
178
157
|
::slotted(bd-p) {
|
|
179
158
|
padding-bottom: var(--spacing-16);
|
|
180
159
|
}
|
|
160
|
+
|
|
181
161
|
::slotted(bd-p:last-child) {
|
|
182
162
|
padding-bottom: 0px;
|
|
183
163
|
}
|
|
164
|
+
|
|
184
165
|
::slotted(p) {
|
|
185
166
|
margin-top: 0;
|
|
186
167
|
margin-bottom: var(--bd-acc-panel-paragraph-gap, var(--spacing-16));
|
|
@@ -197,16 +178,12 @@ export const accordionItem = css`
|
|
|
197
178
|
`;
|
|
198
179
|
|
|
199
180
|
export const accordionSection = css`
|
|
200
|
-
// :host {
|
|
201
|
-
// display: block;
|
|
202
|
-
// background-color: var(--bd-acc-section-bg, var(--color-neutral-25));
|
|
203
|
-
// padding: var(--bd-acc-section-padding, var(--spacing-32));
|
|
204
|
-
// box-sizing: border-box;
|
|
205
|
-
// }
|
|
206
181
|
.bd-accordion-section-container {
|
|
207
182
|
background-color: var(--bd-acc-section-bg, var(--color-neutral-25));
|
|
208
183
|
padding: var(--bd-acc-section-padding, var(--spacing-32));
|
|
209
|
-
border-radius:
|
|
184
|
+
border-radius: 0;
|
|
185
|
+
width: 100%;
|
|
186
|
+
box-sizing: border-box;
|
|
210
187
|
}
|
|
211
188
|
|
|
212
189
|
:host([variant="small"]) {
|
|
@@ -218,7 +195,6 @@ export const accordionSection = css`
|
|
|
218
195
|
--bd-acc-section-bg: var(--color-blue-50);
|
|
219
196
|
}
|
|
220
197
|
|
|
221
|
-
/* Light tinted section bgs (neutral-25, blue-50): footnote link */
|
|
222
198
|
:host(:not([variant="small"])) .user-guide-link {
|
|
223
199
|
color: var(--color-blue-700);
|
|
224
200
|
}
|
|
@@ -251,7 +227,6 @@ export const accordionSection = css`
|
|
|
251
227
|
gap: var(--spacing-12);
|
|
252
228
|
font-family: Arial, Helvetica, sans-serif;
|
|
253
229
|
font-size: var(--typography-fontSize-xs);
|
|
254
|
-
|
|
255
230
|
}
|
|
256
231
|
|
|
257
232
|
.user-guide-link a:focus-visible {
|
|
@@ -266,4 +241,4 @@ export const accordionSection = css`
|
|
|
266
241
|
height: var(--dimension-16px);
|
|
267
242
|
object-fit: contain;
|
|
268
243
|
}
|
|
269
|
-
`;
|
|
244
|
+
`;
|
|
@@ -11,6 +11,8 @@ export default css`
|
|
|
11
11
|
gap: var(--spacing-8);
|
|
12
12
|
color: var(--color-neutral-700);
|
|
13
13
|
line-height: var(--typography-lineHeight-normal);
|
|
14
|
+
font-family: var(--typography-fontFamily-sans);
|
|
15
|
+
|
|
14
16
|
}
|
|
15
17
|
|
|
16
18
|
/* === SIZE VARIANTS === */
|
|
@@ -20,10 +22,10 @@ export default css`
|
|
|
20
22
|
margin-bottom: var(--spacing-4);
|
|
21
23
|
}
|
|
22
24
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
.bd-list-item.md {
|
|
26
|
+
font-size: var(--typography-fontSize-base);
|
|
27
|
+
margin-bottom: var(--bd-li-margin-bottom, var(--spacing-6));
|
|
28
|
+
}
|
|
27
29
|
|
|
28
30
|
.bd-list-item.lg {
|
|
29
31
|
font-size: var(--typography-fontSize-lg);
|
|
@@ -98,9 +100,12 @@ export default css`
|
|
|
98
100
|
flex: 1;
|
|
99
101
|
}
|
|
100
102
|
|
|
101
|
-
/* Last Item */
|
|
102
|
-
.bd-list-item:last-child {
|
|
103
|
-
|
|
104
|
-
}
|
|
103
|
+
// /* Last Item */
|
|
104
|
+
// .bd-list-item:last-child {
|
|
105
|
+
// margin-bottom: 0;
|
|
106
|
+
// }
|
|
107
|
+
:host(:last-of-type) .bd-list-item {
|
|
108
|
+
margin-bottom: 0;
|
|
109
|
+
}
|
|
105
110
|
}
|
|
106
111
|
`;
|
|
@@ -1,79 +1,165 @@
|
|
|
1
|
-
import { html } from
|
|
2
|
-
import
|
|
1
|
+
import { html } from "lit";
|
|
2
|
+
import "./list-item.js";
|
|
3
3
|
|
|
4
4
|
export default {
|
|
5
|
-
title
|
|
6
|
-
component:
|
|
7
|
-
|
|
5
|
+
title : "Components/List/List Item",
|
|
6
|
+
component : "bd-li",
|
|
7
|
+
tags : ["autodocs"],
|
|
8
|
+
parameters: {
|
|
9
|
+
layout: "padded",
|
|
10
|
+
docs : {
|
|
11
|
+
description: {
|
|
12
|
+
component: `
|
|
13
|
+
Componentă Lit pentru un element de listă cu marker configurabil.
|
|
14
|
+
|
|
15
|
+
\`\`\`html
|
|
16
|
+
<bd-li kind="bullet" size="md">Text element</bd-li>
|
|
17
|
+
<bd-li kind="check" size="md">Element bifat</bd-li>
|
|
18
|
+
<bd-li kind="number" size="md">Element numerotat</bd-li>
|
|
19
|
+
\`\`\`
|
|
20
|
+
|
|
21
|
+
### Atribute
|
|
22
|
+
| Atribut | Tip | Default | Descriere |
|
|
23
|
+
|---|---|---|---|
|
|
24
|
+
| \`kind\` | String | \`bullet\` | Tipul marker-ului: \`bullet\` · \`number\` · \`check\` · \`none\` |
|
|
25
|
+
| \`size\` | String | \`md\` | Dimensiunea: \`sm\` · \`md\` · \`lg\` |
|
|
26
|
+
| \`icon\` | String | — | URL icon custom (înlocuiește marker-ul) |
|
|
27
|
+
|
|
28
|
+
### Utilizare în \`bd-list\`
|
|
29
|
+
\`bd-li\` este destinat uzului în interiorul \`bd-list\`:
|
|
30
|
+
\`\`\`html
|
|
31
|
+
<bd-list type="unordered" spacing="md">
|
|
32
|
+
<bd-li kind="bullet" size="md">Primul element</bd-li>
|
|
33
|
+
<bd-li kind="bullet" size="md">Al doilea element</bd-li>
|
|
34
|
+
</bd-list>
|
|
35
|
+
\`\`\`
|
|
36
|
+
`
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
argTypes: {
|
|
8
41
|
kind: {
|
|
9
|
-
control : { type:
|
|
10
|
-
options : [
|
|
11
|
-
description:
|
|
42
|
+
control : { type: "select" },
|
|
43
|
+
options : ["bullet", "number", "check", "none"],
|
|
44
|
+
description: "Tipul marker-ului",
|
|
45
|
+
table : { type: { summary: "string" }, defaultValue: { summary: "bullet" } }
|
|
12
46
|
},
|
|
13
47
|
size: {
|
|
14
|
-
control : { type:
|
|
15
|
-
options : [
|
|
16
|
-
description:
|
|
48
|
+
control : { type: "select" },
|
|
49
|
+
options : ["sm", "md", "lg"],
|
|
50
|
+
description: "Dimensiunea elementului",
|
|
51
|
+
table : { type: { summary: "string" }, defaultValue: { summary: "md" } }
|
|
17
52
|
},
|
|
18
|
-
|
|
19
|
-
control :
|
|
20
|
-
description:
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
parameters: {
|
|
24
|
-
docs: {
|
|
25
|
-
description: {
|
|
26
|
-
component: 'A list item component with customizable markers and styling.'
|
|
27
|
-
}
|
|
53
|
+
icon: {
|
|
54
|
+
control : "text",
|
|
55
|
+
description: "URL icon custom (înlocuiește marker-ul implicit)",
|
|
56
|
+
table : { type: { summary: "string" } }
|
|
28
57
|
}
|
|
29
58
|
}
|
|
30
59
|
};
|
|
31
60
|
|
|
32
|
-
|
|
33
|
-
<bd-li kind="${args.kind}" size="${args.size}">${args.content}</bd-li>
|
|
34
|
-
`;
|
|
61
|
+
// ─── Default ──────────────────────────────────────────────────────────────────
|
|
35
62
|
|
|
36
|
-
export const Default =
|
|
37
|
-
Default
|
|
38
|
-
kind
|
|
39
|
-
|
|
40
|
-
|
|
63
|
+
export const Default = {
|
|
64
|
+
name : "Default",
|
|
65
|
+
args : { kind: "bullet", size: "md" },
|
|
66
|
+
render: ({ kind, size }) => html`
|
|
67
|
+
<bd-li kind="${kind}" size="${size}">Default list item with bullet marker</bd-li>
|
|
68
|
+
`
|
|
41
69
|
};
|
|
42
70
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
71
|
+
// ─── Bullet ───────────────────────────────────────────────────────────────────
|
|
72
|
+
|
|
73
|
+
export const Bullet = {
|
|
74
|
+
name : "Bullet",
|
|
75
|
+
args : { kind: "bullet", size: "md" },
|
|
76
|
+
render: ({ kind, size }) => html`
|
|
77
|
+
<bd-li kind="${kind}" size="${size}">Item with bullet marker</bd-li>
|
|
78
|
+
`
|
|
47
79
|
};
|
|
48
80
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
81
|
+
// ─── Number ───────────────────────────────────────────────────────────────────
|
|
82
|
+
|
|
83
|
+
export const Number = {
|
|
84
|
+
name : "Number",
|
|
85
|
+
args : { kind: "number", size: "md" },
|
|
86
|
+
render: ({ kind, size }) => html`
|
|
87
|
+
<bd-li kind="${kind}" size="${size}">Item with number marker</bd-li>
|
|
88
|
+
`
|
|
53
89
|
};
|
|
54
90
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
91
|
+
// ─── Check ────────────────────────────────────────────────────────────────────
|
|
92
|
+
|
|
93
|
+
export const Check = {
|
|
94
|
+
name : "Check",
|
|
95
|
+
args : { kind: "check", size: "md" },
|
|
96
|
+
render: ({ kind, size }) => html`
|
|
97
|
+
<bd-li kind="${kind}" size="${size}">Item with checkmark marker</bd-li>
|
|
98
|
+
`
|
|
59
99
|
};
|
|
60
100
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
101
|
+
// ─── None ─────────────────────────────────────────────────────────────────────
|
|
102
|
+
|
|
103
|
+
export const None = {
|
|
104
|
+
name : "None",
|
|
105
|
+
args : { kind: "none", size: "md" },
|
|
106
|
+
render: ({ kind, size }) => html`
|
|
107
|
+
<bd-li kind="${kind}" size="${size}">Item without marker</bd-li>
|
|
108
|
+
`
|
|
65
109
|
};
|
|
66
110
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
111
|
+
// ─── Size Variants ────────────────────────────────────────────────────────────
|
|
112
|
+
|
|
113
|
+
export const SizeVariants = {
|
|
114
|
+
name : "Size Variants",
|
|
115
|
+
parameters: { controls: { disable: true } },
|
|
116
|
+
render : () => html`
|
|
117
|
+
<div style="display: flex; flex-direction: column; gap: 1rem;">
|
|
118
|
+
<bd-li kind="bullet" size="sm">Small list item (sm)</bd-li>
|
|
119
|
+
<bd-li kind="bullet" size="md">Medium list item (md)</bd-li>
|
|
120
|
+
<bd-li kind="bullet" size="lg">Large list item (lg)</bd-li>
|
|
121
|
+
</div>
|
|
122
|
+
`
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
// ─── Toate tipurile de marker ─────────────────────────────────────────────────
|
|
126
|
+
|
|
127
|
+
export const AllKinds = {
|
|
128
|
+
name : "Toate tipurile de marker",
|
|
129
|
+
parameters: { controls: { disable: true } },
|
|
130
|
+
render : () => html`
|
|
131
|
+
<div style="display: flex; flex-direction: column; gap: 1rem;">
|
|
132
|
+
<bd-li kind="bullet" size="md">Bullet — marker punct negru</bd-li>
|
|
133
|
+
<bd-li kind="number" size="md">Number — marker număr</bd-li>
|
|
134
|
+
<bd-li kind="check" size="md">Check — marker bifă verde</bd-li>
|
|
135
|
+
<bd-li kind="none" size="md">None — fără marker</bd-li>
|
|
136
|
+
</div>
|
|
137
|
+
`
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
// ─── Cu conținut rich ─────────────────────────────────────────────────────────
|
|
141
|
+
|
|
142
|
+
export const WithRichContent = {
|
|
143
|
+
name : "Cu conținut rich",
|
|
144
|
+
parameters: { controls: { disable: true } },
|
|
145
|
+
render : () => html`
|
|
146
|
+
<bd-li kind="bullet" size="lg">
|
|
147
|
+
<strong>Element evidențiat</strong> cu text descriptiv suplimentar care se poate întinde
|
|
148
|
+
pe mai multe rânduri, menținând alinierea corectă față de marker.
|
|
149
|
+
</bd-li>
|
|
150
|
+
`
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
// ─── Playground ───────────────────────────────────────────────────────────────
|
|
154
|
+
|
|
155
|
+
export const Playground = {
|
|
156
|
+
name : "Playground",
|
|
157
|
+
args : { kind: "bullet", size: "md" },
|
|
158
|
+
render: ({ kind, size }) => html`
|
|
159
|
+
<div style="display: flex; flex-direction: column; gap: 0.5rem;">
|
|
160
|
+
<bd-li kind="${kind}" size="${size}">Primul element de listă</bd-li>
|
|
161
|
+
<bd-li kind="${kind}" size="${size}">Al doilea element de listă</bd-li>
|
|
162
|
+
<bd-li kind="${kind}" size="${size}">Al treilea element de listă</bd-li>
|
|
163
|
+
</div>
|
|
164
|
+
`
|
|
165
|
+
};
|