@nuralyui/button 0.0.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.
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Google Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { LitElement } from 'lit';
7
+ import '../hy-button.component';
8
+ import '../../../helpers/ThemeHandler';
9
+ export declare class ElButtonDemoElement extends LitElement {
10
+ render(): import("lit").TemplateResult<1>;
11
+ }
12
+ declare global {
13
+ interface HTMLElementTagNameMap {
14
+ 'hy-buttons-demo': ElButtonDemoElement;
15
+ }
16
+ }
17
+ //# sourceMappingURL=hy-buttons-demo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hy-buttons-demo.d.ts","sourceRoot":"","sources":["../../../../src/components/button/demo/hy-buttons-demo.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,UAAU,EAAO,MAAM,KAAK,CAAC;AAErC,OAAO,wBAAwB,CAAC;AAChC,OAAO,+BAA+B,CAAC;AACvC,qBACa,mBAAoB,SAAQ,UAAU;IACxC,MAAM;CA6LhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,mBAAmB,CAAC;KACxC;CACF"}
@@ -0,0 +1,211 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Google Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
7
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
10
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
11
+ };
12
+ import { LitElement, html } from 'lit';
13
+ import { customElement } from 'lit/decorators.js';
14
+ import '../hy-button.component';
15
+ import '../../../helpers/ThemeHandler';
16
+ let ElButtonDemoElement = class ElButtonDemoElement extends LitElement {
17
+ render() {
18
+ return html `
19
+ <theme-handler>
20
+ <h1>Sizes</h1>
21
+ <br />
22
+ <hy-button> Default Button</hy-button>
23
+ <hy-button size="small">Small Button</hy-button>
24
+ <hy-button size="large">Large Button</hy-button>
25
+ <br /><br />
26
+ <hy-button .icon="${['search']}"> Default Button</hy-button>
27
+ <hy-button .icon="${['search']}" size="small">Small Button</hy-button>
28
+ <hy-button .icon="${['search']}" size="large">Large Button</hy-button>
29
+
30
+ <br /><br />
31
+ <hy-button .icon="${['search']}"></hy-button>
32
+ <hy-button .icon="${['search']}" size="small"></hy-button>
33
+ <hy-button .icon="${['search']}" size="large"></hy-button>
34
+ <br /><br />
35
+
36
+ <h1>Types</h1>
37
+ <br /><br />
38
+
39
+ <table>
40
+ <tbody>
41
+ <tr>
42
+ <td></td>
43
+ <td>Primary</td>
44
+ <td>Secondary</td>
45
+ <td>Ghost</td>
46
+ <td>Danger</td>
47
+ <td>Default</td>
48
+ </tr>
49
+ <tr>
50
+ <td>Default</td>
51
+ <td>
52
+ <hy-button type="primary"><span>Primary Button</span></hy-button>
53
+ </td>
54
+ <td>
55
+ <hy-button type="secondary"><span>Secondary Button </span></hy-button>
56
+ </td>
57
+ <td>
58
+ <hy-button type="ghost"> <span>Ghost button</span></hy-button>
59
+ </td>
60
+ <td>
61
+ <hy-button type="danger"><span>Danger Button </span></hy-button>
62
+ </td>
63
+ <td>
64
+ <hy-button><span>Default Button</span></hy-button>
65
+ </td>
66
+ </tr>
67
+ <tr>
68
+ <td>Dashed</td>
69
+ <td>
70
+ <hy-button type="primary" ?dashed=${true}><span>Primary Button text only</span></hy-button>
71
+ </td>
72
+ <td>
73
+ <hy-button type="secondary" ?dashed=${true}><span>Secondary dashed</span></hy-button>
74
+ </td>
75
+ <td>
76
+ <hy-button type="ghost" ?dashed=${true}><span>Ghost dashed</span></hy-button>
77
+ </td>
78
+ <td>
79
+ <hy-button type="danger" ?dashed=${true}><span>Danger dashed</span></hy-button>
80
+ </td>
81
+ <td>
82
+ <hy-button ?dashed=${true}><span>Default dashed</span></hy-button>
83
+ </td>
84
+ </tr>
85
+ <tr>
86
+ <td>Loading</td>
87
+ <td>
88
+ <hy-button type="primary" loading><span>Primary Button loading</span></hy-button>
89
+ </td>
90
+ <td>
91
+ <hy-button type="secondary" loading><span>Secondary button loading </span></hy-button>
92
+ </td>
93
+ <td>
94
+ <hy-button type="ghost" loading><span>Ghost button loading</span></hy-button>
95
+ </td>
96
+ <td>
97
+ <hy-button type="danger" loading><span>Danger button loading</span></hy-button>
98
+ </td>
99
+ <td>
100
+ <hy-button loading><span>Default button loading</span></hy-button>
101
+ </td>
102
+ </tr>
103
+ <tr>
104
+ <td>Disabled</td>
105
+ <td>
106
+ <hy-button type="primary" disabled><span>Primary Button disabled</span></hy-button>
107
+ </td>
108
+ <td>
109
+ <hy-button type="secondary" disabled><span>Secondary Button disabled</span></hy-button>
110
+ </td>
111
+ <td>
112
+ <hy-button type="ghost" disabled> <span>Ghost button disabled</span></hy-button>
113
+ </td>
114
+ <td>
115
+ <hy-button type="danger" disabled><span>Danger Button disabled</span></hy-button>
116
+ </td>
117
+ <td>
118
+ <hy-button disabled><span>Default Button disabled</span></hy-button>
119
+ </td>
120
+ </tr>
121
+ <tr>
122
+ <td>Icon with text default: icon left</td>
123
+ <td>
124
+ <hy-button type="primary" .icon="${['search']}"><span> Primary button icon+text</span></hy-button>
125
+ </td>
126
+ <td>
127
+ <hy-button type="secondary" .icon="${['search']}"><span> Secondary button icon+text</span></hy-button>
128
+ </td>
129
+ <td>
130
+ <hy-button type="ghost" .icon="${['search']}"><span> Ghost button icon+text</span></hy-button>
131
+ </td>
132
+ <td>
133
+ <hy-button type="danger" .icon="${['search']}"><span> Danger button icon+text</span></hy-button>
134
+ </td>
135
+ <td>
136
+ <hy-button .icon="${['search']}"><span> Default button icon+text</span></hy-button>
137
+ </td>
138
+ </tr>
139
+ <tr>
140
+ <td>Icon with text: icon right</td>
141
+ <td>
142
+ <hy-button type="primary" .icon="${['search']}" iconPosition="right"
143
+ ><span> Primary button icon+text</span></hy-button
144
+ >
145
+ </td>
146
+ <td>
147
+ <hy-button type="secondary" .icon="${['search']}" iconPosition="right"
148
+ ><span> Secondary button icon+text</span></hy-button
149
+ >
150
+ </td>
151
+ <td>
152
+ <hy-button type="ghost" .icon="${['search']}" iconPosition="right"
153
+ ><span> Ghost button icon+text</span></hy-button
154
+ >
155
+ </td>
156
+ <td>
157
+ <hy-button type="danger" .icon="${['search']}" iconPosition="right"
158
+ ><span> Danger button icon+text</span></hy-button
159
+ >
160
+ </td>
161
+ <td>
162
+ <hy-button .icon="${['search']}" iconPosition="right"><span> Default button icon+text</span></hy-button>
163
+ </td>
164
+ </tr>
165
+ <tr>
166
+ <td>Icon with text: icon both side</td>
167
+ <td>
168
+ <hy-button type="primary" .icon="${['search', 'bomb']}" iconPosition="right"
169
+ ><span> Primary button icon+text</span></hy-button
170
+ >
171
+ </td>
172
+ <td>
173
+ <hy-button type="secondary" .icon="${['search', 'bomb']}" iconPosition="right"
174
+ ><span> Secondary button icon+text</span></hy-button
175
+ >
176
+ </td>
177
+ <td>
178
+ <hy-button type="ghost" .icon="${['search', 'bomb']}" iconPosition="right"
179
+ ><span> Ghost button icon+text</span></hy-button
180
+ >
181
+ </td>
182
+ <td>
183
+ <hy-button type="danger" .icon="${['search', 'bomb']}" iconPosition="right"
184
+ ><span> Danger button icon+text</span></hy-button
185
+ >
186
+ </td>
187
+ <td>
188
+ <hy-button .icon="${['search', 'bomb']}" iconPosition="right"
189
+ ><span> Default button icon+text</span></hy-button
190
+ >
191
+ </td>
192
+ </tr>
193
+ <tr>
194
+ <td>Icon only</td>
195
+ <td><hy-button type="primary" .icon="${['search']}"></hy-button></td>
196
+ <td><hy-button type="secondary" .icon="${['search']}"></hy-button></td>
197
+ <td><hy-button type="ghost" .icon="${['search']}"></hy-button></td>
198
+ <td><hy-button type="danger" .icon="${['search']}"></hy-button></td>
199
+ <td><hy-button .icon="${['search']}"></hy-button></td>
200
+ </tr>
201
+ </tbody>
202
+ </table>
203
+ </theme-handler>
204
+ `;
205
+ }
206
+ };
207
+ ElButtonDemoElement = __decorate([
208
+ customElement('hy-buttons-demo')
209
+ ], ElButtonDemoElement);
210
+ export { ElButtonDemoElement };
211
+ //# sourceMappingURL=hy-buttons-demo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hy-buttons-demo.js","sourceRoot":"","sources":["../../../../src/components/button/demo/hy-buttons-demo.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;AAEH,OAAO,EAAC,UAAU,EAAE,IAAI,EAAC,MAAM,KAAK,CAAC;AACrC,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,wBAAwB,CAAC;AAChC,OAAO,+BAA+B,CAAC;AAEvC,IAAa,mBAAmB,GAAhC,MAAa,mBAAoB,SAAQ,UAAU;IACxC,MAAM;QACb,OAAO,IAAI,CAAA;;;;;;;;4BAQa,CAAC,QAAQ,CAAC;4BACV,CAAC,QAAQ,CAAC;4BACV,CAAC,QAAQ,CAAC;;;4BAGV,CAAC,QAAQ,CAAC;4BACV,CAAC,QAAQ,CAAC;4BACV,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oDAqCc,IAAI;;;sDAGF,IAAI;;;kDAGR,IAAI;;;mDAGH,IAAI;;;qCAGlB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mDA0CU,CAAC,QAAQ,CAAC;;;qDAGR,CAAC,QAAQ,CAAC;;;iDAGd,CAAC,QAAQ,CAAC;;;kDAGT,CAAC,QAAQ,CAAC;;;oCAGxB,CAAC,QAAQ,CAAC;;;;;;mDAMK,CAAC,QAAQ,CAAC;;;;;qDAKR,CAAC,QAAQ,CAAC;;;;;iDAKd,CAAC,QAAQ,CAAC;;;;;kDAKT,CAAC,QAAQ,CAAC;;;;;oCAKxB,CAAC,QAAQ,CAAC;;;;;;mDAMK,CAAC,QAAQ,EAAE,MAAM,CAAC;;;;;qDAKhB,CAAC,QAAQ,EAAE,MAAM,CAAC;;;;;iDAKtB,CAAC,QAAQ,EAAE,MAAM,CAAC;;;;;kDAKjB,CAAC,QAAQ,EAAE,MAAM,CAAC;;;;;oCAKhC,CAAC,QAAQ,EAAE,MAAM,CAAC;;;;;;;qDAOD,CAAC,QAAQ,CAAC;uDACR,CAAC,QAAQ,CAAC;mDACd,CAAC,QAAQ,CAAC;oDACT,CAAC,QAAQ,CAAC;sCACxB,CAAC,QAAQ,CAAC;;;;;KAK3C,CAAC;IACJ,CAAC;CACF,CAAA;AA9LY,mBAAmB;IAD/B,aAAa,CAAC,iBAAiB,CAAC;GACpB,mBAAmB,CA8L/B;SA9LY,mBAAmB","sourcesContent":["/**\n * @license\n * Copyright 2023 Google Laabidi Aymen\n * SPDX-License-Identifier: MIT\n */\n\nimport {LitElement, html} from 'lit';\nimport {customElement} from 'lit/decorators.js';\nimport '../hy-button.component';\nimport '../../../helpers/ThemeHandler';\n@customElement('hy-buttons-demo')\nexport class ElButtonDemoElement extends LitElement {\n override render() {\n return html`\n <theme-handler>\n <h1>Sizes</h1>\n <br />\n <hy-button> Default Button</hy-button>\n <hy-button size=\"small\">Small Button</hy-button>\n <hy-button size=\"large\">Large Button</hy-button>\n <br /><br />\n <hy-button .icon=\"${['search']}\"> Default Button</hy-button>\n <hy-button .icon=\"${['search']}\" size=\"small\">Small Button</hy-button>\n <hy-button .icon=\"${['search']}\" size=\"large\">Large Button</hy-button>\n\n <br /><br />\n <hy-button .icon=\"${['search']}\"></hy-button>\n <hy-button .icon=\"${['search']}\" size=\"small\"></hy-button>\n <hy-button .icon=\"${['search']}\" size=\"large\"></hy-button>\n <br /><br />\n\n <h1>Types</h1>\n <br /><br />\n\n <table>\n <tbody>\n <tr>\n <td></td>\n <td>Primary</td>\n <td>Secondary</td>\n <td>Ghost</td>\n <td>Danger</td>\n <td>Default</td>\n </tr>\n <tr>\n <td>Default</td>\n <td>\n <hy-button type=\"primary\"><span>Primary Button</span></hy-button>\n </td>\n <td>\n <hy-button type=\"secondary\"><span>Secondary Button </span></hy-button>\n </td>\n <td>\n <hy-button type=\"ghost\"> <span>Ghost button</span></hy-button>\n </td>\n <td>\n <hy-button type=\"danger\"><span>Danger Button </span></hy-button>\n </td>\n <td>\n <hy-button><span>Default Button</span></hy-button>\n </td>\n </tr>\n <tr>\n <td>Dashed</td>\n <td>\n <hy-button type=\"primary\" ?dashed=${true}><span>Primary Button text only</span></hy-button>\n </td>\n <td>\n <hy-button type=\"secondary\" ?dashed=${true}><span>Secondary dashed</span></hy-button>\n </td>\n <td>\n <hy-button type=\"ghost\" ?dashed=${true}><span>Ghost dashed</span></hy-button>\n </td>\n <td>\n <hy-button type=\"danger\" ?dashed=${true}><span>Danger dashed</span></hy-button>\n </td>\n <td>\n <hy-button ?dashed=${true}><span>Default dashed</span></hy-button>\n </td>\n </tr>\n <tr>\n <td>Loading</td>\n <td>\n <hy-button type=\"primary\" loading><span>Primary Button loading</span></hy-button>\n </td>\n <td>\n <hy-button type=\"secondary\" loading><span>Secondary button loading </span></hy-button>\n </td>\n <td>\n <hy-button type=\"ghost\" loading><span>Ghost button loading</span></hy-button>\n </td>\n <td>\n <hy-button type=\"danger\" loading><span>Danger button loading</span></hy-button>\n </td>\n <td>\n <hy-button loading><span>Default button loading</span></hy-button>\n </td>\n </tr>\n <tr>\n <td>Disabled</td>\n <td>\n <hy-button type=\"primary\" disabled><span>Primary Button disabled</span></hy-button>\n </td>\n <td>\n <hy-button type=\"secondary\" disabled><span>Secondary Button disabled</span></hy-button>\n </td>\n <td>\n <hy-button type=\"ghost\" disabled> <span>Ghost button disabled</span></hy-button>\n </td>\n <td>\n <hy-button type=\"danger\" disabled><span>Danger Button disabled</span></hy-button>\n </td>\n <td>\n <hy-button disabled><span>Default Button disabled</span></hy-button>\n </td>\n </tr>\n <tr>\n <td>Icon with text default: icon left</td>\n <td>\n <hy-button type=\"primary\" .icon=\"${['search']}\"><span> Primary button icon+text</span></hy-button>\n </td>\n <td>\n <hy-button type=\"secondary\" .icon=\"${['search']}\"><span> Secondary button icon+text</span></hy-button>\n </td>\n <td>\n <hy-button type=\"ghost\" .icon=\"${['search']}\"><span> Ghost button icon+text</span></hy-button>\n </td>\n <td>\n <hy-button type=\"danger\" .icon=\"${['search']}\"><span> Danger button icon+text</span></hy-button>\n </td>\n <td>\n <hy-button .icon=\"${['search']}\"><span> Default button icon+text</span></hy-button>\n </td>\n </tr>\n <tr>\n <td>Icon with text: icon right</td>\n <td>\n <hy-button type=\"primary\" .icon=\"${['search']}\" iconPosition=\"right\"\n ><span> Primary button icon+text</span></hy-button\n >\n </td>\n <td>\n <hy-button type=\"secondary\" .icon=\"${['search']}\" iconPosition=\"right\"\n ><span> Secondary button icon+text</span></hy-button\n >\n </td>\n <td>\n <hy-button type=\"ghost\" .icon=\"${['search']}\" iconPosition=\"right\"\n ><span> Ghost button icon+text</span></hy-button\n >\n </td>\n <td>\n <hy-button type=\"danger\" .icon=\"${['search']}\" iconPosition=\"right\"\n ><span> Danger button icon+text</span></hy-button\n >\n </td>\n <td>\n <hy-button .icon=\"${['search']}\" iconPosition=\"right\"><span> Default button icon+text</span></hy-button>\n </td>\n </tr>\n <tr>\n <td>Icon with text: icon both side</td>\n <td>\n <hy-button type=\"primary\" .icon=\"${['search', 'bomb']}\" iconPosition=\"right\"\n ><span> Primary button icon+text</span></hy-button\n >\n </td>\n <td>\n <hy-button type=\"secondary\" .icon=\"${['search', 'bomb']}\" iconPosition=\"right\"\n ><span> Secondary button icon+text</span></hy-button\n >\n </td>\n <td>\n <hy-button type=\"ghost\" .icon=\"${['search', 'bomb']}\" iconPosition=\"right\"\n ><span> Ghost button icon+text</span></hy-button\n >\n </td>\n <td>\n <hy-button type=\"danger\" .icon=\"${['search', 'bomb']}\" iconPosition=\"right\"\n ><span> Danger button icon+text</span></hy-button\n >\n </td>\n <td>\n <hy-button .icon=\"${['search', 'bomb']}\" iconPosition=\"right\"\n ><span> Default button icon+text</span></hy-button\n >\n </td>\n </tr>\n <tr>\n <td>Icon only</td>\n <td><hy-button type=\"primary\" .icon=\"${['search']}\"></hy-button></td>\n <td><hy-button type=\"secondary\" .icon=\"${['search']}\"></hy-button></td>\n <td><hy-button type=\"ghost\" .icon=\"${['search']}\"></hy-button></td>\n <td><hy-button type=\"danger\" .icon=\"${['search']}\"></hy-button></td>\n <td><hy-button .icon=\"${['search']}\"></hy-button></td>\n </tr>\n </tbody>\n </table>\n </theme-handler>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hy-buttons-demo': ElButtonDemoElement;\n }\n}\n"]}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { LitElement } from 'lit';
7
+ import { IconPosition } from './hy-button.constants.js';
8
+ export declare class HyButtonElement extends LitElement {
9
+ disabled: boolean;
10
+ loading: boolean;
11
+ size: string;
12
+ type: String;
13
+ dashed: boolean;
14
+ icon: string[];
15
+ iconPosition: IconPosition;
16
+ render(): import("lit").TemplateResult<1>;
17
+ static styles: import("lit").CSSResult[];
18
+ }
19
+ //# sourceMappingURL=hy-button.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hy-button.component.d.ts","sourceRoot":"","sources":["../../../src/components/button/hy-button.component.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAO,UAAU,EAAU,MAAM,KAAK,CAAC;AAE9C,OAAO,EAA2B,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAGhF,qBACa,eAAgB,SAAQ,UAAU;IAE7C,QAAQ,UAAS;IAGjB,OAAO,UAAS;IAGhB,IAAI,SAAgB;IAGpB,IAAI,SAAgC;IAGpC,MAAM,UAAS;IAGf,IAAI,EAAG,MAAM,EAAE,CAAC;IAGhB,YAAY,eAAqB;IAExB,MAAM;IAiBf,OAAgB,MAAM,4BAAU;CACjC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
7
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
10
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
11
+ };
12
+ import { html, LitElement, nothing } from 'lit';
13
+ import { customElement, property } from 'lit/decorators.js';
14
+ import { EMPTY_STRING } from './hy-button.constants.js';
15
+ import { styles } from './hy-button.style.js';
16
+ let HyButtonElement = class HyButtonElement extends LitElement {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.disabled = false;
20
+ this.loading = false;
21
+ this.size = EMPTY_STRING;
22
+ this.type = "default" /* ButtonType.Default */;
23
+ this.dashed = false;
24
+ this.iconPosition = "left" /* IconPosition.Left */;
25
+ }
26
+ render() {
27
+ var _a, _b;
28
+ return html `
29
+ <button
30
+ ?disabled="${this.disabled}"
31
+ data-type="${this.type}"
32
+ data-size=${this.size ? this.size : nothing}
33
+ data-state="${this.loading ? 'loading' : nothing}"
34
+ class="${this.dashed ? 'button-dashed' : nothing}"
35
+ >
36
+ <span id="container">
37
+ ${((_a = this.icon) === null || _a === void 0 ? void 0 : _a.length) ? html ` <hy-icon name=${this.icon[0]}></hy-icon>` : nothing}
38
+ <slot id="slot"></slot>
39
+ ${((_b = this.icon) === null || _b === void 0 ? void 0 : _b.length) == 2 ? html ` <hy-icon name=${this.icon[1]}></hy-icon>` : nothing}
40
+ </span>
41
+ </button>
42
+ `;
43
+ }
44
+ };
45
+ HyButtonElement.styles = styles;
46
+ __decorate([
47
+ property({ type: Boolean })
48
+ ], HyButtonElement.prototype, "disabled", void 0);
49
+ __decorate([
50
+ property({ type: Boolean })
51
+ ], HyButtonElement.prototype, "loading", void 0);
52
+ __decorate([
53
+ property({ type: String })
54
+ ], HyButtonElement.prototype, "size", void 0);
55
+ __decorate([
56
+ property({ type: String })
57
+ ], HyButtonElement.prototype, "type", void 0);
58
+ __decorate([
59
+ property({ type: Boolean })
60
+ ], HyButtonElement.prototype, "dashed", void 0);
61
+ __decorate([
62
+ property({ type: String })
63
+ ], HyButtonElement.prototype, "icon", void 0);
64
+ __decorate([
65
+ property({ reflect: true })
66
+ ], HyButtonElement.prototype, "iconPosition", void 0);
67
+ HyButtonElement = __decorate([
68
+ customElement('hy-button')
69
+ ], HyButtonElement);
70
+ export { HyButtonElement };
71
+ //# sourceMappingURL=hy-button.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hy-button.component.js","sourceRoot":"","sources":["../../../src/components/button/hy-button.component.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;AAEH,OAAO,EAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAC,MAAM,KAAK,CAAC;AAC9C,OAAO,EAAC,aAAa,EAAE,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAa,YAAY,EAAe,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAG5C,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,UAAU;IAA/C;;QAEE,aAAQ,GAAG,KAAK,CAAC;QAGjB,YAAO,GAAG,KAAK,CAAC;QAGhB,SAAI,GAAG,YAAY,CAAC;QAGpB,SAAI,GAAG,kCAA4B,CAAC;QAGpC,WAAM,GAAG,KAAK,CAAC;QAMf,iBAAY,kCAAqB;IAoBnC,CAAC;IAlBU,MAAM;;QACb,OAAO,IAAI,CAAA;;qBAEM,IAAI,CAAC,QAAQ;qBACb,IAAI,CAAC,IAAI;oBACV,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;sBAC7B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;iBACvC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO;;;YAG5C,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,EAAC,CAAC,CAAC,IAAI,CAAA,kBAAkB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO;;YAE7E,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,KAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA,kBAAkB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO;;;KAGzF,CAAC;IACJ,CAAC;CAEF,CAAA;AADiB,sBAAM,GAAG,MAAO,CAAA;AArChC;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;iDACT;AAGjB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;gDACV;AAGhB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;6CACL;AAGpB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;6CACW;AAGpC;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;+CACX;AAGf;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;6CACT;AAGhB;IADC,QAAQ,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;qDACO;AApBtB,eAAe;IAD3B,aAAa,CAAC,WAAW,CAAC;GACd,eAAe,CAwC3B;SAxCY,eAAe","sourcesContent":["/**\n * @license\n * Copyright 2023 Nuraly, Laabidi Aymen\n * SPDX-License-Identifier: MIT\n */\n\nimport {html, LitElement, nothing} from 'lit';\nimport {customElement, property} from 'lit/decorators.js';\nimport {ButtonType, EMPTY_STRING, IconPosition} from './hy-button.constants.js';\nimport {styles} from './hy-button.style.js';\n\n@customElement('hy-button')\nexport class HyButtonElement extends LitElement {\n @property({type: Boolean})\n disabled = false;\n\n @property({type: Boolean})\n loading = false;\n\n @property({type: String})\n size = EMPTY_STRING;\n\n @property({type: String})\n type = ButtonType.Default as String;\n\n @property({type: Boolean})\n dashed = false;\n\n @property({type: String})\n icon!: string[];\n\n @property({reflect: true})\n iconPosition = IconPosition.Left;\n\n override render() {\n return html`\n <button\n ?disabled=\"${this.disabled}\"\n data-type=\"${this.type}\"\n data-size=${this.size ? this.size : nothing}\n data-state=\"${this.loading ? 'loading' : nothing}\"\n class=\"${this.dashed ? 'button-dashed' : nothing}\"\n >\n <span id=\"container\">\n ${this.icon?.length ? html` <hy-icon name=${this.icon[0]}></hy-icon>` : nothing}\n <slot id=\"slot\"></slot>\n ${this.icon?.length == 2 ? html` <hy-icon name=${this.icon[1]}></hy-icon>` : nothing}\n </span>\n </button>\n `;\n }\n static override styles = styles;\n}\n"]}
@@ -0,0 +1,18 @@
1
+ export declare const enum ButtonType {
2
+ Primary = "primary",
3
+ Secondary = "secondary",
4
+ Danger = "danger",
5
+ Ghost = "ghost",
6
+ Default = "default"
7
+ }
8
+ export declare const enum ButtonSize {
9
+ Small = "small",
10
+ Default = "default",
11
+ Large = "Large"
12
+ }
13
+ export declare const enum IconPosition {
14
+ Left = "left",
15
+ Right = "right"
16
+ }
17
+ export declare const EMPTY_STRING = "";
18
+ //# sourceMappingURL=hy-button.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hy-button.constants.d.ts","sourceRoot":"","sources":["../../../src/components/button/hy-button.constants.ts"],"names":[],"mappings":"AAAA,0BAAkB,UAAU;IAC1B,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED,0BAAkB,UAAU;IAC1B,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,0BAAkB,YAAY;IAC5B,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AACD,eAAO,MAAM,YAAY,KAAK,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const EMPTY_STRING = '';
2
+ //# sourceMappingURL=hy-button.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hy-button.constants.js","sourceRoot":"","sources":["../../../src/components/button/hy-button.constants.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC","sourcesContent":["export const enum ButtonType {\n Primary = 'primary',\n Secondary = 'secondary',\n Danger = 'danger',\n Ghost = 'ghost',\n Default = 'default',\n}\n\nexport const enum ButtonSize {\n Small = 'small',\n Default = 'default',\n Large = 'Large',\n}\n\nexport const enum IconPosition {\n Left = 'left',\n Right = 'right',\n}\nexport const EMPTY_STRING = '';\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const styles: import("lit").CSSResult[];
2
+ //# sourceMappingURL=hy-button.style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hy-button.style.d.ts","sourceRoot":"","sources":["../../../src/components/button/hy-button.style.ts"],"names":[],"mappings":"AAoYA,eAAO,MAAM,MAAM,2BAAiB,CAAC"}
@@ -0,0 +1,388 @@
1
+ import { css } from 'lit';
2
+ const buttonStyles = css `
3
+ #container {
4
+ display: flex;
5
+ justify-content: center;
6
+ align-items: center;
7
+ width:100%;
8
+ height:100%;
9
+ }
10
+
11
+ :host([iconPosition='right']) #container {
12
+ flex-direction: row-reverse;
13
+ }
14
+
15
+ hy-icon {
16
+ display: flex;
17
+ justify-content: center;
18
+ align-items: center;
19
+ padding: 2px;
20
+ }
21
+
22
+ button {
23
+ height: var(--hybrid-button-height,var(--hybrid-button-local-height));
24
+ width: var(--hybrid-button-width,var(--hybrid-button-local-width));
25
+ border-left: var(--hybrid-button-border-left,var(--hybrid-button-local-border-left));
26
+ border-right: var(--hybrid-button-border-right,var(--hybrid-button-local-border-right));
27
+ border-top: var(--hybrid-button-border-top,var(--hybrid-button-local-border-top));
28
+ border-bottom: var(--hybrid-button-border-bottom,var(--hybrid-button-local-border-bottom));
29
+ border-top-left-radius:var(--hybrid-button-border-top-left-radius,var(--hybrid-button-local-border-top-left-radius)) ;
30
+ border-top-right-radius: var(--hybrid-button-border-top-right-radius,var(--hybrid-button-local-border-top-right-radius));
31
+ border-bottom-left-radius: var(--hybrid-button-border-bottom-left-radius,var(--hybrid-button-local-border-bottom-left-radius));
32
+ border-bottom-right-radius: var(--hybrid-button-local-border-bottom-right-radius,var(--hybrid-button-local-border-bottom-right-radius));
33
+ background-color: var(--hybrid-button-background-color,var(--hybrid-button-local-background-color));
34
+ color: var(--hybrid-button-text-color,var(--hybrid-button-local-text-color));
35
+ font-size: var(--hybrid-button-font-size,var(--hybrid-button-local-font-size));
36
+ font-weight: var(--hybrid-button-font-weight,var(--hybrid-button-local-font-weight));
37
+ text-transform: var(--hybrid-button-text-transform,var(--hybrid-button-local-text-transform));
38
+ padding-top: var(--hybrid-button-padding-y,var(--hybrid-button-local-padding-y));
39
+ padding-bottom: var(--hybrid-button-padding-y,var(--hybrid-button-local-padding-y));
40
+ padding-right: var(--hybrid-button-padding-x,var(--hybrid-button-local-padding-x));
41
+ padding-left: var(--hybrid-button-padding-x,var(--hybrid-button-local-padding-x));
42
+ font-size: var(--hybrid-button-font-size,var(--hybrid-button-local-font-size));
43
+ }
44
+ button hy-icon {
45
+ --hybrid-icon-color: var(--hybrid-button-text-color,var(--hybrid-button-local-text-color));
46
+ --hybrid-icon-width: var(--hybrid-button-icon-width,var(--hybrid-button-local-icon-width));
47
+ --hybrid-icon-height: var(--hybrid-button-icon-height,var(--hybrid-button-local-icon-height));
48
+
49
+ }
50
+
51
+ button:hover:not(:disabled) {
52
+ cursor: pointer;
53
+ border-color: var(--hybrid-button-hover-border-color,var(--hybrid-button-local-hover-border-color));
54
+ color: var(--hybrid-button-hover-color,var(--hybrid-button-local-hover-color));
55
+ }
56
+ button:hover:not(:disabled) hy-icon {
57
+ --hybrid-icon-color: var(--hybrid-button-hover-color,var(--hybrid-button-local-hover-color));
58
+ }
59
+
60
+ button:active:not(:disabled) {
61
+ outline: none;
62
+ border-color: var(--hybrid-button-active-border-color,var(--hybrid-button-local-active-border-color));
63
+ color: var(--hybrid-button-active-color,var(--hybrid-button-local-active-color));
64
+ }
65
+ button:active:not(:disabled) hy-icon {
66
+ --hybrid-icon-color: var(--hybrid-button-active-color,var(--hybrid-button-local-active-color));
67
+ }
68
+
69
+ button:disabled {
70
+ cursor: auto;
71
+ background-color: var(--hybrid-button-disabled-background-color,var(--hybrid-button-local-disabled-background-color));
72
+ color: var(--hybrid-button-disabled-text-color,var(--hybrid-button-local-disabled-text-color));
73
+ border-color: var(--hybrid-button-disabled-border-color,var(--hybrid-button-local-disabled-border-color));
74
+ }
75
+
76
+ button[data-size='small'] {
77
+ padding-top: var(--hybrid-small-button-padding-y,var(--hybrid-small-button-local-padding-y));
78
+ padding-bottom: var(--hybrid-small-button-padding-y,var(--hybrid-small-button-local-padding-y));
79
+ padding-right: var(--hybrid-small-button-padding-x,var(--hybrid-small-button-local-padding-x));
80
+ padding-left: var(--hybrid-small-button-padding-x,var(--hybrid-small-button-local-padding-x));
81
+ font-size: var(--hybrid-small-button-font-size,var(--hybrid-small-button-local-font-size));
82
+ }
83
+
84
+ button[data-size='large'] {
85
+ padding-top: var(--hybrid-large-button-padding-y,var(--hybrid-large-button-local-padding-y));
86
+ padding-bottom: var(--hybrid-large-button-padding-y,var(--hybrid-large-button-local-padding-y));
87
+ padding-right: var(--hybrid-large-button-padding-x,var(--hybrid-large-button-local-padding-x));
88
+ padding-left: var(--hybrid-large-button-padding-x,var(--hybrid-large-button-local-padding-x));
89
+ font-size: var(--hybrid-large-button-font-size,var(--hybrid-large-button-local-font-size));
90
+ }
91
+
92
+ button[data-state='loading'] {
93
+ opacity: 0.5;
94
+ }
95
+ button[data-type='danger'] hy-icon {
96
+ --hybrid-icon-color: var(--hybrid-button-danger-text-color,var(--hybrid-button-local-danger-text-color));
97
+ }
98
+ button[data-type='danger'] {
99
+ border-color: var(--hybrid-button-danger-border-color,var(--hybrid-button-local-danger-border-color));
100
+ background-color: var(--hybrid-button-danger-background-color,var(--hybrid-button-local-danger-background-color));
101
+ color: var(--hybrid-button-danger-text-color,var(--hybrid-button-local-danger-text-color));
102
+ }
103
+ button[data-type='danger'].button-dashed {
104
+ border-color: var(--hybrid-button-danger-dashed-border-color,var(--hybrid-button-local-danger-dashed-border-color));
105
+ }
106
+ button[data-type='danger']:disabled {
107
+ border-color: var(--hybrid-button-danger-disabled-border-color,var(--hybrid-button-local-danger-disabled-border-color));
108
+ background-color: var(--hybrid-button-danger-disabled-background-color,var(--hybrid-button-local-danger-disabled-background-color));
109
+ color: var(--hybrid-button-danger-disabled-text-color,var(--hybrid-button-local-danger-disabled-text-color));
110
+ }
111
+
112
+ button[data-type='danger']:hover:not(:disabled) {
113
+ background-color: var(--hybrid-button-danger-hover-background-color,var(--hybrid-button-local-danger-hover-background-color));
114
+ border-color: var(--hybrid-button-danger-hover-border-color,var(--hybrid-button-local-danger-hover-border-color));
115
+ color: var(--hybrid-button-danger-text-color,var(--hybrid-button-local-danger-text-color));
116
+ }
117
+ button[data-type='danger']:hover:not(:disabled) hy-icon {
118
+ --hybrid-icon-color: var(--hybrid-button-danger-text-color,var(--hybrid-button-local-danger-text-color));
119
+ }
120
+
121
+ button[data-type='danger']:active:not(:disabled) {
122
+ background-color: var(--hybrid-button-danger-active-background-color,var(--hybrid-button-local-danger-active-background-color));
123
+ border-color: var(--hybrid-button-danger-active-border-color,var(--hybrid-button-local-danger-active-border-color));
124
+ outline: var(--hybrid-button-danger-outline,var(--hybrid-button-local-danger-outline));
125
+ outline-offset: var(--hybrid-button-danger-outline-offset,var(--hybrid-button-local-danger-outline-offset));
126
+ }
127
+ button[data-type='primary'] hy-icon {
128
+ --hybrid-icon-color: var(--hybrid-button-primary-text-color,var(--hybrid-button-local-primary-text-color));
129
+ }
130
+ button[data-type='primary'] {
131
+ border-color: var(--hybrid-button-primary-border-color,var(--hybrid-button-local-primary-border-color));
132
+ background-color: var(--hybrid-button-primary-background-color,var(--hybrid-button-local-primary-background-color));
133
+ color: var(--hybrid-button-primary-text-color,var(--hybrid-button-local-primary-text-color));
134
+ }
135
+ button[data-type='primary'].button-dashed {
136
+ border-color: var(--hybrid-button-primary-dashed-border-color,var(--hybrid-button-local-primary-dashed-border-color));
137
+ }
138
+
139
+ button[data-type='primary']:disabled {
140
+ border-color: var(--hybrid-button-primary-disabled-border-color,var(--hybrid-button-local-primary-disabled-border-color));
141
+ background-color: var(--hybrid-button-primary-disabled-background-color,var(--hybrid-button-local-primary-disabled-background-color));
142
+ color: var(--hybrid-button-primary-disabled-text-color,var(--hybrid-button-local-primary-disabled-text-color));
143
+ }
144
+
145
+ button[data-type='primary']:hover:not(:disabled) {
146
+ background-color: var(--hybrid-button-primary-hover-background-color,var(--hybrid-button-local-primary-hover-background-color));
147
+ border-color: var(--hybrid-button-primary-hover-border-color,var(--hybrid-button-local-primary-hover-border-color));
148
+ color: var(--hybrid-button-primary-text-color,var(--hybrid-button-local-primary-text-color));
149
+ }
150
+ button[data-type='primary']:hover:not(:disabled) hy-icon {
151
+ --hybrid-icon-color: var(--hybrid-button-primary-text-color,var(--hybrid-button-local-primary-text-color));
152
+ }
153
+ button[data-type='primary']:active:not(:disabled) {
154
+ border-color: var(--hybrid-button-primary-active-border-color,var(--hybrid-button-local-primary-active-border-color));
155
+ background-color: var(--hybrid-button-primary-active-background-color,var(--hybrid-button-local-primary-active-background-color));
156
+ outline: var(--hybrid-button-primary-outline,var(--hybrid-button-local-primary-outline));
157
+ outline-offset: var(--hybrid-button-primary-outline-offset,var(--hybrid-button-local-primary-outline-offset));
158
+ }
159
+ button[data-type='ghost'] hy-icon {
160
+ --hybrid-icon-color: var(--hybrid-button-ghost-text-color,var(--hybrid-button-local-ghost-text-color));
161
+ }
162
+ button[data-type='ghost'] {
163
+ background-color: var(--hybrid-button-ghost-background-color,var(--hybrid-button-local-ghost-background-color));
164
+ color: var(--hybrid-button-ghost-text-color,var(--hybrid-button-local-ghost-text-color));
165
+ border-color: var(--hybrid-button-ghost-border-color,var(--hybrid-button-local-ghost-border-color));
166
+ }
167
+ button[data-type='ghost'].button-dashed {
168
+ border-color: var(--hybrid-button-ghost-dashed-border-color,var(--hybrid-button-local-ghost-dashed-border-color));
169
+ }
170
+ button[data-type='ghost']:disabled {
171
+ background-color: var(--hybrid-button-ghost-disabled-background-color,var(--hybrid-button-local-ghost-disabled-background-color));
172
+ color: var(--hybrid-button-ghost-disabled-text-color,var(--hybrid-button-local-ghost-disabled-text-color));
173
+ border-color: var(--hybrid-button-ghost-disabled-border-color,var(--hybrid-button-local-ghost-disabled-border-color));
174
+ }
175
+
176
+ button[data-type='ghost']:hover:not(:disabled) {
177
+ background-color: var(--hybrid-button-ghost-hover-background-color,var(--hybrid-button-local-ghost-hover-background-color));
178
+ color: var(--hybrid-button-ghost-hover-text-color,var(--hybrid-button-local-ghost-hover-text-color));
179
+ border-color: var(--hybrid-button-local-ghost-hover-border-color,var(--hybrid-button-local-ghost-hover-border-color));
180
+ }
181
+ button[data-type='ghost']:hover:not(:disabled) hy-icon {
182
+ --hybrid-icon-color: var(--hybrid-button-ghost-hover-text-color,var(--hybrid-button-local-ghost-hover-text-color));
183
+ }
184
+ button[data-type='ghost']:active:not(:disabled) {
185
+ background-color: var(--hybrid-button-ghost-active-background-color,var(--hybrid-button-local-ghost-active-background-color));
186
+ border-color: var(--hybrid-button-ghost-active-border-color,var(--hybrid-button-local-ghost-active-border-color));
187
+ }
188
+ button[data-type='secondary'] hy-icon {
189
+ --hybrid-icon-color: var(--hybrid-button-secondary-text-color,var(--hybrid-button-local-secondary-text-color));
190
+ }
191
+ button[data-type='secondary'] {
192
+ background-color: var(--hybrid-button-secondary-background-color,var(--hybrid-button-local-secondary-background-color));
193
+ color: var(--hybrid-button-secondary-text-color,var(--hybrid-button-local-secondary-text-color));
194
+ border-color: var(--hybrid-button-secondary-border-color,var(--hybrid-button-local-secondary-border-color));
195
+ }
196
+ button[data-type='secondary'].button-dashed {
197
+ border-color: var(--hybrid-button-secondary-dashed-border-color,var(--hybrid-button-local-secondary-dashed-border-color));
198
+ }
199
+ button[data-type='secondary']:disabled {
200
+ background-color: var(--hybrid-button-secondary-disabled-background-color,var(--hybrid-button-local-secondary-disabled-background-color));
201
+ color: var(--hybrid-button-secondary-disabled-text-color,var(--hybrid-button-local-secondary-disabled-text-color));
202
+ border-color: var(--hybrid-button-secondary-disabled-border-color,var(--hybrid-button-local-secondary-disabled-border-color));
203
+ }
204
+ button[data-type='secondary']:hover:not(:disabled) {
205
+ background-color: var(--hybrid-button-secondary-hover-background-color,var(--hybrid-button-local-secondary-hover-background-color));
206
+ color: var(--hybrid-button-secondary-text-color,var(--hybrid-button-local-secondary-text-color));
207
+ border-color: var(--hybrid-button-secondary-hover-border-color,var(--hybrid-button-local-secondary-hover-border-color));
208
+ }
209
+ button[data-type='secondary']:hover:not(:disabled) hy-icon {
210
+ --hybrid-icon-color: var(--hybrid-button-secondary-text-color,var(--hybrid-button-local-secondary-text-color));
211
+ }
212
+
213
+ button[data-type='secondary']:active:not(:disabled) {
214
+ background-color: var(--hybrid-button-secondary-active-background-color,var(--hybrid-button-local-secondary-active-background-color));
215
+ border-color: var(--hybrid-button-secondary-active-border-color,var(--hybrid-button-local-secondary-active-border-color));
216
+ outline: var(--hybrid-button-secondary-outline,var(--hybrid-button-local-secondary-outline));
217
+ outline-offset: var(--hybrid-button-secondary-outline-offset,var(--hybrid-button-local-secondary-outline-offset));
218
+ }
219
+ .button-dashed {
220
+ border-style: dashed;
221
+ }
222
+ :host {
223
+ /* Default Button Style */
224
+ --hybrid-button-local-border-top: 2px solid #d0d0d0;
225
+ --hybrid-button-local-border-bottom: 2px solid #d0d0d0;
226
+ --hybrid-button-local-border-left: 2px solid #d0d0d0;
227
+ --hybrid-button-local-border-right: 2px solid #d0d0d0;
228
+ --hybrid-button-local-border-top-left-radius: 0px;
229
+ --hybrid-button-local-border-top-right-radius: 0px;
230
+ --hybrid-button-local-border-bottom-left-radius: 0px;
231
+ --hybrid-button-local-border-bottom-right-radius: 0px;
232
+ --hybrid-button-local-background-color: #f9f9f9;
233
+ --hybrid-button-local-text-color: #393939;
234
+ --hybrid-button-local-hover-border-color: #1677ff;
235
+ --hybrid-button-local-hover-color: #1677ff;
236
+ --hybrid-button-local-font-size: 0.9rem;
237
+ --hybrid-button-local-font-weight: normal;
238
+ --hybrid-button-local-text-transform: none;
239
+ --hybrid-button-local-active-border-color: #1661b1;
240
+ --hybrid-button-local-active-color: #184d86;
241
+ --hybrid-button-local-disabled-background-color: #c6c6c6;
242
+ --hybrid-button-local-disabled-text-color: #8d8d8d;
243
+ --hybrid-button-local-disabled-border-color: #bbb;
244
+ --hybrid-button-local-height: auto;
245
+ --hybrid-button-local-width: auto;
246
+ --hybrid-button-local-padding-y: 0.5rem;
247
+ --hybrid-button-local-padding-x: 0.6rem;
248
+ --hybrid-button-local-icon-width:14px;
249
+ --hybrid-button-local-icon-height:15px;
250
+
251
+ /* Primary Button Style */
252
+ --hybrid-button-local-primary-border-color: #0f62fe;
253
+ --hybrid-button-local-primary-background-color: #0f62fe;
254
+ --hybrid-button-local-primary-text-color: #ffffff;
255
+ --hybrid-button-local-primary-outline: 1px solid white;
256
+ --hybrid-button-local-primary-outline-offset: -3px;
257
+ --hybrid-button-local-primary-hover-background-color: #0353e9;
258
+ --hybrid-button-local-primary-hover-border-color: #0353e9;
259
+ --hybrid-button-local-primary-active-background-color: #0f62fe;
260
+ --hybrid-button-local-primary-active-border-color: #0f62fe;
261
+ --hybrid-button-local-primary-disabled-text-color: #8d8d8d;
262
+ --hybrid-button-local-primary-disabled-background-color: #c6c6c6;
263
+ --hybrid-button-local-primary-disabled-border-color: #c6c6c6;
264
+ --hybrid-button-local-primary-dashed-border-color: #ffffff;
265
+
266
+ /* Danger button style */
267
+ --hybrid-button-local-danger-background-color: #da1e28;
268
+ --hybrid-button-local-danger-text-color: #ffffff;
269
+ --hybrid-button-local-danger-border-color: #da1e28;
270
+ --hybrid-button-local-danger-outline: 1px solid white;
271
+ --hybrid-button-local-danger-outline-offset: -3px;
272
+ --hybrid-button-local-danger-hover-background-color: #ba1b23;
273
+ --hybrid-button-local-danger-hover-border-color: #ba1b23;
274
+ --hybrid-button-local-danger-active-background-color: #da1e28;
275
+ --hybrid-button-local-danger-active-border-color: #0f62fe;
276
+ --hybrid-button-local-danger-disabled-background-color: #c6c6c6;
277
+ --hybrid-button-local-danger-disabled-text-color: #8d8d8d;
278
+ --hybrid-button-local-danger-disabled-border-color: #c6c6c6;
279
+ --hybrid-button-local-danger-dashed-border-color: #ffffff;
280
+
281
+ /* Ghost button style */
282
+ --hybrid-button-local-ghost-background-color: #ffffff;
283
+ --hybrid-button-local-ghost-text-color: #0f62fe;
284
+ --hybrid-button-local-ghost-border-color: #ffffff;
285
+ --hybrid-button-local-ghost-active-background-color: #ffffff;
286
+ --hybrid-button-local-ghost-active-text-color: #054ada;
287
+ --hybrid-button-local-ghost-active-border-color: #0f62fe;
288
+ --hybrid-button-local-ghost-hover-background-color: #e5e5e5;
289
+ --hybrid-button-local-ghost-hover-border-color: #e5e5e5;
290
+ --hybrid-button-local-ghost-hover-text-color: #054ada;
291
+ --hybrid-button-local-ghost-disabled-background-color: #ffffff;
292
+ --hybrid-button-local-ghost-disabled-text-color: #c6c6c6;
293
+ --hybrid-button-local-ghost-disabled-border-color: #ffffff;
294
+ --hybrid-button-local-ghost-dashed-border-color: #c6c6c6;
295
+
296
+ /* Secondary button style */
297
+
298
+ --hybrid-button-local-secondary-background-color: #393939;
299
+ --hybrid-button-local-secondary-border-color: #393939;
300
+ --hybrid-button-local-secondary-text-color: #ffffff;
301
+ --hybrid-button-local-secondary-outline: 1px solid white;
302
+ --hybrid-button-local-secondary-outline-offset: -3px;
303
+ --hybrid-button-local-secondary-hover-background-color: #4c4c4c;
304
+ --hybrid-button-local-secondary-hover-border-color: #4c4c4c;
305
+ --hybrid-button-local-secondary-active-background-color: #393939;
306
+ --hybrid-button-local-secondary-active-border-color: #0f62fe;
307
+ --hybrid-button-local-secondary-disabled-background-color: #c6c6c6;
308
+ --hybrid-button-local-secondary-disabled-text-color: #8d8d8d;
309
+ --hybrid-button-local-secondary-disabled-border-color: #c6c6c6;
310
+ --hybrid-button-local-secondary-dashed-border-color: #ffffff;
311
+
312
+ /* Sizes */
313
+
314
+ --hybrid-large-button-local-padding-y: 0.5rem;
315
+ --hybrid-large-button-local-padding-x: 0.9rem;
316
+ --hybrid-large-button-local-font-size: 1rem;
317
+
318
+ --hybrid-small-button-local-padding-y: 0.5rem;
319
+ --hybrid-small-button-local-padding-x: 0.4rem;
320
+ --hybrid-small-button-local-font-size: 0.7rem;
321
+ }
322
+
323
+ @media (prefers-color-scheme: dark) {
324
+ :host {
325
+
326
+ --hybrid-button-local-background-color: #000000;
327
+ --hybrid-button-local-text-color: #ffffff;
328
+ --hybrid-button-local-hover-border-color: #6f6f6f;
329
+ --hybrid-button-local-hover-color: #6f6f6f;
330
+ --hybrid-button-local-active-border-color: #c6c6c6;
331
+ --hybrid-button-local-active-color: #c6c6c6;
332
+ --hybrid-button-local-disabled-background-color: #c6c6c6;
333
+
334
+ /* Primary button style */
335
+ --hybrid-button-local-primary-outline: 1px solid black;
336
+ --hybrid-button-local-primary-outline-offset: -3px;
337
+ --hybrid-button-local-primary-active-border-color: #ffffff;
338
+ --hybrid-button-local-primary-disabled-text-color: #c6c6c6;
339
+ --hybrid-button-local-primary-disabled-background-color: #8d8d8d;
340
+ --hybrid-button-local-primary-disabled-border-color: #8d8d8d;
341
+
342
+ /* Secondary button style */
343
+ --hybrid-button-local-secondary-background-color: #6f6f6f;
344
+ --hybrid-button-local-secondary-border-color: #6f6f6f;
345
+ --hybrid-button-local-secondary-text-color: #ffffff;
346
+ --hybrid-button-local-secondary-active-border-color: #ffffff;
347
+ --hybrid-button-local-secondary-active-background-color: #6f6f6f;
348
+ --hybrid-button-local-secondary-outline: 1px solid black;
349
+ --hybrid-button-local-secondary-outline-offset: -3px;
350
+ --hybrid-button-local-secondary-hover-background-color: #606060;
351
+ --hybrid-button-local-secondary-hover-border-color: #606060;
352
+ --hybrid-button-local-secondary-disabled-background-color: #6f6f6f;
353
+ --hybrid-button-local-secondary-disabled-text-color: #8d8d8d;
354
+ --hybrid-button-local-secondary-disabled-border-color: #6f6f6f;
355
+ --hybrid-button-local-secondary-dashed-border-color: #ffffff;
356
+
357
+ /* Ghost button style */
358
+ --hybrid-button-local-ghost-background-color: transparent;
359
+ --hybrid-button-local-ghost-text-color: #78a9ff;
360
+ --hybrid-button-local-ghost-border-color: transparent;
361
+ --hybrid-button-local-ghost-active-background-color: transparent;
362
+ --hybrid-button-local-ghost-active-text-color: #a6c8ff;
363
+ --hybrid-button-local-ghost-active-border-color: #ffffff;
364
+ --hybrid-button-local-ghost-hover-background-color: #4c4c4c;
365
+ --hybrid-button-local-ghost-hover-border-color: #4c4c4c;
366
+ --hybrid-button-local-ghost-hover-text-color: #a6c8ff;
367
+ --hybrid-button-local-ghost-disabled-background-color: transparent;
368
+ --hybrid-button-local-ghost-disabled-text-color: #6f6f6f;
369
+ --hybrid-button-local-ghost-disabled-border-color: transparent;
370
+ --hybrid-button-local-ghost-dashed-border-color: #c6c6c6;
371
+
372
+ /* Danger button style */
373
+ --hybrid-button-local-danger-outline: 1px solid #000000;
374
+ --hybrid-button-local-danger-outline-offset: -3px;
375
+ --hybrid-button-local-danger-hover-background-color: #ba1b23;
376
+ --hybrid-button-local-danger-hover-border-color: #ba1b23;
377
+ --hybrid-button-local-danger-active-background-color: #da1e28;
378
+ --hybrid-button-local-danger-active-border-color: #ffffff;
379
+ --hybrid-button-local-danger-disabled-background-color: #6f6f6f;
380
+ --hybrid-button-local-danger-disabled-text-color: #8d8d8d;
381
+ --hybrid-button-local-danger-disabled-border-color: #6f6f6f;
382
+ --hybrid-button-local-danger-dashed-border-color: #ffffff;
383
+
384
+ }
385
+ }
386
+ `;
387
+ export const styles = [buttonStyles];
388
+ //# sourceMappingURL=hy-button.style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hy-button.style.js","sourceRoot":"","sources":["../../../src/components/button/hy-button.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB,MAAM,YAAY,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgYvB,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,YAAY,CAAC,CAAC","sourcesContent":["import {css} from 'lit';\n\nconst buttonStyles = css`\n #container {\n display: flex;\n justify-content: center;\n align-items: center;\n width:100%;\n height:100%;\n }\n\n :host([iconPosition='right']) #container {\n flex-direction: row-reverse;\n }\n\n hy-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 2px;\n }\n\n button {\n height: var(--hybrid-button-height,var(--hybrid-button-local-height));\n width: var(--hybrid-button-width,var(--hybrid-button-local-width));\n border-left: var(--hybrid-button-border-left,var(--hybrid-button-local-border-left));\n border-right: var(--hybrid-button-border-right,var(--hybrid-button-local-border-right));\n border-top: var(--hybrid-button-border-top,var(--hybrid-button-local-border-top));\n border-bottom: var(--hybrid-button-border-bottom,var(--hybrid-button-local-border-bottom));\n border-top-left-radius:var(--hybrid-button-border-top-left-radius,var(--hybrid-button-local-border-top-left-radius)) ;\n border-top-right-radius: var(--hybrid-button-border-top-right-radius,var(--hybrid-button-local-border-top-right-radius));\n border-bottom-left-radius: var(--hybrid-button-border-bottom-left-radius,var(--hybrid-button-local-border-bottom-left-radius));\n border-bottom-right-radius: var(--hybrid-button-local-border-bottom-right-radius,var(--hybrid-button-local-border-bottom-right-radius));\n background-color: var(--hybrid-button-background-color,var(--hybrid-button-local-background-color));\n color: var(--hybrid-button-text-color,var(--hybrid-button-local-text-color));\n font-size: var(--hybrid-button-font-size,var(--hybrid-button-local-font-size));\n font-weight: var(--hybrid-button-font-weight,var(--hybrid-button-local-font-weight));\n text-transform: var(--hybrid-button-text-transform,var(--hybrid-button-local-text-transform));\n padding-top: var(--hybrid-button-padding-y,var(--hybrid-button-local-padding-y));\n padding-bottom: var(--hybrid-button-padding-y,var(--hybrid-button-local-padding-y));\n padding-right: var(--hybrid-button-padding-x,var(--hybrid-button-local-padding-x));\n padding-left: var(--hybrid-button-padding-x,var(--hybrid-button-local-padding-x));\n font-size: var(--hybrid-button-font-size,var(--hybrid-button-local-font-size));\n }\n button hy-icon {\n --hybrid-icon-color: var(--hybrid-button-text-color,var(--hybrid-button-local-text-color));\n --hybrid-icon-width: var(--hybrid-button-icon-width,var(--hybrid-button-local-icon-width));\n --hybrid-icon-height: var(--hybrid-button-icon-height,var(--hybrid-button-local-icon-height));\n\n }\n\n button:hover:not(:disabled) {\n cursor: pointer;\n border-color: var(--hybrid-button-hover-border-color,var(--hybrid-button-local-hover-border-color));\n color: var(--hybrid-button-hover-color,var(--hybrid-button-local-hover-color));\n }\n button:hover:not(:disabled) hy-icon {\n --hybrid-icon-color: var(--hybrid-button-hover-color,var(--hybrid-button-local-hover-color));\n }\n\n button:active:not(:disabled) {\n outline: none;\n border-color: var(--hybrid-button-active-border-color,var(--hybrid-button-local-active-border-color));\n color: var(--hybrid-button-active-color,var(--hybrid-button-local-active-color));\n }\n button:active:not(:disabled) hy-icon {\n --hybrid-icon-color: var(--hybrid-button-active-color,var(--hybrid-button-local-active-color));\n }\n\n button:disabled {\n cursor: auto;\n background-color: var(--hybrid-button-disabled-background-color,var(--hybrid-button-local-disabled-background-color));\n color: var(--hybrid-button-disabled-text-color,var(--hybrid-button-local-disabled-text-color));\n border-color: var(--hybrid-button-disabled-border-color,var(--hybrid-button-local-disabled-border-color));\n }\n\n button[data-size='small'] {\n padding-top: var(--hybrid-small-button-padding-y,var(--hybrid-small-button-local-padding-y));\n padding-bottom: var(--hybrid-small-button-padding-y,var(--hybrid-small-button-local-padding-y));\n padding-right: var(--hybrid-small-button-padding-x,var(--hybrid-small-button-local-padding-x));\n padding-left: var(--hybrid-small-button-padding-x,var(--hybrid-small-button-local-padding-x));\n font-size: var(--hybrid-small-button-font-size,var(--hybrid-small-button-local-font-size));\n }\n\n button[data-size='large'] {\n padding-top: var(--hybrid-large-button-padding-y,var(--hybrid-large-button-local-padding-y));\n padding-bottom: var(--hybrid-large-button-padding-y,var(--hybrid-large-button-local-padding-y));\n padding-right: var(--hybrid-large-button-padding-x,var(--hybrid-large-button-local-padding-x));\n padding-left: var(--hybrid-large-button-padding-x,var(--hybrid-large-button-local-padding-x));\n font-size: var(--hybrid-large-button-font-size,var(--hybrid-large-button-local-font-size));\n }\n\n button[data-state='loading'] {\n opacity: 0.5;\n }\n button[data-type='danger'] hy-icon {\n --hybrid-icon-color: var(--hybrid-button-danger-text-color,var(--hybrid-button-local-danger-text-color));\n }\n button[data-type='danger'] {\n border-color: var(--hybrid-button-danger-border-color,var(--hybrid-button-local-danger-border-color));\n background-color: var(--hybrid-button-danger-background-color,var(--hybrid-button-local-danger-background-color));\n color: var(--hybrid-button-danger-text-color,var(--hybrid-button-local-danger-text-color));\n }\n button[data-type='danger'].button-dashed {\n border-color: var(--hybrid-button-danger-dashed-border-color,var(--hybrid-button-local-danger-dashed-border-color));\n }\n button[data-type='danger']:disabled {\n border-color: var(--hybrid-button-danger-disabled-border-color,var(--hybrid-button-local-danger-disabled-border-color));\n background-color: var(--hybrid-button-danger-disabled-background-color,var(--hybrid-button-local-danger-disabled-background-color));\n color: var(--hybrid-button-danger-disabled-text-color,var(--hybrid-button-local-danger-disabled-text-color));\n }\n\n button[data-type='danger']:hover:not(:disabled) {\n background-color: var(--hybrid-button-danger-hover-background-color,var(--hybrid-button-local-danger-hover-background-color));\n border-color: var(--hybrid-button-danger-hover-border-color,var(--hybrid-button-local-danger-hover-border-color));\n color: var(--hybrid-button-danger-text-color,var(--hybrid-button-local-danger-text-color));\n }\n button[data-type='danger']:hover:not(:disabled) hy-icon {\n --hybrid-icon-color: var(--hybrid-button-danger-text-color,var(--hybrid-button-local-danger-text-color));\n }\n\n button[data-type='danger']:active:not(:disabled) {\n background-color: var(--hybrid-button-danger-active-background-color,var(--hybrid-button-local-danger-active-background-color));\n border-color: var(--hybrid-button-danger-active-border-color,var(--hybrid-button-local-danger-active-border-color));\n outline: var(--hybrid-button-danger-outline,var(--hybrid-button-local-danger-outline));\n outline-offset: var(--hybrid-button-danger-outline-offset,var(--hybrid-button-local-danger-outline-offset));\n }\n button[data-type='primary'] hy-icon {\n --hybrid-icon-color: var(--hybrid-button-primary-text-color,var(--hybrid-button-local-primary-text-color));\n }\n button[data-type='primary'] {\n border-color: var(--hybrid-button-primary-border-color,var(--hybrid-button-local-primary-border-color));\n background-color: var(--hybrid-button-primary-background-color,var(--hybrid-button-local-primary-background-color));\n color: var(--hybrid-button-primary-text-color,var(--hybrid-button-local-primary-text-color));\n }\n button[data-type='primary'].button-dashed {\n border-color: var(--hybrid-button-primary-dashed-border-color,var(--hybrid-button-local-primary-dashed-border-color));\n }\n\n button[data-type='primary']:disabled {\n border-color: var(--hybrid-button-primary-disabled-border-color,var(--hybrid-button-local-primary-disabled-border-color));\n background-color: var(--hybrid-button-primary-disabled-background-color,var(--hybrid-button-local-primary-disabled-background-color));\n color: var(--hybrid-button-primary-disabled-text-color,var(--hybrid-button-local-primary-disabled-text-color));\n }\n\n button[data-type='primary']:hover:not(:disabled) {\n background-color: var(--hybrid-button-primary-hover-background-color,var(--hybrid-button-local-primary-hover-background-color));\n border-color: var(--hybrid-button-primary-hover-border-color,var(--hybrid-button-local-primary-hover-border-color));\n color: var(--hybrid-button-primary-text-color,var(--hybrid-button-local-primary-text-color));\n }\n button[data-type='primary']:hover:not(:disabled) hy-icon {\n --hybrid-icon-color: var(--hybrid-button-primary-text-color,var(--hybrid-button-local-primary-text-color));\n }\n button[data-type='primary']:active:not(:disabled) {\n border-color: var(--hybrid-button-primary-active-border-color,var(--hybrid-button-local-primary-active-border-color));\n background-color: var(--hybrid-button-primary-active-background-color,var(--hybrid-button-local-primary-active-background-color));\n outline: var(--hybrid-button-primary-outline,var(--hybrid-button-local-primary-outline));\n outline-offset: var(--hybrid-button-primary-outline-offset,var(--hybrid-button-local-primary-outline-offset));\n }\n button[data-type='ghost'] hy-icon {\n --hybrid-icon-color: var(--hybrid-button-ghost-text-color,var(--hybrid-button-local-ghost-text-color));\n }\n button[data-type='ghost'] {\n background-color: var(--hybrid-button-ghost-background-color,var(--hybrid-button-local-ghost-background-color));\n color: var(--hybrid-button-ghost-text-color,var(--hybrid-button-local-ghost-text-color));\n border-color: var(--hybrid-button-ghost-border-color,var(--hybrid-button-local-ghost-border-color));\n }\n button[data-type='ghost'].button-dashed {\n border-color: var(--hybrid-button-ghost-dashed-border-color,var(--hybrid-button-local-ghost-dashed-border-color));\n }\n button[data-type='ghost']:disabled {\n background-color: var(--hybrid-button-ghost-disabled-background-color,var(--hybrid-button-local-ghost-disabled-background-color));\n color: var(--hybrid-button-ghost-disabled-text-color,var(--hybrid-button-local-ghost-disabled-text-color));\n border-color: var(--hybrid-button-ghost-disabled-border-color,var(--hybrid-button-local-ghost-disabled-border-color));\n }\n\n button[data-type='ghost']:hover:not(:disabled) {\n background-color: var(--hybrid-button-ghost-hover-background-color,var(--hybrid-button-local-ghost-hover-background-color));\n color: var(--hybrid-button-ghost-hover-text-color,var(--hybrid-button-local-ghost-hover-text-color));\n border-color: var(--hybrid-button-local-ghost-hover-border-color,var(--hybrid-button-local-ghost-hover-border-color));\n }\n button[data-type='ghost']:hover:not(:disabled) hy-icon {\n --hybrid-icon-color: var(--hybrid-button-ghost-hover-text-color,var(--hybrid-button-local-ghost-hover-text-color));\n }\n button[data-type='ghost']:active:not(:disabled) {\n background-color: var(--hybrid-button-ghost-active-background-color,var(--hybrid-button-local-ghost-active-background-color));\n border-color: var(--hybrid-button-ghost-active-border-color,var(--hybrid-button-local-ghost-active-border-color));\n }\n button[data-type='secondary'] hy-icon {\n --hybrid-icon-color: var(--hybrid-button-secondary-text-color,var(--hybrid-button-local-secondary-text-color));\n }\n button[data-type='secondary'] {\n background-color: var(--hybrid-button-secondary-background-color,var(--hybrid-button-local-secondary-background-color));\n color: var(--hybrid-button-secondary-text-color,var(--hybrid-button-local-secondary-text-color));\n border-color: var(--hybrid-button-secondary-border-color,var(--hybrid-button-local-secondary-border-color));\n }\n button[data-type='secondary'].button-dashed {\n border-color: var(--hybrid-button-secondary-dashed-border-color,var(--hybrid-button-local-secondary-dashed-border-color));\n }\n button[data-type='secondary']:disabled {\n background-color: var(--hybrid-button-secondary-disabled-background-color,var(--hybrid-button-local-secondary-disabled-background-color));\n color: var(--hybrid-button-secondary-disabled-text-color,var(--hybrid-button-local-secondary-disabled-text-color));\n border-color: var(--hybrid-button-secondary-disabled-border-color,var(--hybrid-button-local-secondary-disabled-border-color));\n }\n button[data-type='secondary']:hover:not(:disabled) {\n background-color: var(--hybrid-button-secondary-hover-background-color,var(--hybrid-button-local-secondary-hover-background-color));\n color: var(--hybrid-button-secondary-text-color,var(--hybrid-button-local-secondary-text-color));\n border-color: var(--hybrid-button-secondary-hover-border-color,var(--hybrid-button-local-secondary-hover-border-color));\n }\n button[data-type='secondary']:hover:not(:disabled) hy-icon {\n --hybrid-icon-color: var(--hybrid-button-secondary-text-color,var(--hybrid-button-local-secondary-text-color));\n }\n\n button[data-type='secondary']:active:not(:disabled) {\n background-color: var(--hybrid-button-secondary-active-background-color,var(--hybrid-button-local-secondary-active-background-color));\n border-color: var(--hybrid-button-secondary-active-border-color,var(--hybrid-button-local-secondary-active-border-color));\n outline: var(--hybrid-button-secondary-outline,var(--hybrid-button-local-secondary-outline));\n outline-offset: var(--hybrid-button-secondary-outline-offset,var(--hybrid-button-local-secondary-outline-offset));\n }\n .button-dashed {\n border-style: dashed;\n }\n :host {\n /* Default Button Style */\n --hybrid-button-local-border-top: 2px solid #d0d0d0;\n --hybrid-button-local-border-bottom: 2px solid #d0d0d0;\n --hybrid-button-local-border-left: 2px solid #d0d0d0;\n --hybrid-button-local-border-right: 2px solid #d0d0d0;\n --hybrid-button-local-border-top-left-radius: 0px;\n --hybrid-button-local-border-top-right-radius: 0px;\n --hybrid-button-local-border-bottom-left-radius: 0px;\n --hybrid-button-local-border-bottom-right-radius: 0px;\n --hybrid-button-local-background-color: #f9f9f9;\n --hybrid-button-local-text-color: #393939;\n --hybrid-button-local-hover-border-color: #1677ff;\n --hybrid-button-local-hover-color: #1677ff;\n --hybrid-button-local-font-size: 0.9rem;\n --hybrid-button-local-font-weight: normal;\n --hybrid-button-local-text-transform: none;\n --hybrid-button-local-active-border-color: #1661b1;\n --hybrid-button-local-active-color: #184d86;\n --hybrid-button-local-disabled-background-color: #c6c6c6;\n --hybrid-button-local-disabled-text-color: #8d8d8d;\n --hybrid-button-local-disabled-border-color: #bbb;\n --hybrid-button-local-height: auto;\n --hybrid-button-local-width: auto;\n --hybrid-button-local-padding-y: 0.5rem;\n --hybrid-button-local-padding-x: 0.6rem;\n --hybrid-button-local-icon-width:14px;\n --hybrid-button-local-icon-height:15px;\n\n /* Primary Button Style */\n --hybrid-button-local-primary-border-color: #0f62fe;\n --hybrid-button-local-primary-background-color: #0f62fe;\n --hybrid-button-local-primary-text-color: #ffffff;\n --hybrid-button-local-primary-outline: 1px solid white;\n --hybrid-button-local-primary-outline-offset: -3px;\n --hybrid-button-local-primary-hover-background-color: #0353e9;\n --hybrid-button-local-primary-hover-border-color: #0353e9;\n --hybrid-button-local-primary-active-background-color: #0f62fe;\n --hybrid-button-local-primary-active-border-color: #0f62fe;\n --hybrid-button-local-primary-disabled-text-color: #8d8d8d;\n --hybrid-button-local-primary-disabled-background-color: #c6c6c6;\n --hybrid-button-local-primary-disabled-border-color: #c6c6c6;\n --hybrid-button-local-primary-dashed-border-color: #ffffff;\n\n /* Danger button style */\n --hybrid-button-local-danger-background-color: #da1e28;\n --hybrid-button-local-danger-text-color: #ffffff;\n --hybrid-button-local-danger-border-color: #da1e28;\n --hybrid-button-local-danger-outline: 1px solid white;\n --hybrid-button-local-danger-outline-offset: -3px;\n --hybrid-button-local-danger-hover-background-color: #ba1b23;\n --hybrid-button-local-danger-hover-border-color: #ba1b23;\n --hybrid-button-local-danger-active-background-color: #da1e28;\n --hybrid-button-local-danger-active-border-color: #0f62fe;\n --hybrid-button-local-danger-disabled-background-color: #c6c6c6;\n --hybrid-button-local-danger-disabled-text-color: #8d8d8d;\n --hybrid-button-local-danger-disabled-border-color: #c6c6c6;\n --hybrid-button-local-danger-dashed-border-color: #ffffff;\n\n /* Ghost button style */\n --hybrid-button-local-ghost-background-color: #ffffff;\n --hybrid-button-local-ghost-text-color: #0f62fe;\n --hybrid-button-local-ghost-border-color: #ffffff;\n --hybrid-button-local-ghost-active-background-color: #ffffff;\n --hybrid-button-local-ghost-active-text-color: #054ada;\n --hybrid-button-local-ghost-active-border-color: #0f62fe;\n --hybrid-button-local-ghost-hover-background-color: #e5e5e5;\n --hybrid-button-local-ghost-hover-border-color: #e5e5e5;\n --hybrid-button-local-ghost-hover-text-color: #054ada;\n --hybrid-button-local-ghost-disabled-background-color: #ffffff;\n --hybrid-button-local-ghost-disabled-text-color: #c6c6c6;\n --hybrid-button-local-ghost-disabled-border-color: #ffffff;\n --hybrid-button-local-ghost-dashed-border-color: #c6c6c6;\n\n /* Secondary button style */\n\n --hybrid-button-local-secondary-background-color: #393939;\n --hybrid-button-local-secondary-border-color: #393939;\n --hybrid-button-local-secondary-text-color: #ffffff;\n --hybrid-button-local-secondary-outline: 1px solid white;\n --hybrid-button-local-secondary-outline-offset: -3px;\n --hybrid-button-local-secondary-hover-background-color: #4c4c4c;\n --hybrid-button-local-secondary-hover-border-color: #4c4c4c;\n --hybrid-button-local-secondary-active-background-color: #393939;\n --hybrid-button-local-secondary-active-border-color: #0f62fe;\n --hybrid-button-local-secondary-disabled-background-color: #c6c6c6;\n --hybrid-button-local-secondary-disabled-text-color: #8d8d8d;\n --hybrid-button-local-secondary-disabled-border-color: #c6c6c6;\n --hybrid-button-local-secondary-dashed-border-color: #ffffff;\n\n /* Sizes */\n\n --hybrid-large-button-local-padding-y: 0.5rem;\n --hybrid-large-button-local-padding-x: 0.9rem;\n --hybrid-large-button-local-font-size: 1rem;\n\n --hybrid-small-button-local-padding-y: 0.5rem;\n --hybrid-small-button-local-padding-x: 0.4rem;\n --hybrid-small-button-local-font-size: 0.7rem;\n }\n\n @media (prefers-color-scheme: dark) {\n :host { \n\n --hybrid-button-local-background-color: #000000;\n --hybrid-button-local-text-color: #ffffff;\n --hybrid-button-local-hover-border-color: #6f6f6f;\n --hybrid-button-local-hover-color: #6f6f6f;\n --hybrid-button-local-active-border-color: #c6c6c6;\n --hybrid-button-local-active-color: #c6c6c6;\n --hybrid-button-local-disabled-background-color: #c6c6c6;\n \n /* Primary button style */\n --hybrid-button-local-primary-outline: 1px solid black;\n --hybrid-button-local-primary-outline-offset: -3px;\n --hybrid-button-local-primary-active-border-color: #ffffff;\n --hybrid-button-local-primary-disabled-text-color: #c6c6c6;\n --hybrid-button-local-primary-disabled-background-color: #8d8d8d;\n --hybrid-button-local-primary-disabled-border-color: #8d8d8d;\n \n /* Secondary button style */\n --hybrid-button-local-secondary-background-color: #6f6f6f;\n --hybrid-button-local-secondary-border-color: #6f6f6f;\n --hybrid-button-local-secondary-text-color: #ffffff;\n --hybrid-button-local-secondary-active-border-color: #ffffff;\n --hybrid-button-local-secondary-active-background-color: #6f6f6f;\n --hybrid-button-local-secondary-outline: 1px solid black;\n --hybrid-button-local-secondary-outline-offset: -3px;\n --hybrid-button-local-secondary-hover-background-color: #606060;\n --hybrid-button-local-secondary-hover-border-color: #606060;\n --hybrid-button-local-secondary-disabled-background-color: #6f6f6f;\n --hybrid-button-local-secondary-disabled-text-color: #8d8d8d;\n --hybrid-button-local-secondary-disabled-border-color: #6f6f6f;\n --hybrid-button-local-secondary-dashed-border-color: #ffffff;\n \n /* Ghost button style */\n --hybrid-button-local-ghost-background-color: transparent;\n --hybrid-button-local-ghost-text-color: #78a9ff;\n --hybrid-button-local-ghost-border-color: transparent;\n --hybrid-button-local-ghost-active-background-color: transparent;\n --hybrid-button-local-ghost-active-text-color: #a6c8ff;\n --hybrid-button-local-ghost-active-border-color: #ffffff;\n --hybrid-button-local-ghost-hover-background-color: #4c4c4c;\n --hybrid-button-local-ghost-hover-border-color: #4c4c4c;\n --hybrid-button-local-ghost-hover-text-color: #a6c8ff;\n --hybrid-button-local-ghost-disabled-background-color: transparent;\n --hybrid-button-local-ghost-disabled-text-color: #6f6f6f;\n --hybrid-button-local-ghost-disabled-border-color: transparent;\n --hybrid-button-local-ghost-dashed-border-color: #c6c6c6;\n \n /* Danger button style */\n --hybrid-button-local-danger-outline: 1px solid #000000;\n --hybrid-button-local-danger-outline-offset: -3px;\n --hybrid-button-local-danger-hover-background-color: #ba1b23;\n --hybrid-button-local-danger-hover-border-color: #ba1b23;\n --hybrid-button-local-danger-active-background-color: #da1e28;\n --hybrid-button-local-danger-active-border-color: #ffffff;\n --hybrid-button-local-danger-disabled-background-color: #6f6f6f;\n --hybrid-button-local-danger-disabled-text-color: #8d8d8d;\n --hybrid-button-local-danger-disabled-border-color: #6f6f6f;\n --hybrid-button-local-danger-dashed-border-color: #ffffff;\n \n }\n }\n`;\n\nexport const styles = [buttonStyles];\n"]}
package/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './hy-button.component.js';
2
+ //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}
package/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './hy-button.component.js';
2
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC","sourcesContent":["export * from './hy-button.component.js';\n"]}
package/package.json ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "@nuralyui/button",
3
+ "version": "0.0.1",
4
+ "description": "",
5
+ "main": "index.js",
6
+ "type": "module",
7
+ "scripts": {
8
+ "test": "echo \"Error: no test specified\" && exit 1"
9
+ },
10
+ "author": "Labidi Aymen",
11
+ "license": "ISC"
12
+ }
package/react.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ import { HyButtonElement } from './hy-button.component.js';
2
+ export declare const HyButton: import("@lit-labs/react").ReactWebComponent<HyButtonElement, {
3
+ click: string;
4
+ }>;
5
+ //# sourceMappingURL=react.d.ts.map
package/react.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../../src/components/button/react.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACzD,eAAO,MAAM,QAAQ;;EAOnB,CAAC"}
package/react.js ADDED
@@ -0,0 +1,12 @@
1
+ import { createComponent } from '@lit-labs/react';
2
+ import * as React from 'react';
3
+ import { HyButtonElement } from './hy-button.component.js';
4
+ export const HyButton = createComponent({
5
+ tagName: 'hy-button',
6
+ elementClass: HyButtonElement,
7
+ react: React,
8
+ events: {
9
+ click: 'click',
10
+ },
11
+ });
12
+ //# sourceMappingURL=react.js.map
package/react.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../../src/components/button/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACzD,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC;IACtC,OAAO,EAAE,WAAW;IACpB,YAAY,EAAE,eAAe;IAC7B,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE;QACN,KAAK,EAAE,OAAO;KACf;CACF,CAAC,CAAC","sourcesContent":["import {createComponent} from '@lit-labs/react';\nimport * as React from 'react';\nimport {HyButtonElement} from './hy-button.component.js';\nexport const HyButton = createComponent({\n tagName: 'hy-button',\n elementClass: HyButtonElement,\n react: React,\n events: {\n click: 'click',\n },\n});\n"]}
@@ -0,0 +1,2 @@
1
+ import '../hy-button.component';
2
+ //# sourceMappingURL=hy-button_test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hy-button_test.d.ts","sourceRoot":"","sources":["../../../../src/components/button/test/hy-button_test.ts"],"names":[],"mappings":"AAGA,OAAO,wBAAwB,CAAC"}
@@ -0,0 +1,91 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { html, fixture, expect } from '@open-wc/testing';
11
+ import { EMPTY_STRING } from '../hy-button.constants.js';
12
+ import '../hy-button.component';
13
+ suite('HyButtonElement', () => {
14
+ test('has default properties', () => __awaiter(void 0, void 0, void 0, function* () {
15
+ const el = yield fixture(html `<hy-button></hy-button>`);
16
+ const button = el.shadowRoot.querySelector('button');
17
+ const icon = el.shadowRoot.querySelector('hy-icon');
18
+ expect(el.disabled).to.be.false;
19
+ expect(el.loading).to.be.false;
20
+ expect(el.size).to.equal(EMPTY_STRING);
21
+ expect(el.type).to.equal("default" /* ButtonType.Default */);
22
+ expect(el.dashed).to.be.false;
23
+ expect(el.icon).to.equal(EMPTY_STRING);
24
+ expect(button).to.not.have.class('button-dashed');
25
+ expect(button).to.not.have.attribute('data-size');
26
+ expect(button).to.not.have.attribute('data-state');
27
+ expect(button).to.have.attribute('data-type', "default" /* ButtonType.Default */);
28
+ expect(button.disabled).to.be.false;
29
+ expect(icon).to.not.exist;
30
+ }));
31
+ test('has a label', () => __awaiter(void 0, void 0, void 0, function* () {
32
+ const buttonLabel = 'Test content';
33
+ const el = yield fixture(html `<hy-button>${buttonLabel}</hy-button>`);
34
+ const slot = el.shadowRoot.querySelector('slot');
35
+ const assignedNode = slot.assignedNodes();
36
+ expect(assignedNode[0].textContent).to.equal(buttonLabel);
37
+ }));
38
+ test('fires onClick event when clicked', () => __awaiter(void 0, void 0, void 0, function* () {
39
+ const el = yield fixture(html `<hy-button></hy-button>`);
40
+ const button = el.shadowRoot.querySelector('button');
41
+ let eventFired = false;
42
+ el.addEventListener('click', () => {
43
+ eventFired = true;
44
+ });
45
+ button.click();
46
+ expect(eventFired).to.be.true;
47
+ }));
48
+ test('has a disabled property on the button element', () => __awaiter(void 0, void 0, void 0, function* () {
49
+ const el = yield fixture(html `<hy-button disabled></hy-button>`);
50
+ const button = el.shadowRoot.querySelector('button');
51
+ expect(button.disabled).to.be.true;
52
+ }));
53
+ test('does not fire onClick event when disabled', () => __awaiter(void 0, void 0, void 0, function* () {
54
+ const el = yield fixture(html `<hy-button disabled></hy-button>`);
55
+ const button = el.shadowRoot.querySelector('button');
56
+ let eventFired = false;
57
+ el.addEventListener('click', () => {
58
+ eventFired = true;
59
+ });
60
+ button.click();
61
+ expect(eventFired).to.be.false;
62
+ }));
63
+ test('renders the icon', () => __awaiter(void 0, void 0, void 0, function* () {
64
+ const iconName = 'sample-icon';
65
+ const el = yield fixture(html `<hy-button icon=${iconName}></hy-button>`);
66
+ const icon = el.shadowRoot.querySelector('hy-icon');
67
+ expect(icon).to.exist;
68
+ expect(icon).to.have.attribute('name', iconName);
69
+ }));
70
+ test('applies the correct classe for dashed', () => __awaiter(void 0, void 0, void 0, function* () {
71
+ const el = yield fixture(html `<hy-button dashed></hy-button>`);
72
+ const button = el.shadowRoot.querySelector('button');
73
+ expect(button).to.have.class('button-dashed');
74
+ }));
75
+ test('reflects the loading property as data-state on the button element', () => __awaiter(void 0, void 0, void 0, function* () {
76
+ const el = yield fixture(html `<hy-button loading></hy-button>`);
77
+ const button = el.shadowRoot.querySelector('button');
78
+ expect(button).to.have.attribute('data-state', 'loading');
79
+ }));
80
+ test('reflects the size property as data-size on the button element', () => __awaiter(void 0, void 0, void 0, function* () {
81
+ const el = yield fixture(html `<hy-button size=${"Large" /* ButtonSize.Large */}></hy-button>`);
82
+ const button = el.shadowRoot.querySelector('button');
83
+ expect(button).to.have.attribute('data-size', "Large" /* ButtonSize.Large */);
84
+ }));
85
+ test('reflects the type property as data-type on the button element', () => __awaiter(void 0, void 0, void 0, function* () {
86
+ const el = yield fixture(html `<hy-button type=${"primary" /* ButtonType.Primary */}></hy-button>`);
87
+ const button = el.shadowRoot.querySelector('button');
88
+ expect(button).to.have.attribute('data-type', "primary" /* ButtonType.Primary */);
89
+ }));
90
+ });
91
+ //# sourceMappingURL=hy-button_test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hy-button_test.js","sourceRoot":"","sources":["../../../../src/components/button/test/hy-button_test.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAyB,YAAY,EAAC,MAAM,2BAA2B,CAAC;AAC/E,OAAO,wBAAwB,CAAC;AAEhC,KAAK,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC5B,IAAI,CAAC,wBAAwB,EAAE,GAAS,EAAE;QACxC,MAAM,EAAE,GAAoB,MAAM,OAAO,CAAC,IAAI,CAAA,yBAAyB,CAAC,CAAC;QACzE,MAAM,MAAM,GAAsB,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC;QAC1E,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAErD,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAChC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC/B,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,oCAAoB,CAAC;QAC7C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC9B,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,qCAAqB,CAAC;QAClE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;IAC5B,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,aAAa,EAAE,GAAS,EAAE;QAC7B,MAAM,WAAW,GAAG,cAAc,CAAC;QACnC,MAAM,EAAE,GAAoB,MAAM,OAAO,CAAC,IAAI,CAAA,cAAc,WAAW,cAAc,CAAC,CAAC;QACvF,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,IAAK,CAAC,aAAa,EAAE,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC,CAAA,CAAC,CAAC;IACH,IAAI,CAAC,kCAAkC,EAAE,GAAS,EAAE;QAClD,MAAM,EAAE,GAAoB,MAAM,OAAO,CAAC,IAAI,CAAA,yBAAyB,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC;QACvD,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAChC,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChC,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,+CAA+C,EAAE,GAAS,EAAE;QAC/D,MAAM,EAAE,GAAoB,MAAM,OAAO,CAAC,IAAI,CAAA,kCAAkC,CAAC,CAAC;QAClF,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACrC,CAAC,CAAA,CAAC,CAAC;IACH,IAAI,CAAC,2CAA2C,EAAE,GAAS,EAAE;QAC3D,MAAM,EAAE,GAAoB,MAAM,OAAO,CAAC,IAAI,CAAA,kCAAkC,CAAC,CAAC;QAClF,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC;QACvD,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAChC,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACjC,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,kBAAkB,EAAE,GAAS,EAAE;QAClC,MAAM,QAAQ,GAAG,aAAa,CAAC;QAC/B,MAAM,EAAE,GAAoB,MAAM,OAAO,CAAC,IAAI,CAAA,mBAAmB,QAAQ,eAAe,CAAC,CAAC;QAC1F,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,uCAAuC,EAAE,GAAS,EAAE;QACvD,MAAM,EAAE,GAAoB,MAAM,OAAO,CAAC,IAAI,CAAA,gCAAgC,CAAC,CAAC;QAChF,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC,CAAA,CAAC,CAAC;IACH,IAAI,CAAC,mEAAmE,EAAE,GAAS,EAAE;QACnF,MAAM,EAAE,GAAoB,MAAM,OAAO,CAAC,IAAI,CAAA,iCAAiC,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAC5D,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,+DAA+D,EAAE,GAAS,EAAE;QAC/E,MAAM,EAAE,GAAoB,MAAM,OAAO,CAAC,IAAI,CAAA,mBAAmB,8BAAgB,eAAe,CAAC,CAAC;QAClG,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,iCAAmB,CAAC;IAClE,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,+DAA+D,EAAE,GAAS,EAAE;QAC/E,MAAM,EAAE,GAAoB,MAAM,OAAO,CAAC,IAAI,CAAA,mBAAmB,kCAAkB,eAAe,CAAC,CAAC;QACpG,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,qCAAqB,CAAC;IACpE,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import {html, fixture, expect} from '@open-wc/testing';\nimport {HyButtonElement} from '../hy-button.component';\nimport {ButtonSize, ButtonType, EMPTY_STRING} from '../hy-button.constants.js';\nimport '../hy-button.component';\n\nsuite('HyButtonElement', () => {\n test('has default properties', async () => {\n const el: HyButtonElement = await fixture(html`<hy-button></hy-button>`);\n const button: HTMLButtonElement = el.shadowRoot!.querySelector('button')!;\n const icon = el.shadowRoot!.querySelector('hy-icon');\n\n expect(el.disabled).to.be.false;\n expect(el.loading).to.be.false;\n expect(el.size).to.equal(EMPTY_STRING);\n expect(el.type).to.equal(ButtonType.Default);\n expect(el.dashed).to.be.false;\n expect(el.icon).to.equal(EMPTY_STRING);\n expect(button).to.not.have.class('button-dashed');\n expect(button).to.not.have.attribute('data-size');\n expect(button).to.not.have.attribute('data-state');\n expect(button).to.have.attribute('data-type', ButtonType.Default);\n expect(button.disabled).to.be.false;\n expect(icon).to.not.exist;\n });\n\n test('has a label', async () => {\n const buttonLabel = 'Test content';\n const el: HyButtonElement = await fixture(html`<hy-button>${buttonLabel}</hy-button>`);\n const slot = el.shadowRoot!.querySelector('slot');\n const assignedNode = slot!.assignedNodes();\n expect(assignedNode[0].textContent).to.equal(buttonLabel);\n });\n test('fires onClick event when clicked', async () => {\n const el: HyButtonElement = await fixture(html`<hy-button></hy-button>`);\n const button = el.shadowRoot!.querySelector('button')!;\n let eventFired = false;\n el.addEventListener('click', () => {\n eventFired = true;\n });\n button.click();\n expect(eventFired).to.be.true;\n });\n\n test('has a disabled property on the button element', async () => {\n const el: HyButtonElement = await fixture(html`<hy-button disabled></hy-button>`);\n const button = el.shadowRoot!.querySelector('button')!;\n expect(button.disabled).to.be.true;\n });\n test('does not fire onClick event when disabled', async () => {\n const el: HyButtonElement = await fixture(html`<hy-button disabled></hy-button>`);\n const button = el.shadowRoot!.querySelector('button')!;\n let eventFired = false;\n el.addEventListener('click', () => {\n eventFired = true;\n });\n button.click();\n expect(eventFired).to.be.false;\n });\n\n test('renders the icon', async () => {\n const iconName = 'sample-icon';\n const el: HyButtonElement = await fixture(html`<hy-button icon=${iconName}></hy-button>`);\n const icon = el.shadowRoot!.querySelector('hy-icon');\n expect(icon).to.exist;\n expect(icon).to.have.attribute('name', iconName);\n });\n\n test('applies the correct classe for dashed', async () => {\n const el: HyButtonElement = await fixture(html`<hy-button dashed></hy-button>`);\n const button = el.shadowRoot!.querySelector('button');\n expect(button).to.have.class('button-dashed');\n });\n test('reflects the loading property as data-state on the button element', async () => {\n const el: HyButtonElement = await fixture(html`<hy-button loading></hy-button>`);\n const button = el.shadowRoot!.querySelector('button')!;\n expect(button).to.have.attribute('data-state', 'loading');\n });\n\n test('reflects the size property as data-size on the button element', async () => {\n const el: HyButtonElement = await fixture(html`<hy-button size=${ButtonSize.Large}></hy-button>`);\n const button = el.shadowRoot!.querySelector('button')!;\n expect(button).to.have.attribute('data-size', ButtonSize.Large);\n });\n\n test('reflects the type property as data-type on the button element', async () => {\n const el: HyButtonElement = await fixture(html`<hy-button type=${ButtonType.Primary}></hy-button>`);\n const button = el.shadowRoot!.querySelector('button')!;\n expect(button).to.have.attribute('data-type', ButtonType.Primary);\n });\n});\n"]}