@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
@@ -0,0 +1,177 @@
1
+ import { html } from 'lit';
2
+ import '../heading/heading.js';
3
+ import '../paragraph/paragraph.js';
4
+ import './link.js';
5
+
6
+ export default {
7
+ title : 'Atoms/Link',
8
+ component: 'bd-link',
9
+ argTypes : {
10
+ href: {
11
+ control : 'text',
12
+ description: 'URL destination'
13
+ },
14
+ target: {
15
+ control : { type: 'select' },
16
+ options : ['_self', '_blank', '_parent', '_top'],
17
+ description: 'Link target attribute'
18
+ },
19
+ kind: {
20
+ control : { type: 'select' },
21
+ options : ['primary', 'secondary', 'danger', 'subtle', 'bold'],
22
+ description: 'Link style variant'
23
+ },
24
+ underline: {
25
+ control : 'boolean',
26
+ description: 'Always show underline'
27
+ },
28
+ disabled: {
29
+ control : 'boolean',
30
+ description: 'Disabled state'
31
+ },
32
+ content: {
33
+ control : 'text',
34
+ description: 'Link text content'
35
+ }
36
+ },
37
+ parameters: {
38
+ docs: {
39
+ description: {
40
+ component: 'A customizable link component with multiple style variants and accessibility features.'
41
+ }
42
+ }
43
+ }
44
+ };
45
+
46
+ const Template = ({ href, target, kind, underline, disabled, content }) => html`
47
+ <bd-link
48
+ href="${href}"
49
+ target="${target}"
50
+ kind="${kind}"
51
+ ?underline="${underline}"
52
+ ?disabled="${disabled}"
53
+ >
54
+ ${content}
55
+ </bd-link>
56
+ `;
57
+
58
+ export const AllVariants = () => html`
59
+ <div style="display: flex; flex-direction: column; gap: 1rem; max-width: 600px;">
60
+ <div>
61
+ <bd-p kind="regular">This is a paragraph with a <bd-link href="#" kind="primary">primary link</bd-link> inside the text.</bd-p>
62
+ </div>
63
+
64
+ <div>
65
+ <bd-p kind="regular">This is a paragraph with a <bd-link href="#" kind="secondary">secondary link</bd-link> inside the text.</bd-p>
66
+ </div>
67
+
68
+ <div>
69
+ <bd-p kind="regular">This is a paragraph with a <bd-link href="#" kind="danger">danger link</bd-link> inside the text.</bd-p>
70
+ </div>
71
+
72
+ <div>
73
+ <bd-p kind="regular">This is a paragraph with a <bd-link href="#" kind="subtle">subtle link</bd-link> inside the text.</bd-p>
74
+ </div>
75
+
76
+ <div>
77
+ <bd-p kind="regular">This is a paragraph with a <bd-link href="#" kind="bold">bold link</bd-link> inside the text.</bd-p>
78
+ </div>
79
+
80
+ <div>
81
+ <bd-p kind="regular">This is a paragraph with a <bd-link href="#" kind="primary" underline>underlined link</bd-link> inside the text.</bd-p>
82
+ </div>
83
+
84
+ <div>
85
+ <bd-p kind="regular">This is a paragraph with a <bd-link href="#" kind="primary" disabled>disabled link</bd-link> inside the text.</bd-p>
86
+ </div>
87
+ </div>
88
+ `;
89
+
90
+ export const Primary = Template.bind({});
91
+ Primary.args = {
92
+ href : '#',
93
+ target : '_self',
94
+ kind : 'primary',
95
+ underline: false,
96
+ disabled : false,
97
+ content : 'Primary Link'
98
+ };
99
+
100
+ export const Secondary = Template.bind({});
101
+ Secondary.args = {
102
+ href : '#',
103
+ target : '_self',
104
+ kind : 'secondary',
105
+ underline: false,
106
+ disabled : false,
107
+ content : 'Secondary Link'
108
+ };
109
+
110
+ export const Danger = Template.bind({});
111
+ Danger.args = {
112
+ href : '#',
113
+ target : '_self',
114
+ kind : 'danger',
115
+ underline: false,
116
+ disabled : false,
117
+ content : 'Danger Link'
118
+ };
119
+
120
+ export const WithUnderline = Template.bind({});
121
+ WithUnderline.args = {
122
+ href : '#',
123
+ target : '_self',
124
+ kind : 'primary',
125
+ underline: true,
126
+ disabled : false,
127
+ content : 'Underlined Link'
128
+ };
129
+
130
+ export const Disabled = Template.bind({});
131
+ Disabled.args = {
132
+ href : '#',
133
+ target : '_self',
134
+ kind : 'primary',
135
+ underline: false,
136
+ disabled : true,
137
+ content : 'Disabled Link'
138
+ };
139
+
140
+ export const ExternalLinks = () => html`
141
+ <div style="display: flex; flex-direction: column; gap: 1rem;">
142
+ <bd-link href="https://example.com" target="_blank" kind="primary">
143
+ External Primary Link
144
+ </bd-link>
145
+
146
+ <bd-link href="https://example.com" target="_blank" kind="secondary" underline>
147
+ External Underlined Link
148
+ </bd-link>
149
+
150
+ <bd-p kind="regular">
151
+ This is a paragraph with an <bd-link href="https://example.com" target="_blank" kind="primary">external link</bd-link> that opens in a new tab.
152
+ </bd-p>
153
+ </div>
154
+ `;
155
+
156
+ export const InContext = () => html`
157
+ <div style="max-width: 600px;">
158
+ <bd-h as="h2">Cybersecurity Features</bd-h>
159
+
160
+ <bd-p kind="lead">
161
+ Protect your digital life with our comprehensive security solutions.
162
+ Learn more about <bd-link href="#" kind="primary">threat protection</bd-link>
163
+ and <bd-link href="#" kind="bold">advanced features</bd-link>.
164
+ </bd-p>
165
+
166
+ <bd-p kind="regular">
167
+ Our <bd-link href="#" kind="danger">emergency response</bd-link> team is available 24/7
168
+ to handle security incidents. For less urgent matters, check our
169
+ <bd-link href="#" kind="subtle">knowledge base</bd-link>.
170
+ </bd-p>
171
+
172
+ <bd-p kind="small">
173
+ <bd-link href="#" kind="secondary" underline>Terms of service</bd-link> •
174
+ <bd-link href="#" kind="secondary" underline>Privacy policy</bd-link>
175
+ </bd-p>
176
+ </div>
177
+ `;
@@ -0,0 +1,106 @@
1
+ import { css } from "lit";
2
+
3
+ export default css`
4
+ @layer bd-components {
5
+ .bd-list-item {
6
+ margin: 0;
7
+ padding: 0;
8
+ list-style: none;
9
+ display: flex;
10
+ align-items: flex-start;
11
+ gap: var(--spacing-8);
12
+ color: var(--color-neutral-700);
13
+ line-height: var(--typography-lineHeight-normal);
14
+ }
15
+
16
+ /* === SIZE VARIANTS === */
17
+
18
+ .bd-list-item.sm {
19
+ font-size: var(--typography-fontSize-sm);
20
+ margin-bottom: var(--spacing-4);
21
+ }
22
+
23
+ .bd-list-item.md {
24
+ font-size: var(--typography-fontSize-base);
25
+ margin-bottom: var(--spacing-6);
26
+ }
27
+
28
+ .bd-list-item.lg {
29
+ font-size: var(--typography-fontSize-lg);
30
+ margin-bottom: var(--spacing-8);
31
+ }
32
+
33
+ /* === MARKER STYLES === */
34
+
35
+ .bd-list-item-marker {
36
+ flex-shrink: 0;
37
+ margin-top: var(--spacing-6);
38
+ }
39
+
40
+ /* Bullet List */
41
+ .bd-list-item.bullet .bd-list-item-marker {
42
+ width: var(--spacing-6);
43
+ height: var(--spacing-6);
44
+ background-color: var(--color-neutral-1000);
45
+ border-radius: 50%;
46
+ }
47
+
48
+ /* Number List */
49
+ .bd-list-item.number {
50
+ counter-increment: bd-list-counter;
51
+ }
52
+
53
+ .bd-list-item.number .bd-list-item-marker::before {
54
+ content: counter(bd-list-counter) ".";
55
+ font-weight: var(--typography-fontWeight-semibold);
56
+ color: var(--color-neutral-1000);
57
+ }
58
+
59
+ /* Check List */
60
+ .bd-list-item.check .bd-list-item-marker {
61
+ width: var(--spacing-16);
62
+ height: var(--spacing-16);
63
+ background-color: var(--color-green-500);
64
+ border-radius: 50%;
65
+ position: relative;
66
+ }
67
+
68
+ .bd-list-item.check .bd-list-item-marker::after {
69
+ content: "✓";
70
+ color: white;
71
+ font-size: var(--typography-fontSize-sm);
72
+ position: absolute;
73
+ top: 50%;
74
+ left: 50%;
75
+ transform: translate(-50%, -50%);
76
+ }
77
+
78
+ /* Custom Icon */
79
+ .bd-list-item-custom-icon {
80
+ width: var(--spacing-16);
81
+ height: var(--spacing-16);
82
+ flex-shrink: 0;
83
+ margin-top: var(--spacing-4);
84
+ }
85
+
86
+ /* No Marker */
87
+ .bd-list-item.none {
88
+ gap: 0;
89
+ }
90
+
91
+ .bd-list-item.none .bd-list-item-marker {
92
+ display: none;
93
+ }
94
+
95
+ /* === CONTENT STYLING === */
96
+
97
+ .bd-list-item-content {
98
+ flex: 1;
99
+ }
100
+
101
+ /* Last Item */
102
+ .bd-list-item:last-child {
103
+ margin-bottom: 0;
104
+ }
105
+ }
106
+ `;
@@ -0,0 +1,43 @@
1
+ import { LitElement, html } from "lit";
2
+ import { tokens } from "../../../tokens/tokens.js";
3
+ import listItemCSS from "./list-item.css.js";
4
+
5
+ export class BdListItem extends LitElement {
6
+ static properties = {
7
+ kind: { type: String }, // bullet, number, check, none
8
+ size: { type: String }, // sm, md, lg
9
+ icon: { type: String } // custom icon URL
10
+ };
11
+
12
+ constructor() {
13
+ super();
14
+ this.kind = "bullet";
15
+ this.size = "md";
16
+ this.icon = "";
17
+ }
18
+
19
+ render() {
20
+ return html`
21
+ <li class="bd-list-item ${this.kind} ${this.size}">
22
+ ${this._renderMarker()}
23
+ <span class="bd-list-item-content">
24
+ <slot></slot>
25
+ </span>
26
+ </li>
27
+ `;
28
+ }
29
+
30
+ _renderMarker() {
31
+ if (this.kind === "none") return '';
32
+
33
+ if (this.icon) {
34
+ return html`<img src="${this.icon}" alt="" class="bd-list-item-custom-icon" />`;
35
+ }
36
+
37
+ return html`<span class="bd-list-item-marker"></span>`;
38
+ }
39
+
40
+ static styles = [tokens, listItemCSS];
41
+ }
42
+
43
+ customElements.define("bd-li", BdListItem);
@@ -0,0 +1,79 @@
1
+ import { html } from 'lit';
2
+ import './list-item.js';
3
+
4
+ export default {
5
+ title : 'Components/List/List Item',
6
+ component: 'bd-li',
7
+ argTypes : {
8
+ kind: {
9
+ control : { type: 'select' },
10
+ options : ['bullet', 'number', 'check', 'none'],
11
+ description: 'List item marker type'
12
+ },
13
+ size: {
14
+ control : { type: 'select' },
15
+ options : ['sm', 'md', 'lg'],
16
+ description: 'List item size'
17
+ },
18
+ content: {
19
+ control : 'text',
20
+ description: 'List item content'
21
+ }
22
+ },
23
+ parameters: {
24
+ docs: {
25
+ description: {
26
+ component: 'A list item component with customizable markers and styling.'
27
+ }
28
+ }
29
+ }
30
+ };
31
+
32
+ const Template = (args) => html`
33
+ <bd-li kind="${args.kind}" size="${args.size}">${args.content}</bd-li>
34
+ `;
35
+
36
+ export const Default = Template.bind({});
37
+ Default.args = {
38
+ kind : 'bullet',
39
+ size : 'md',
40
+ content: 'Default list item with bullet marker'
41
+ };
42
+
43
+ export const Bullet = Template.bind({});
44
+ Bullet.args = {
45
+ kind : 'bullet',
46
+ content: 'Item with bullet marker'
47
+ };
48
+
49
+ export const Number = Template.bind({});
50
+ Number.args = {
51
+ kind : 'number',
52
+ content: 'Item with number marker'
53
+ };
54
+
55
+ export const Check = Template.bind({});
56
+ Check.args = {
57
+ kind : 'check',
58
+ content: 'Item with checkmark'
59
+ };
60
+
61
+ export const None = Template.bind({});
62
+ None.args = {
63
+ kind : 'none',
64
+ content: 'Item without marker'
65
+ };
66
+
67
+ export const SizeVariants = () => html`
68
+ <div style="display: flex; flex-direction: column; gap: 1rem;">
69
+ <bd-li kind="bullet" size="sm">Small list item</bd-li>
70
+ <bd-li kind="bullet" size="md">Medium list item</bd-li>
71
+ <bd-li kind="bullet" size="lg">Large list item</bd-li>
72
+ </div>
73
+ `;
74
+
75
+ export const WithRichContent = () => html`
76
+ <bd-li kind="bullet" size="lg">
77
+ <strong>Featured item</strong> with additional description text that wraps to multiple lines while maintaining proper alignment with the marker.
78
+ </bd-li>
79
+ `;
@@ -0,0 +1,175 @@
1
+ import { css } from "lit";
2
+
3
+ export default css`
4
+ @layer bd-components {
5
+ .bd-list {
6
+ margin: 0;
7
+ padding: 0;
8
+ list-style: none;
9
+ }
10
+
11
+ /* === COUNTER RESET FOR ORDERED LISTS === */
12
+ .bd-list[type="ordered"] {
13
+ counter-reset: bd-ordered-counter;
14
+ }
15
+
16
+ /* === ORIENTATION STYLES === */
17
+
18
+ /* Vertical (default) */
19
+ .bd-list.vertical {
20
+ display: block;
21
+ }
22
+
23
+ .bd-list.vertical ::slotted(li) {
24
+ display: list-item;
25
+ margin-bottom: var(--spacing-8);
26
+ }
27
+
28
+ /* Ordered list markers for vertical */
29
+ .bd-list[type="ordered"].vertical ::slotted(li) {
30
+ counter-increment: bd-ordered-counter;
31
+ }
32
+
33
+ .bd-list[type="ordered"].vertical ::slotted(li)::before {
34
+ content: counter(bd-ordered-counter) ". ";
35
+ font-weight: var(--typography-fontWeight-semibold);
36
+ color: var(--color-neutral-600);
37
+ margin-right: var(--spacing-8);
38
+ }
39
+
40
+ /* Unordered list markers for vertical */
41
+ .bd-list[type="unordered"].vertical ::slotted(li)::before {
42
+ content: "•";
43
+ font-weight: var(--typography-fontWeight-semibold);
44
+ color: var(--color-neutral-600);
45
+ margin-right: var(--spacing-8);
46
+ }
47
+
48
+ /* Horizontal */
49
+ .bd-list.horizontal {
50
+ display: flex;
51
+ flex-wrap: wrap;
52
+ align-items: center;
53
+ gap: var(--spacing-16);
54
+ }
55
+
56
+ .bd-list.horizontal ::slotted(li) {
57
+ display: flex;
58
+ align-items: center;
59
+ margin: 0;
60
+ }
61
+
62
+ /* Remove markers for horizontal lists */
63
+ .bd-list.horizontal ::slotted(li)::before {
64
+ display: none;
65
+ }
66
+
67
+ /* Reset counter for horizontal ordered lists */
68
+ .bd-list[type="ordered"].horizontal {
69
+ counter-reset: none;
70
+ }
71
+
72
+ .bd-list[type="ordered"].horizontal ::slotted(li) {
73
+ counter-increment: unset;
74
+ }
75
+
76
+ /* === SPACING VARIANTS === */
77
+
78
+ .bd-list.sm {
79
+ margin: var(--spacing-8) 0;
80
+ }
81
+
82
+ .bd-list.md {
83
+ margin: var(--spacing-16) 0;
84
+ }
85
+
86
+ .bd-list.lg {
87
+ margin: var(--spacing-24) 0;
88
+ }
89
+
90
+ /* Horizontal spacing adjustments */
91
+ .bd-list.horizontal.sm {
92
+ gap: var(--spacing-8);
93
+ }
94
+
95
+ .bd-list.horizontal.md {
96
+ gap: var(--spacing-16);
97
+ }
98
+
99
+ .bd-list.horizontal.lg {
100
+ gap: var(--spacing-24);
101
+ }
102
+
103
+ /* === VARIANT STYLES === */
104
+
105
+ .bd-list.compact {
106
+ margin: var(--spacing-4) 0;
107
+ }
108
+
109
+ .bd-list.compact ::slotted(li) {
110
+ margin-bottom: var(--spacing-4);
111
+ }
112
+
113
+ .bd-list.spacious {
114
+ margin: var(--spacing-32) 0;
115
+ }
116
+
117
+ .bd-list.spacious ::slotted(li) {
118
+ margin-bottom: var(--spacing-12);
119
+ }
120
+
121
+ /* Horizontal variants */
122
+ .bd-list.horizontal.compact {
123
+ gap: var(--spacing-4);
124
+ }
125
+
126
+ .bd-list.horizontal.spacious {
127
+ gap: var(--spacing-32);
128
+ }
129
+
130
+ /* === NESTED LISTS === */
131
+
132
+ .bd-list .bd-list {
133
+ margin-left: var(--spacing-16);
134
+ margin-top: var(--spacing-8);
135
+ }
136
+
137
+ /* Nested ordered list counter reset */
138
+ .bd-list[type="ordered"] .bd-list[type="ordered"] {
139
+ counter-reset: bd-ordered-nested;
140
+ }
141
+
142
+ /* Reset first/last child margins */
143
+ .bd-list:first-child {
144
+ margin-top: 0;
145
+ }
146
+
147
+ .bd-list:last-child {
148
+ margin-bottom: 0;
149
+ }
150
+
151
+ /* === CUSTOM MARKER STYLES (optional enhancements) === */
152
+
153
+ /* Different marker styles for unordered lists */
154
+ .bd-list[type="unordered"].circle ::slotted(li)::before {
155
+ content: "○";
156
+ }
157
+
158
+ .bd-list[type="unordered"].square ::slotted(li)::before {
159
+ content: "■";
160
+ }
161
+
162
+ .bd-list[type="unordered"].dash ::slotted(li)::before {
163
+ content: "–";
164
+ }
165
+
166
+ /* Different numbering styles for ordered lists */
167
+ .bd-list[type="ordered"].lower-alpha ::slotted(li)::before {
168
+ content: counter(bd-ordered-counter, lower-alpha) ". ";
169
+ }
170
+
171
+ .bd-list[type="ordered"].upper-roman ::slotted(li)::before {
172
+ content: counter(bd-ordered-counter, upper-roman) ". ";
173
+ }
174
+ }
175
+ `;
@@ -0,0 +1,44 @@
1
+ import { LitElement, html } from "lit";
2
+ import { tokens } from "../../tokens/tokens.js";
3
+ import listCSS from "./list.css.js";
4
+
5
+ export class BdList extends LitElement {
6
+ static properties = {
7
+ type : { type: String, reflect: true }, // 'ordered', 'unordered'
8
+ spacing : { type: String, reflect: true }, // sm, md, lg
9
+ variant : { type: String, reflect: true }, // default, compact, spacious
10
+ start : { type: Number, reflect: true }, // start number for ordered list
11
+ orientation: { type: String, reflect: true } // horizontal, vertical
12
+ };
13
+
14
+ constructor() {
15
+ super();
16
+ this.type = "unordered"; // 'ordered' | 'unordered'
17
+ this.spacing = "md";
18
+ this.variant = "default";
19
+ this.start = 1;
20
+ this.orientation = "vertical";
21
+ }
22
+
23
+ render() {
24
+ const classes = `bd-list ${this.spacing} ${this.variant} ${this.orientation}`;
25
+
26
+ if (this.type === "ordered") {
27
+ return html`
28
+ <ol class="${classes}" start="${this.start}">
29
+ <slot></slot>
30
+ </ol>
31
+ `;
32
+ }
33
+
34
+ return html`
35
+ <ul class="${classes}">
36
+ <slot></slot>
37
+ </ul>
38
+ `;
39
+ }
40
+
41
+ static styles = [tokens, listCSS];
42
+ }
43
+
44
+ customElements.define("bd-list", BdList);
@@ -1,6 +1,8 @@
1
1
  import { LitElement, html } from "lit";
2
2
  import { tokens } from "../../tokens/tokens.js";
3
+ import "../heading/heading.js";
3
4
  import modalCSS from "../modal/modal.css";
5
+ import "../paragraph/paragraph.js";
4
6
 
5
7
  export class BdModal extends LitElement {
6
8
  static properties = {
@@ -10,8 +12,6 @@ export class BdModal extends LitElement {
10
12
  modalText: { type: String }
11
13
  };
12
14
 
13
-
14
-
15
15
  _onClose() {
16
16
  this.dispatchEvent(new CustomEvent("close-modal", { bubbles: true, composed: true }));
17
17
  }
@@ -28,14 +28,15 @@ export class BdModal extends LitElement {
28
28
  ${this.icon
29
29
  ? html`<img src="${this.icon}" alt="icon" class="bd-carousel-modal-icon" />`
30
30
  : ""}
31
- <h2 id="modal-title">${this.title}</h2>
32
- <p id="modal-description">${this.modalText}</p>
31
+ <bd-h as="h2" id="modal-title">${this.title}</bd-h>
32
+ <bd-p kind="regular" id="modal-description">${this.modalText}</bd-p>
33
33
  <button @click="${this._onClose}" aria-label="Close modal">Close</button>
34
34
  </div>
35
35
  </div>
36
36
  `;
37
37
  }
38
38
  }
39
+
39
40
  BdModal.styles = [tokens, modalCSS];
40
41
 
41
- customElements.define("bd-modal", BdModal);
42
+ customElements.define("bd-modal", BdModal);