globuswebcomponents 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/gb-btn_3.cjs.entry.js +47 -41
- package/dist/cjs/gb-btn_3.cjs.entry.js.map +1 -1
- package/dist/cjs/globuscomponents.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/gb-btn/gb-btn.js +29 -20
- package/dist/collection/components/gb-btn/gb-btn.js.map +1 -1
- package/dist/collection/components/gb-button/gb-button.js +30 -21
- package/dist/collection/components/gb-button/gb-button.js.map +1 -1
- package/dist/collection/components/gb-button/gb-button.tsx +91 -0
- package/dist/collection/components/gb-button/readme.md +40 -0
- package/dist/collection/components/test-tooltip/test-tooltip.js +2 -2
- package/dist/collection/components/test-tooltip/test-tooltip.js.map +1 -1
- package/dist/components/gb-btn.js +26 -21
- package/dist/components/gb-btn.js.map +1 -1
- package/dist/components/gb-button.js +1 -1
- package/dist/components/gb-file-upload-item-base.js +1 -1
- package/dist/components/gb-file-upload.js +2 -2
- package/dist/components/gb-notification-panel.js +1 -1
- package/dist/components/{p-2e36989a.js → p-53bb79e9.js} +2 -2
- package/dist/components/{p-2e36989a.js.map → p-53bb79e9.js.map} +1 -1
- package/dist/components/{p-bf1b5255.js → p-ca9a0d2a.js} +28 -23
- package/dist/components/p-ca9a0d2a.js.map +1 -0
- package/dist/components/test-tooltip.js +2 -2
- package/dist/components/test-tooltip.js.map +1 -1
- package/dist/esm/gb-avatar-add-button.entry.js +1 -1
- package/dist/esm/gb-avatar-dropdown.entry.js +1 -1
- package/dist/esm/gb-avatar-group.entry.js +1 -1
- package/dist/esm/gb-avatar-label-group.entry.js +1 -1
- package/dist/esm/gb-avatar-profile-photo.entry.js +1 -1
- package/dist/esm/gb-avatar_3.entry.js +1 -1
- package/dist/esm/gb-badge-close.entry.js +1 -1
- package/dist/esm/gb-badge.entry.js +1 -1
- package/dist/esm/gb-btn_3.entry.js +48 -42
- package/dist/esm/gb-btn_3.entry.js.map +1 -1
- package/dist/esm/gb-button-close_2.entry.js +1 -1
- package/dist/esm/gb-checkbox-group.entry.js +1 -1
- package/dist/esm/gb-checkbox_2.entry.js +1 -1
- package/dist/esm/gb-collapse-button.entry.js +1 -1
- package/dist/esm/gb-dropdown-items-with-shortcut.entry.js +1 -1
- package/dist/esm/gb-file-type-icon.entry.js +1 -1
- package/dist/esm/gb-file-upload-item-base.entry.js +1 -1
- package/dist/esm/gb-file-upload.entry.js +1 -1
- package/dist/esm/gb-header-icon.entry.js +1 -1
- package/dist/esm/gb-help-dropdown.entry.js +1 -1
- package/dist/esm/gb-input-dropdown-menu-item.entry.js +1 -1
- package/dist/esm/gb-input-dropdown.entry.js +1 -1
- package/dist/esm/gb-input-field.entry.js +1 -1
- package/dist/esm/gb-megainput-field.entry.js +1 -1
- package/dist/esm/gb-notification-content.entry.js +1 -1
- package/dist/esm/gb-notification-panel.entry.js +1 -1
- package/dist/esm/gb-progress-circle.entry.js +1 -1
- package/dist/esm/gb-scrollbar.entry.js +1 -1
- package/dist/esm/gb-slider-control-handle.entry.js +1 -1
- package/dist/esm/gb-slider.entry.js +1 -1
- package/dist/esm/gb-tag-checkbox_3.entry.js +1 -1
- package/dist/esm/gb-tag.entry.js +1 -1
- package/dist/esm/gb-textarea-input-field.entry.js +1 -1
- package/dist/esm/gb-toggle-base.entry.js +1 -1
- package/dist/esm/gb-toggle.entry.js +1 -1
- package/dist/esm/gb-tooltip.entry.js +1 -1
- package/dist/esm/gb-wysiwyg-editor-icon.entry.js +1 -1
- package/dist/esm/globuscomponents.js +3 -3
- package/dist/esm/{index-b1fb2c43.js → index-baccaaaf.js} +2 -2
- package/dist/esm/{index-b1fb2c43.js.map → index-baccaaaf.js.map} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/globuscomponents/gb-button.css +303 -0
- package/dist/globuscomponents/gb-button.tsx +91 -0
- package/dist/globuscomponents/globuscomponents.esm.js +1 -1
- package/dist/globuscomponents/globuscomponents.esm.js.map +1 -1
- package/dist/globuscomponents/{p-74aef423.entry.js → p-00244d6c.entry.js} +2 -2
- package/dist/globuscomponents/{p-61fd847f.entry.js → p-03fd3db6.entry.js} +2 -2
- package/dist/globuscomponents/{p-4c2187ce.entry.js → p-0b58ad12.entry.js} +2 -2
- package/dist/globuscomponents/{p-6187221a.entry.js → p-13a84f56.entry.js} +2 -2
- package/dist/globuscomponents/{p-5058e15b.entry.js → p-14e14b09.entry.js} +2 -2
- package/dist/globuscomponents/{p-3d1463bb.entry.js → p-14f8a91b.entry.js} +2 -2
- package/dist/globuscomponents/{p-df6ca614.entry.js → p-185d02fb.entry.js} +2 -2
- package/dist/globuscomponents/{p-fc5f1608.entry.js → p-23133621.entry.js} +2 -2
- package/dist/globuscomponents/{p-aa9276da.entry.js → p-2a21fc28.entry.js} +2 -2
- package/dist/globuscomponents/p-2ce9c18a.entry.js +2 -0
- package/dist/globuscomponents/{p-612e13af.entry.js.map → p-2ce9c18a.entry.js.map} +1 -1
- package/dist/globuscomponents/{p-da4f965a.entry.js → p-31bf4710.entry.js} +2 -2
- package/dist/globuscomponents/{p-db85bbb3.entry.js → p-33f4e7f6.entry.js} +2 -2
- package/dist/globuscomponents/{p-91764ae6.entry.js → p-3b7b933c.entry.js} +2 -2
- package/dist/globuscomponents/{p-70c0c48f.entry.js → p-4958c9ba.entry.js} +2 -2
- package/dist/globuscomponents/{p-eae87772.js → p-4cc02ec1.js} +2 -2
- package/dist/globuscomponents/{p-3f71767b.entry.js → p-554f28f6.entry.js} +2 -2
- package/dist/globuscomponents/{p-9a6025f9.entry.js → p-5ec82950.entry.js} +2 -2
- package/dist/globuscomponents/{p-cd0b001d.entry.js → p-6cea59d4.entry.js} +2 -2
- package/dist/globuscomponents/{p-89739cc8.entry.js → p-75b21675.entry.js} +2 -2
- package/dist/globuscomponents/{p-4aedd512.entry.js → p-7fd10105.entry.js} +2 -2
- package/dist/globuscomponents/p-8aae1040.entry.js +2 -0
- package/dist/globuscomponents/p-8aae1040.entry.js.map +1 -0
- package/dist/globuscomponents/{p-ea02ed2e.entry.js → p-8f25cee8.entry.js} +2 -2
- package/dist/globuscomponents/{p-b10893b7.entry.js → p-92a735ee.entry.js} +2 -2
- package/dist/globuscomponents/{p-17998f68.entry.js → p-92af7f46.entry.js} +2 -2
- package/dist/globuscomponents/{p-48116815.entry.js → p-96d65ef9.entry.js} +2 -2
- package/dist/globuscomponents/{p-2e50812d.entry.js → p-9abd951b.entry.js} +2 -2
- package/dist/globuscomponents/{p-da460f1f.entry.js → p-a6295219.entry.js} +2 -2
- package/dist/globuscomponents/{p-844a7d68.entry.js → p-c6c34486.entry.js} +2 -2
- package/dist/globuscomponents/p-c75f96d6.entry.js +2 -0
- package/dist/globuscomponents/{p-2b3262cd.entry.js.map → p-c75f96d6.entry.js.map} +1 -1
- package/dist/globuscomponents/{p-375589bc.entry.js → p-c922560c.entry.js} +2 -2
- package/dist/globuscomponents/{p-b33c894d.entry.js → p-d735b2a6.entry.js} +2 -2
- package/dist/globuscomponents/{p-da728002.entry.js → p-da9e05fa.entry.js} +2 -2
- package/dist/globuscomponents/{p-c641c937.entry.js → p-ea7ce35a.entry.js} +2 -2
- package/dist/globuscomponents/{p-fd17a6f4.entry.js → p-ecd8b206.entry.js} +2 -2
- package/dist/globuscomponents/{p-dea460fb.entry.js → p-efd96d9e.entry.js} +2 -2
- package/dist/globuscomponents/{p-614ee37b.entry.js → p-f37c9704.entry.js} +2 -2
- package/dist/globuscomponents/{p-80f66cd1.entry.js → p-fed6c43b.entry.js} +2 -2
- package/dist/globuscomponents/readme.md +40 -0
- package/dist/types/components/gb-btn/gb-btn.d.ts +3 -0
- package/dist/types/components/gb-button/gb-button.d.ts +3 -0
- package/package.json +1 -1
- package/dist/components/p-bf1b5255.js.map +0 -1
- package/dist/globuscomponents/p-2b3262cd.entry.js +0 -2
- package/dist/globuscomponents/p-38b2193b.entry.js +0 -2
- package/dist/globuscomponents/p-38b2193b.entry.js.map +0 -1
- package/dist/globuscomponents/p-612e13af.entry.js +0 -2
- /package/dist/globuscomponents/{p-74aef423.entry.js.map → p-00244d6c.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-61fd847f.entry.js.map → p-03fd3db6.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-4c2187ce.entry.js.map → p-0b58ad12.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-6187221a.entry.js.map → p-13a84f56.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-5058e15b.entry.js.map → p-14e14b09.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-3d1463bb.entry.js.map → p-14f8a91b.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-df6ca614.entry.js.map → p-185d02fb.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-fc5f1608.entry.js.map → p-23133621.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-aa9276da.entry.js.map → p-2a21fc28.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-da4f965a.entry.js.map → p-31bf4710.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-db85bbb3.entry.js.map → p-33f4e7f6.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-91764ae6.entry.js.map → p-3b7b933c.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-70c0c48f.entry.js.map → p-4958c9ba.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-eae87772.js.map → p-4cc02ec1.js.map} +0 -0
- /package/dist/globuscomponents/{p-3f71767b.entry.js.map → p-554f28f6.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-9a6025f9.entry.js.map → p-5ec82950.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-cd0b001d.entry.js.map → p-6cea59d4.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-89739cc8.entry.js.map → p-75b21675.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-4aedd512.entry.js.map → p-7fd10105.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-ea02ed2e.entry.js.map → p-8f25cee8.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-b10893b7.entry.js.map → p-92a735ee.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-17998f68.entry.js.map → p-92af7f46.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-48116815.entry.js.map → p-96d65ef9.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-2e50812d.entry.js.map → p-9abd951b.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-da460f1f.entry.js.map → p-a6295219.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-844a7d68.entry.js.map → p-c6c34486.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-375589bc.entry.js.map → p-c922560c.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-b33c894d.entry.js.map → p-d735b2a6.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-da728002.entry.js.map → p-da9e05fa.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-c641c937.entry.js.map → p-ea7ce35a.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-fd17a6f4.entry.js.map → p-ecd8b206.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-dea460fb.entry.js.map → p-efd96d9e.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-614ee37b.entry.js.map → p-f37c9704.entry.js.map} +0 -0
- /package/dist/globuscomponents/{p-80f66cd1.entry.js.map → p-fed6c43b.entry.js.map} +0 -0
|
@@ -19,29 +19,32 @@ const GbButton = class {
|
|
|
19
19
|
this.iconLeadingSwap = undefined;
|
|
20
20
|
this.iconTrailing = false;
|
|
21
21
|
this.iconTrailingSwap = undefined;
|
|
22
|
+
this.leadingIconSvg = '';
|
|
23
|
+
this.trailingIconSvg = '';
|
|
22
24
|
}
|
|
23
25
|
componentWillLoad() {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
if (this.iconLeading && this.iconLeadingSwap) {
|
|
27
|
+
this.loadIcon(this.iconLeadingSwap, 'leading');
|
|
28
|
+
}
|
|
29
|
+
if (this.iconTrailing && this.iconTrailingSwap) {
|
|
30
|
+
this.loadIcon(this.iconTrailingSwap, 'trailing');
|
|
31
|
+
}
|
|
30
32
|
const buttonSlot = this.el.querySelector('p');
|
|
31
33
|
if (buttonSlot) {
|
|
32
34
|
buttonSlot.classList.add(this.getButtonTextClasses());
|
|
33
35
|
}
|
|
34
36
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
37
|
+
async loadIcon(iconName, type) {
|
|
38
|
+
const iconPath = index.getAssetPath(`${iconName}`);
|
|
39
|
+
const response = await fetch(iconPath);
|
|
40
|
+
const svg = await response.text();
|
|
41
|
+
if (type === 'leading') {
|
|
42
|
+
this.leadingIconSvg = svg;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.trailingIconSvg = svg;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
45
48
|
// Helper to apply color styles based on the button state
|
|
46
49
|
getButtonClasses() {
|
|
47
50
|
return {
|
|
@@ -69,13 +72,13 @@ const GbButton = class {
|
|
|
69
72
|
}
|
|
70
73
|
}
|
|
71
74
|
renderLeadingIcon() {
|
|
72
|
-
return index.h("div", { class: `icon left-icon ${this.size}`, innerHTML: this.
|
|
75
|
+
return index.h("div", { class: `icon left-icon ${this.size}`, innerHTML: this.leadingIconSvg });
|
|
73
76
|
}
|
|
74
77
|
renderTrailingIcon() {
|
|
75
|
-
return index.h("div", { class: "icon right-icon", innerHTML: this.
|
|
78
|
+
return index.h("div", { class: "icon right-icon", innerHTML: this.trailingIconSvg });
|
|
76
79
|
}
|
|
77
80
|
render() {
|
|
78
|
-
return (index.h("button", { key: '
|
|
81
|
+
return (index.h("button", { key: '99642bbacfa19e24c66fba2a9b396872e56b07c2', class: this.getButtonClasses() }, this.iconLeading && this.icon === 'default' && this.renderLeadingIcon(), this.icon === 'default' && index.h("slot", { key: '27230e98581e68daf4f6610aa37111ceb963909e' }), this.iconTrailing && this.renderTrailingIcon(), this.icon === 'only' && this.renderLeadingIcon()));
|
|
79
82
|
}
|
|
80
83
|
get el() { return index.getElement(this); }
|
|
81
84
|
};
|
|
@@ -96,29 +99,32 @@ const MyButton = class {
|
|
|
96
99
|
this.iconLeadingSwap = undefined;
|
|
97
100
|
this.iconTrailing = false;
|
|
98
101
|
this.iconTrailingSwap = undefined;
|
|
102
|
+
this.leadingIconSvg = '';
|
|
103
|
+
this.trailingIconSvg = '';
|
|
99
104
|
}
|
|
100
105
|
componentWillLoad() {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
106
|
+
if (this.iconLeading && this.iconLeadingSwap) {
|
|
107
|
+
this.loadIcon(this.iconLeadingSwap, 'leading');
|
|
108
|
+
}
|
|
109
|
+
if (this.iconTrailing && this.iconTrailingSwap) {
|
|
110
|
+
this.loadIcon(this.iconTrailingSwap, 'trailing');
|
|
111
|
+
}
|
|
107
112
|
const buttonSlot = this.el.querySelector('p');
|
|
108
113
|
if (buttonSlot) {
|
|
109
114
|
buttonSlot.classList.add(this.getButtonTextClasses());
|
|
110
115
|
}
|
|
111
116
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
117
|
+
async loadIcon(iconName, type) {
|
|
118
|
+
const iconPath = index.getAssetPath(`${iconName}`);
|
|
119
|
+
const response = await fetch(iconPath);
|
|
120
|
+
const svg = await response.text();
|
|
121
|
+
if (type === 'leading') {
|
|
122
|
+
this.leadingIconSvg = svg;
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
this.trailingIconSvg = svg;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
122
128
|
// Helper to apply color styles based on the button state
|
|
123
129
|
getButtonClasses() {
|
|
124
130
|
return {
|
|
@@ -141,15 +147,15 @@ const MyButton = class {
|
|
|
141
147
|
}
|
|
142
148
|
}
|
|
143
149
|
renderLeadingIcon() {
|
|
144
|
-
return index.h("div", { class: `icon left-icon ${this.size}`, innerHTML: this.
|
|
150
|
+
return index.h("div", { class: `icon left-icon ${this.size}`, innerHTML: this.leadingIconSvg });
|
|
145
151
|
}
|
|
146
152
|
renderTrailingIcon() {
|
|
147
|
-
return index.h("div", { class: "icon right-icon", innerHTML: this.
|
|
153
|
+
return index.h("div", { class: "icon right-icon", innerHTML: this.trailingIconSvg });
|
|
148
154
|
}
|
|
149
155
|
render() {
|
|
150
|
-
return (index.h("button", { key: '
|
|
156
|
+
return (index.h("button", { key: '4cf45b244021de3767f657d4bbf19eda9475386c', class: this.getButtonClasses() }, this.iconLeading && this.icon === 'default' && this.renderLeadingIcon(), this.icon === 'default' && index.h("slot", { key: '68aa9922ecccbcf54d5bc80913648301d9d1a927' }), this.iconTrailing && this.renderTrailingIcon(), this.icon === 'only' && this.renderLeadingIcon()));
|
|
151
157
|
}
|
|
152
|
-
static get assetsDirs() { return ["
|
|
158
|
+
static get assetsDirs() { return [""]; }
|
|
153
159
|
get el() { return index.getElement(this); }
|
|
154
160
|
};
|
|
155
161
|
MyButton.style = GbButtonStyle0;
|
|
@@ -165,7 +171,7 @@ const TestTooltip = class {
|
|
|
165
171
|
this.visible = true;
|
|
166
172
|
}
|
|
167
173
|
componentDidLoad() {
|
|
168
|
-
const mainTextSlot = this.el.querySelector('[slot="
|
|
174
|
+
const mainTextSlot = this.el.querySelector('[slot="main_text"]');
|
|
169
175
|
const supportingTextSlot = this.el.querySelector('[slot="supporting_text"]');
|
|
170
176
|
if (mainTextSlot) {
|
|
171
177
|
mainTextSlot.classList.add('text-xs-semi-bold');
|
|
@@ -181,7 +187,7 @@ const TestTooltip = class {
|
|
|
181
187
|
return this.showArrow ? `arrow ${this.arrowPosition}` : '';
|
|
182
188
|
}
|
|
183
189
|
render() {
|
|
184
|
-
return (index.h("div", { key: '
|
|
190
|
+
return (index.h("div", { key: 'eb166a5bffa72689f9463fddf3f8ed4897ffc7a9', class: "tooltip_container" }, index.h("slot", { key: '3e880c2f97a3608c41289af47d5c98b1311383d2' }), this.visible && (index.h("div", { key: '78a7030850ece5a5ef198430a7281e9a58539e7a', class: "tooltip" }, index.h("div", { key: '80ded713d396645ef173bead461c61439cd3883a', class: this.getArrowClass() }), index.h("div", { key: '5843b3b5eaf390d963c639fc0ca446f96d529842', class: "tooltip_content" }, index.h("slot", { key: 'cbb41ed966f215c1a4e0d622b7d38c9b9cadaa22', name: "main_text" }))))));
|
|
185
191
|
}
|
|
186
192
|
get el() { return index.getElement(this); }
|
|
187
193
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gb-btn.gb-button.test-tooltip.entry.cjs.js","mappings":"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","names":["h"],"sources":["src/components/gb-btn/gb-btn.css?tag=gb-btn","src/components/gb-btn/gb-btn.tsx","src/components/gb-button/gb-button.css?tag=gb-button&encapsulation=shadow","src/components/gb-button/gb-button.tsx","src/components/test-tooltip/test-tooltip.css?tag=test-tooltip&encapsulation=shadow","src/components/test-tooltip/test-tooltip.tsx"],"sourcesContent":["@import './../../global/global.css';\r\n@import './../../global/spacing.css';\r\n@import './../../global/typography.css';\r\n\r\n:host {\r\n --button-color: var(--primary-color);\r\n --icon-color: var(--primary-color);\r\n}\r\n\r\nbutton {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n border: none;\r\n cursor: pointer;\r\n border-radius: var(--rounded-sm);\r\n width: 100%;\r\n}\r\n\r\nbutton.only{\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\nbutton .icon {\r\n display: inline-flex;\r\n width: auto;\r\n height: auto;\r\n}\r\n\r\nbutton .icon svg path[fill] {\r\n fill: var(--icon-color);\r\n}\r\n\r\nbutton .icon svg path[stroke] {\r\n stroke: var(--icon-color);\r\n}\r\n\r\nbutton .icon svg circle {\r\n stroke: var(--icon-color);\r\n}\r\n\r\n/* Button Sizes Styles */\r\nbutton.xl2{\r\n padding: var(--spacing-none) var(--spacing-6);\r\n height: 3.5rem;\r\n gap: var(--spacing-3);\r\n}\r\n\r\nbutton.xl{\r\n padding: var(--spacing-none) var(--spacing-5);\r\n height: 3rem;\r\n gap: var(--spacing-2);\r\n}\r\n\r\nbutton.lg{\r\n padding: 0.625rem 1.125rem;\r\n height: 2.75rem;\r\n gap: var(--spacing-2);\r\n}\r\n\r\nbutton.md{\r\n padding: var(--spacing-none) var(--spacing-4);\r\n height: 2.5rem;\r\n gap: var(--spacing-2);\r\n}\r\n\r\nbutton.sm{\r\n padding: var(--spacing-none) var(--spacing-3);\r\n height: 2.25rem;\r\n gap: var(--spacing-2);\r\n}\r\n\r\nbutton.only.xl2{\r\n width: 3.5rem;\r\n height: 3.5rem;\r\n}\r\n\r\nbutton.only.xl{\r\n width: 3rem;\r\n height: 3rem;\r\n}\r\n\r\nbutton.only.lg{\r\n width: 2.75rem;\r\n height: 2.75rem;\r\n}\r\n\r\nbutton.only.md{\r\n width: 2.5rem;\r\n height: 2.5rem;\r\n}\r\n\r\nbutton.only.sm{\r\n width: 2.25rem;\r\n height: 2.25rem;\r\n}\r\n\r\nbutton.xl2 .icon svg{\r\n width: var(--spacing-6);\r\n height: var(--spacing-6);\r\n}\r\n\r\nbutton.xl .icon svg,\r\nbutton.lg .icon svg,\r\nbutton.md .icon svg,\r\nbutton.sm .icon svg{\r\n width: var(--spacing-5);\r\n height: var(--spacing-5);\r\n}\r\n\r\n/* Hierarchy Styles */\r\nbutton.primary {\r\n background-color: var(--color-background-brandRed, #E21B2E);\r\n --icon-color: var(--color-icon-inverse, #FFFFFF);\r\n color: var(--color-text-inverse, #FFFFFF);\r\n}\r\n\r\nbutton.secondary_gray {\r\n background-color: transparent;\r\n border: 1px solid var(--color-border, #9AA4B2);\r\n --icon-color: var(--color-icon, #4B5565);\r\n color: var(--color-text, #4B5565);\r\n}\r\n\r\nbutton.secondary_color {\r\n background-color: transparent;\r\n border: 1px solid var(--color-border-brandRed, #E21B2E);\r\n --icon-color: var(--color-icon-brandRed, #E21B2E);\r\n color: var(--color-text-brandRed, #E21B2E);\r\n}\r\n\r\nbutton.tertiary_gray {\r\n background-color: transparent;\r\n --icon-color: var(--color-icon, #4B5565);\r\n color: var(--color-text, #4B5565);\r\n}\r\n\r\nbutton.tertiary_color {\r\n background-color: transparent;\r\n --icon-color: var(--color-icon-brandRed, #E21B2E);\r\n color: var(--color-text-brandRed, #E21B2E);\r\n}\r\n\r\nbutton.link_gray {\r\n background-color: transparent;\r\n --icon-color: var(--color-icon, #4B5565);\r\n color: var(--color-text, #4B5565);\r\n height: fit-content;\r\n}\r\n\r\nbutton.link_color {\r\n background-color: transparent;\r\n --icon-color: var(--color-link, #075DB2);\r\n color: var(--color-link, #075DB2);\r\n padding: var(--spacing-none);\r\n height: fit-content;\r\n}\r\n\r\n/* Button Destructive Styles */\r\nbutton.primary.destructive{\r\n background-color: var(--color-background-danger, #B51726);\r\n color: var(--color-text-inverse, #FFFFFF);\r\n --icon-color: var(--color-icon-danger-inverse, #FFFFFF);\r\n}\r\n\r\nbutton.secondary_gray.destructive, button.secondary_color.destructive{\r\n border: 1px solid var(--color-border-danger, #B51726);\r\n color: var(--color-text-danger, #B51726);\r\n --icon-color: var(--color-icon-danger, #B51726);\r\n}\r\n\r\nbutton.tertiary_gray.destructive,\r\nbutton.tertiary_color.destructive{\r\n color: var(--color-text-danger, #B51726);\r\n --icon-color: var(--color-icon-danger, #B51726);\r\n}\r\n\r\nbutton.link_gray.destructive, \r\nbutton.link_color.destructive{\r\n color: var(--color-text-danger, #B51726);\r\n --icon-color: var(--color-icon-danger, #B51726);\r\n}\r\n\r\n/* Button States Styles */\r\nbutton.primary:hover{\r\n background-color: var(--color-background-brandRed-hover, #CC1A2A);\r\n}\r\n\r\nbutton.primary:active{\r\n background-color: var(--color-background-brandRed-pressed, #B51726);\r\n}\r\n\r\nbutton.secondary_gray:hover{\r\n background-color: var(--color-background-gray-subtler, #EEF2F6);\r\n}\r\n\r\nbutton.secondary_gray:active{\r\n background-color: var(--color-background-gray-subtle, #E3E8EF);\r\n}\r\n\r\nbutton.secondary_color:hover{\r\n background-color: var(--color-background-danger-subtlest, #FEF1F2);\r\n}\r\n\r\nbutton.secondary_color:active{\r\n background-color: var(--color-background-danger-subtler, #FDE3E5);\r\n}\r\n\r\nbutton.tertiary_gray:hover{\r\n background-color: var(--color-background-gray-subtler, #EEF2F6);\r\n}\r\n\r\nbutton.tertiary_gray:active{\r\n background-color: var(--color-background-gray-subtle, #E3E8EF);\r\n}\r\n\r\nbutton.tertiary_color:hover{\r\n background-color: var(--color-background-danger-subtlest, #FEF1F2);\r\n}\r\n\r\nbutton.tertiary_color:active{\r\n background-color: var(--color-background-danger-subtler, #FDE3E5);\r\n}\r\n\r\nbutton.link_gray:hover,\r\nbutton.link_color:hover{\r\n text-decoration: underline;\r\n}\r\n\r\nbutton.link_gray:active{\r\n text-decoration: none;\r\n color: var(--color-text-bold, #202939);\r\n}\r\n\r\nbutton.link_gray:active{\r\n text-decoration: none;\r\n color: var(--color-link-pressed, #064E94);\r\n}\r\n\r\nbutton.primary.destructive:hover{\r\n background-color: var(--color-background-danger-bold, #8C121D);\r\n}\r\n\r\nbutton.primary.destructive:active{\r\n background-color: var(--color-background-brandRed-hover, #CC1A2A); /* ask Mr Gideon about this */\r\n}\r\n\r\nbutton.secondary_gray.destructive:hover, \r\nbutton.secondary_color.destructive:hover{\r\n background-color: var(--color-background-danger-subtlest, #FEF1F2);\r\n}\r\n\r\nbutton.secondary_gray.destructive:active, \r\nbutton.secondary_color.destructive:active{\r\n background-color: var(--color-background-danger-subtler, #FDE3E5);\r\n}\r\n\r\nbutton.tertiary_gray.destructive:hover, \r\nbutton.tertiary_color.destructive:hover{\r\n background-color: var(--color-background-danger-subtlest, #FEF1F2);\r\n}\r\n\r\nbutton.tertiary_gray.destructive:active, \r\nbutton.tertiary_color.destructive:active{\r\n background-color: var(--color-background-danger-subtler, #FDE3E5);\r\n}\r\n\r\nbutton.link_gray.destructive:active{\r\n color: var(--color-text-danger-bold, #8C121D);\r\n}\r\n\r\nbutton.link_color.destructive:active{\r\n color: var(--color-text-warning-bold, #93370D);\r\n}\r\n\r\n/* Button Disabled Styles */\r\nbutton.disabled{\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n}\r\n\r\nbutton.primary.disabled {\r\n background-color: var(--color-background-disabled, #F6F8FA);\r\n --icon-color: var(--color-icon-disabled, #CDD5DF);\r\n color: var(--color-text-disabled, #CDD5DF);\r\n}\r\n\r\nbutton.secondary_gray.disabled,\r\nbutton.secondary_color.disabled{\r\n --icon-color: var(--color-icon-disabled, #CDD5DF);\r\n color: var(--color-text-disabled, #CDD5DF);\r\n border-color: var(--color-border-disabled, #E3E8EF);\r\n}\r\n\r\nbutton.tertiary_gray.disabled,\r\nbutton.tertiary_color.disabled,\r\nbutton.link_gray.disabled,\r\nbutton.link_color.disabled{\r\n --icon-color: var(--color-icon-disabled, #CDD5DF);\r\n color: var(--color-text-disabled, #CDD5DF);\r\n}\r\n","import { Component, Element, h, Prop } from \"@stencil/core\";\r\nimport { GeneralHierarchies, GeneralSizes } from \"../../models/reusableModels\";\r\n\r\n@Component({\r\n tag: 'gb-btn',\r\n styleUrl: 'gb-btn.css',\r\n})\r\nexport class GbButton {\r\n @Prop() size: GeneralSizes;\r\n @Prop() hierarchy: GeneralHierarchies;\r\n @Prop() icon: 'default' | 'only';\r\n @Prop() destructive: boolean = false;\r\n @Prop() state: 'default' | 'hover' | 'disabled' | 'pressed';\r\n @Prop() iconLeading: boolean = false;\r\n @Prop() iconLeadingSwap: string;\r\n @Prop() iconTrailing: boolean = false;\r\n @Prop() iconTrailingSwap: string;\r\n @Element() el: HTMLElement;\r\n\r\n componentWillLoad() {\r\n // if (this.iconLeading && this.iconLeadingSwap) {\r\n // this.loadIcon(this.iconLeadingSwap, 'leading');\r\n // }\r\n // if (this.iconTrailing && this.iconTrailingSwap) {\r\n // this.loadIcon(this.iconTrailingSwap, 'trailing');\r\n // }\r\n\r\n const buttonSlot = this.el.querySelector('p');\r\n\r\n if (buttonSlot) {\r\n buttonSlot.classList.add(this.getButtonTextClasses());\r\n }\r\n }\r\n\r\n // async loadIcon(iconName: string, type: 'leading' | 'trailing') {\r\n // const iconPath = getAssetPath(`./assets/${iconName}.svg`);\r\n // const response = await fetch(iconPath);\r\n // const svg = await response.text();\r\n // if (type === 'leading') {\r\n // this.leadingIconSvg = svg;\r\n // } else {\r\n // this.trailingIconSvg = svg;\r\n // }\r\n // }\r\n\r\n // Helper to apply color styles based on the button state\r\n getButtonClasses() {\r\n return {\r\n button: true,\r\n [this.size]: true,\r\n [this.hierarchy]: true,\r\n destructive: this.destructive,\r\n disabled: this.state === 'disabled',\r\n default: this.icon === 'default',\r\n only: this.icon === 'only',\r\n };\r\n }\r\n\r\n getButtonTextClasses() {\r\n switch (this.size) {\r\n case 'xl2':\r\n return 'text-lg-semi-bold';\r\n case 'xl':\r\n return 'text-md-semi-bold';\r\n case 'lg':\r\n return 'text-md-semi-bold';\r\n case 'md':\r\n return 'text-sm-semi-bold';\r\n case 'sm':\r\n return 'text-sm-semi-bold';\r\n }\r\n }\r\n\r\n renderLeadingIcon() {\r\n return <div class={`icon left-icon ${this.size}`} innerHTML={this.iconLeadingSwap}></div>;\r\n }\r\n\r\n renderTrailingIcon() {\r\n return <div class=\"icon right-icon\" innerHTML={this.iconTrailingSwap}></div>;\r\n }\r\n\r\n render() {\r\n return (\r\n <button class={this.getButtonClasses()}>\r\n {this.iconLeading && this.icon === 'default' && this.renderLeadingIcon()}\r\n {this.icon === 'default' && <slot></slot>}\r\n {this.iconTrailing && this.renderTrailingIcon()}\r\n {this.icon === 'only' && this.renderLeadingIcon()}\r\n </button>\r\n );\r\n }\r\n}","@import './../../global/global.css';\r\n@import './../../global/spacing.css';\r\n@import './../../global/typography.css';\r\n\r\n:host {\r\n --button-color: var(--primary-color);\r\n --icon-color: var(--primary-color);\r\n}\r\n\r\nbutton {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n border: none;\r\n cursor: pointer;\r\n border-radius: var(--rounded-sm);\r\n width: 100%;\r\n}\r\n\r\nbutton.only{\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\nbutton .icon {\r\n display: inline-flex;\r\n width: auto;\r\n height: auto;\r\n}\r\n\r\nbutton .icon svg path[fill] {\r\n fill: var(--icon-color);\r\n}\r\n\r\nbutton .icon svg path[stroke] {\r\n stroke: var(--icon-color);\r\n}\r\n\r\nbutton .icon svg circle {\r\n stroke: var(--icon-color);\r\n}\r\n\r\n/* Button Sizes Styles */\r\nbutton.xl2{\r\n padding: var(--spacing-none) var(--spacing-6);\r\n height: 3.5rem;\r\n gap: var(--spacing-3);\r\n}\r\n\r\nbutton.xl{\r\n padding: var(--spacing-none) var(--spacing-5);\r\n height: 3rem;\r\n gap: var(--spacing-2);\r\n}\r\n\r\nbutton.lg{\r\n padding: 0.625rem 1.125rem;\r\n height: 2.75rem;\r\n gap: var(--spacing-2);\r\n}\r\n\r\nbutton.md{\r\n padding: var(--spacing-none) var(--spacing-4);\r\n height: 2.5rem;\r\n gap: var(--spacing-2);\r\n}\r\n\r\nbutton.sm{\r\n padding: var(--spacing-none) var(--spacing-3);\r\n height: 2.25rem;\r\n gap: var(--spacing-2);\r\n}\r\n\r\nbutton.only.xl2{\r\n width: 3.5rem;\r\n height: 3.5rem;\r\n}\r\n\r\nbutton.only.xl{\r\n width: 3rem;\r\n height: 3rem;\r\n}\r\n\r\nbutton.only.lg{\r\n width: 2.75rem;\r\n height: 2.75rem;\r\n}\r\n\r\nbutton.only.md{\r\n width: 2.5rem;\r\n height: 2.5rem;\r\n}\r\n\r\nbutton.only.sm{\r\n width: 2.25rem;\r\n height: 2.25rem;\r\n}\r\n\r\nbutton.xl2 .icon svg{\r\n width: var(--spacing-6);\r\n height: var(--spacing-6);\r\n}\r\n\r\nbutton.xl .icon svg,\r\nbutton.lg .icon svg,\r\nbutton.md .icon svg,\r\nbutton.sm .icon svg{\r\n width: var(--spacing-5);\r\n height: var(--spacing-5);\r\n}\r\n\r\n/* Hierarchy Styles */\r\nbutton.primary {\r\n background-color: var(--color-background-brandRed, #E21B2E);\r\n --icon-color: var(--color-icon-inverse, #FFFFFF);\r\n color: var(--color-text-inverse, #FFFFFF);\r\n}\r\n\r\nbutton.secondary_gray {\r\n background-color: transparent;\r\n border: 1px solid var(--color-border, #9AA4B2);\r\n --icon-color: var(--color-icon, #4B5565);\r\n color: var(--color-text, #4B5565);\r\n}\r\n\r\nbutton.secondary_color {\r\n background-color: transparent;\r\n border: 1px solid var(--color-border-brandRed, #E21B2E);\r\n --icon-color: var(--color-icon-brandRed, #E21B2E);\r\n color: var(--color-text-brandRed, #E21B2E);\r\n}\r\n\r\nbutton.tertiary_gray {\r\n background-color: transparent;\r\n --icon-color: var(--color-icon, #4B5565);\r\n color: var(--color-text, #4B5565);\r\n}\r\n\r\nbutton.tertiary_color {\r\n background-color: transparent;\r\n --icon-color: var(--color-icon-brandRed, #E21B2E);\r\n color: var(--color-text-brandRed, #E21B2E);\r\n}\r\n\r\nbutton.link_gray {\r\n background-color: transparent;\r\n --icon-color: var(--color-icon, #4B5565);\r\n color: var(--color-text, #4B5565);\r\n height: fit-content;\r\n}\r\n\r\nbutton.link_color {\r\n background-color: transparent;\r\n --icon-color: var(--color-link, #075DB2);\r\n color: var(--color-link, #075DB2);\r\n padding: var(--spacing-none);\r\n height: fit-content;\r\n}\r\n\r\n/* Button Destructive Styles */\r\nbutton.primary.destructive{\r\n background-color: var(--color-background-danger, #B51726);\r\n color: var(--color-text-inverse, #FFFFFF);\r\n --icon-color: var(--color-icon-danger-inverse, #FFFFFF);\r\n}\r\n\r\nbutton.secondary_gray.destructive, button.secondary_color.destructive{\r\n border: 1px solid var(--color-border-danger, #B51726);\r\n color: var(--color-text-danger, #B51726);\r\n --icon-color: var(--color-icon-danger, #B51726);\r\n}\r\n\r\nbutton.tertiary_gray.destructive,\r\nbutton.tertiary_color.destructive{\r\n color: var(--color-text-danger, #B51726);\r\n --icon-color: var(--color-icon-danger, #B51726);\r\n}\r\n\r\nbutton.link_gray.destructive, \r\nbutton.link_color.destructive{\r\n color: var(--color-text-danger, #B51726);\r\n --icon-color: var(--color-icon-danger, #B51726);\r\n}\r\n\r\n/* Button States Styles */\r\nbutton.primary:hover{\r\n background-color: var(--color-background-brandRed-hover, #CC1A2A);\r\n}\r\n\r\nbutton.primary:active{\r\n background-color: var(--color-background-brandRed-pressed, #B51726);\r\n}\r\n\r\nbutton.secondary_gray:hover{\r\n background-color: var(--color-background-gray-subtler, #EEF2F6);\r\n}\r\n\r\nbutton.secondary_gray:active{\r\n background-color: var(--color-background-gray-subtle, #E3E8EF);\r\n}\r\n\r\nbutton.secondary_color:hover{\r\n background-color: var(--color-background-danger-subtlest, #FEF1F2);\r\n}\r\n\r\nbutton.secondary_color:active{\r\n background-color: var(--color-background-danger-subtler, #FDE3E5);\r\n}\r\n\r\nbutton.tertiary_gray:hover{\r\n background-color: var(--color-background-gray-subtler, #EEF2F6);\r\n}\r\n\r\nbutton.tertiary_gray:active{\r\n background-color: var(--color-background-gray-subtle, #E3E8EF);\r\n}\r\n\r\nbutton.tertiary_color:hover{\r\n background-color: var(--color-background-danger-subtlest, #FEF1F2);\r\n}\r\n\r\nbutton.tertiary_color:active{\r\n background-color: var(--color-background-danger-subtler, #FDE3E5);\r\n}\r\n\r\nbutton.link_gray:hover,\r\nbutton.link_color:hover{\r\n text-decoration: underline;\r\n}\r\n\r\nbutton.link_gray:active{\r\n text-decoration: none;\r\n color: var(--color-text-bold, #202939);\r\n}\r\n\r\nbutton.link_gray:active{\r\n text-decoration: none;\r\n color: var(--color-link-pressed, #064E94);\r\n}\r\n\r\nbutton.primary.destructive:hover{\r\n background-color: var(--color-background-danger-bold, #8C121D);\r\n}\r\n\r\nbutton.primary.destructive:active{\r\n background-color: var(--color-background-brandRed-hover, #CC1A2A); /* ask Mr Gideon about this */\r\n}\r\n\r\nbutton.secondary_gray.destructive:hover, \r\nbutton.secondary_color.destructive:hover{\r\n background-color: var(--color-background-danger-subtlest, #FEF1F2);\r\n}\r\n\r\nbutton.secondary_gray.destructive:active, \r\nbutton.secondary_color.destructive:active{\r\n background-color: var(--color-background-danger-subtler, #FDE3E5);\r\n}\r\n\r\nbutton.tertiary_gray.destructive:hover, \r\nbutton.tertiary_color.destructive:hover{\r\n background-color: var(--color-background-danger-subtlest, #FEF1F2);\r\n}\r\n\r\nbutton.tertiary_gray.destructive:active, \r\nbutton.tertiary_color.destructive:active{\r\n background-color: var(--color-background-danger-subtler, #FDE3E5);\r\n}\r\n\r\nbutton.link_gray.destructive:active{\r\n color: var(--color-text-danger-bold, #8C121D);\r\n}\r\n\r\nbutton.link_color.destructive:active{\r\n color: var(--color-text-warning-bold, #93370D);\r\n}\r\n\r\n/* Button Disabled Styles */\r\nbutton.disabled{\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n}\r\n\r\nbutton.primary.disabled {\r\n background-color: var(--color-background-disabled, #F6F8FA);\r\n --icon-color: var(--color-icon-disabled, #CDD5DF);\r\n color: var(--color-text-disabled, #CDD5DF);\r\n}\r\n\r\nbutton.secondary_gray.disabled,\r\nbutton.secondary_color.disabled{\r\n --icon-color: var(--color-icon-disabled, #CDD5DF);\r\n color: var(--color-text-disabled, #CDD5DF);\r\n border-color: var(--color-border-disabled, #E3E8EF);\r\n}\r\n\r\nbutton.tertiary_gray.disabled,\r\nbutton.tertiary_color.disabled,\r\nbutton.link_gray.disabled,\r\nbutton.link_color.disabled{\r\n --icon-color: var(--color-icon-disabled, #CDD5DF);\r\n color: var(--color-text-disabled, #CDD5DF);\r\n}\r\n","import { Component, Element, h, Prop } from '@stencil/core';\r\nimport { GeneralHierarchies, GeneralSizes } from '../../models/reusableModels';\r\n\r\n@Component({\r\n tag: 'gb-button',\r\n styleUrl: 'gb-button.css',\r\n shadow: true,\r\n assetsDirs: ['assets'],\r\n})\r\nexport class MyButton {\r\n @Prop() size: GeneralSizes;\r\n @Prop() hierarchy: GeneralHierarchies;\r\n @Prop() icon: 'default' | 'only';\r\n @Prop() destructive: boolean = false;\r\n @Prop() state: 'default' | 'hover' | 'disabled' | 'pressed';\r\n @Prop() iconLeading: boolean = false;\r\n @Prop() iconLeadingSwap: string;\r\n @Prop() iconTrailing: boolean = false;\r\n @Prop() iconTrailingSwap: string;\r\n @Element() el: HTMLElement;\r\n componentWillLoad() {\r\n // if (this.iconLeading && this.iconLeadingSwap) {\r\n // this.loadIcon(this.iconLeadingSwap, 'leading');\r\n // }\r\n // if (this.iconTrailing && this.iconTrailingSwap) {\r\n // this.loadIcon(this.iconTrailingSwap, 'trailing');\r\n // }\r\n\r\n const buttonSlot = this.el.querySelector('p');\r\n\r\n if (buttonSlot) {\r\n buttonSlot.classList.add(this.getButtonTextClasses());\r\n }\r\n }\r\n\r\n // async loadIcon(iconName: string, type: 'leading' | 'trailing') {\r\n // const iconPath = getAssetPath(`./assets/${iconName}.svg`);\r\n // const response = await fetch(iconPath);\r\n // const svg = await response.text();\r\n // if (type === 'leading') {\r\n // this.leadingIconSvg = svg;\r\n // } else {\r\n // this.trailingIconSvg = svg;\r\n // }\r\n // }\r\n\r\n // Helper to apply color styles based on the button state\r\n getButtonClasses() {\r\n return {\r\n button: true,\r\n [this.size]: true,\r\n [this.hierarchy]: true,\r\n destructive: this.destructive,\r\n disabled: this.state === 'disabled',\r\n default: this.icon === 'default',\r\n only: this.icon === 'only'\r\n };\r\n }\r\n\r\n getButtonTextClasses() {\r\n switch (this.size) {\r\n case 'xl2' : return 'text-lg-semi-bold';\r\n case 'xl' : return 'text-md-semi-bold';\r\n case 'lg' : return 'text-md-semi-bold';\r\n case 'md' : return 'text-sm-semi-bold';\r\n case 'sm' : return 'text-sm-semi-bold';\r\n }\r\n }\r\n\r\n renderLeadingIcon() {\r\n return <div class={`icon left-icon ${this.size}`} innerHTML={this.iconLeadingSwap}></div>;\r\n }\r\n\r\n renderTrailingIcon() {\r\n return <div class=\"icon right-icon\" innerHTML={this.iconTrailingSwap}></div>;\r\n }\r\n\r\n render() {\r\n return (\r\n <button class={this.getButtonClasses()}>\r\n {this.iconLeading && this.icon === 'default' && this.renderLeadingIcon()}\r\n {this.icon === 'default' && <slot></slot>}\r\n {this.iconTrailing && this.renderTrailingIcon()}\r\n {this.icon === 'only' && this.renderLeadingIcon()}\r\n </button>\r\n );\r\n }\r\n}\r\n","@import './../../global/global.css';\r\n@import './../../global/spacing.css';\r\n@import './../../global/typography.css';\r\n\r\n.tooltip-container {\r\n position: relative;\r\n display: inline-block;\r\n}\r\n \r\n.tooltip {\r\n position: absolute;\r\n background-color: var(--color-surface-bold, #FCFCFC);\r\n border: 0.5px solid var(--color-border-subtler, #E3E8EF);\r\n border-radius: var(--rounded-sm);\r\n box-shadow: var(--shadow-sm);\r\n color: #333;\r\n padding: 8px;\r\n white-space: nowrap;\r\n z-index: 10;\r\n}\r\n \r\n.tooltip-content {\r\n font-size: 14px;\r\n color: #333;\r\n}\r\n \r\n.arrow {\r\n width: 0;\r\n height: 0;\r\n border-style: solid;\r\n position: absolute;\r\n}\r\n\r\n.arrow::before {\r\n content: '';\r\n position: absolute;\r\n width: 0;\r\n height: 0;\r\n border-style: solid;\r\n}\r\n \r\n.arrow.bottom-center {\r\n top: 100%;\r\n left: 50%;\r\n border-width: 8px 8px 0 8px;\r\n border-color: #fff transparent transparent transparent;\r\n transform: translateX(-50%);\r\n}\r\n \r\n.arrow.left {\r\n top: 50%;\r\n right: 100%;\r\n border-width: 6px 0 6px 6px;\r\n border-color: transparent transparent transparent #E3E8EF;\r\n transform: translateY(-50%) rotate(180deg);\r\n}\r\n\r\n.arrow.left::before {\r\n left: -8px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n border-width: 7.5px 0 7.5px 7.5px;\r\n border-color: transparent transparent transparent #fff;\r\n}\r\n \r\n.arrow.right {\r\n top: 50%;\r\n left: 100%;\r\n border-width: 8px 8px 8px 0;\r\n border-color: transparent #fff transparent transparent;\r\n transform: translateY(-50%);\r\n}\r\n \r\n.arrow-right::before {\r\n right: -8px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n border-width: 8px 8px 8px 0;\r\n border-color: transparent #d3d3d3 transparent transparent;\r\n}\r\n\r\n.arrow.top-left {\r\n bottom: 100%;\r\n left: 0;\r\n border-width: 0 8px 8px 8px;\r\n border-color: transparent transparent #fff transparent;\r\n}\r\n \r\n.arrow.top-right {\r\n bottom: 100%;\r\n right: 0;\r\n border-width: 0 8px 8px 8px;\r\n border-color: transparent transparent #fff transparent;\r\n}","import { Component, Element, Prop, State, h } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: 'test-tooltip',\r\n styleUrl: 'test-tooltip.css',\r\n shadow: true,\r\n})\r\nexport class TestTooltip {\r\n @Prop() showArrow: boolean = true;\r\n @Prop() arrowPosition: 'bottom-center' | 'left' | 'right' | 'top-left' | 'top-right' = 'bottom-center';\r\n\r\n @State() visible: boolean = true;\r\n @Element() el: HTMLElement;\r\n\r\n componentDidLoad() {\r\n const mainTextSlot = this.el.querySelector('[slot=\"tooltip-content\"]');\r\n const supportingTextSlot = this.el.querySelector('[slot=\"supporting_text\"]');\r\n\r\n if (mainTextSlot) {\r\n mainTextSlot.classList.add('text-xs-semi-bold');\r\n }\r\n\r\n if (supportingTextSlot) {\r\n supportingTextSlot.classList.add('text-xs-regular');\r\n }\r\n }\r\n\r\n toggleTooltip() {\r\n this.visible = !this.visible;\r\n }\r\n\r\n getArrowClass() {\r\n return this.showArrow ? `arrow ${this.arrowPosition}` : '';\r\n }\r\n\r\n render() {\r\n return (\r\n <div class=\"tooltip-container\">\r\n <slot />\r\n {this.visible && (\r\n <div class=\"tooltip\">\r\n <div class={this.getArrowClass()}></div>\r\n <div class=\"tooltip-content\">\r\n <slot name=\"tooltip-content\" />\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }\r\n}"],"version":3}
|
|
1
|
+
{"file":"gb-btn.gb-button.test-tooltip.entry.cjs.js","mappings":"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","names":["getAssetPath","h"],"sources":["src/components/gb-btn/gb-btn.css?tag=gb-btn","src/components/gb-btn/gb-btn.tsx","src/components/gb-button/gb-button.css?tag=gb-button&encapsulation=shadow","src/components/gb-button/gb-button.tsx","src/components/test-tooltip/test-tooltip.css?tag=test-tooltip&encapsulation=shadow","src/components/test-tooltip/test-tooltip.tsx"],"sourcesContent":["@import './../../global/global.css';\r\n@import './../../global/spacing.css';\r\n@import './../../global/typography.css';\r\n\r\n:host {\r\n --button-color: var(--primary-color);\r\n --icon-color: var(--primary-color);\r\n}\r\n\r\nbutton {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n border: none;\r\n cursor: pointer;\r\n border-radius: var(--rounded-sm);\r\n width: 100%;\r\n}\r\n\r\nbutton.only{\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\nbutton .icon {\r\n display: inline-flex;\r\n width: auto;\r\n height: auto;\r\n}\r\n\r\nbutton .icon svg path[fill] {\r\n fill: var(--icon-color);\r\n}\r\n\r\nbutton .icon svg path[stroke] {\r\n stroke: var(--icon-color);\r\n}\r\n\r\nbutton .icon svg circle {\r\n stroke: var(--icon-color);\r\n}\r\n\r\n/* Button Sizes Styles */\r\nbutton.xl2{\r\n padding: var(--spacing-none) var(--spacing-6);\r\n height: 3.5rem;\r\n gap: var(--spacing-3);\r\n}\r\n\r\nbutton.xl{\r\n padding: var(--spacing-none) var(--spacing-5);\r\n height: 3rem;\r\n gap: var(--spacing-2);\r\n}\r\n\r\nbutton.lg{\r\n padding: 0.625rem 1.125rem;\r\n height: 2.75rem;\r\n gap: var(--spacing-2);\r\n}\r\n\r\nbutton.md{\r\n padding: var(--spacing-none) var(--spacing-4);\r\n height: 2.5rem;\r\n gap: var(--spacing-2);\r\n}\r\n\r\nbutton.sm{\r\n padding: var(--spacing-none) var(--spacing-3);\r\n height: 2.25rem;\r\n gap: var(--spacing-2);\r\n}\r\n\r\nbutton.only.xl2{\r\n width: 3.5rem;\r\n height: 3.5rem;\r\n}\r\n\r\nbutton.only.xl{\r\n width: 3rem;\r\n height: 3rem;\r\n}\r\n\r\nbutton.only.lg{\r\n width: 2.75rem;\r\n height: 2.75rem;\r\n}\r\n\r\nbutton.only.md{\r\n width: 2.5rem;\r\n height: 2.5rem;\r\n}\r\n\r\nbutton.only.sm{\r\n width: 2.25rem;\r\n height: 2.25rem;\r\n}\r\n\r\nbutton.xl2 .icon svg{\r\n width: var(--spacing-6);\r\n height: var(--spacing-6);\r\n}\r\n\r\nbutton.xl .icon svg,\r\nbutton.lg .icon svg,\r\nbutton.md .icon svg,\r\nbutton.sm .icon svg{\r\n width: var(--spacing-5);\r\n height: var(--spacing-5);\r\n}\r\n\r\n/* Hierarchy Styles */\r\nbutton.primary {\r\n background-color: var(--color-background-brandRed, #E21B2E);\r\n --icon-color: var(--color-icon-inverse, #FFFFFF);\r\n color: var(--color-text-inverse, #FFFFFF);\r\n}\r\n\r\nbutton.secondary_gray {\r\n background-color: transparent;\r\n border: 1px solid var(--color-border, #9AA4B2);\r\n --icon-color: var(--color-icon, #4B5565);\r\n color: var(--color-text, #4B5565);\r\n}\r\n\r\nbutton.secondary_color {\r\n background-color: transparent;\r\n border: 1px solid var(--color-border-brandRed, #E21B2E);\r\n --icon-color: var(--color-icon-brandRed, #E21B2E);\r\n color: var(--color-text-brandRed, #E21B2E);\r\n}\r\n\r\nbutton.tertiary_gray {\r\n background-color: transparent;\r\n --icon-color: var(--color-icon, #4B5565);\r\n color: var(--color-text, #4B5565);\r\n}\r\n\r\nbutton.tertiary_color {\r\n background-color: transparent;\r\n --icon-color: var(--color-icon-brandRed, #E21B2E);\r\n color: var(--color-text-brandRed, #E21B2E);\r\n}\r\n\r\nbutton.link_gray {\r\n background-color: transparent;\r\n --icon-color: var(--color-icon, #4B5565);\r\n color: var(--color-text, #4B5565);\r\n height: fit-content;\r\n}\r\n\r\nbutton.link_color {\r\n background-color: transparent;\r\n --icon-color: var(--color-link, #075DB2);\r\n color: var(--color-link, #075DB2);\r\n padding: var(--spacing-none);\r\n height: fit-content;\r\n}\r\n\r\n/* Button Destructive Styles */\r\nbutton.primary.destructive{\r\n background-color: var(--color-background-danger, #B51726);\r\n color: var(--color-text-inverse, #FFFFFF);\r\n --icon-color: var(--color-icon-danger-inverse, #FFFFFF);\r\n}\r\n\r\nbutton.secondary_gray.destructive, button.secondary_color.destructive{\r\n border: 1px solid var(--color-border-danger, #B51726);\r\n color: var(--color-text-danger, #B51726);\r\n --icon-color: var(--color-icon-danger, #B51726);\r\n}\r\n\r\nbutton.tertiary_gray.destructive,\r\nbutton.tertiary_color.destructive{\r\n color: var(--color-text-danger, #B51726);\r\n --icon-color: var(--color-icon-danger, #B51726);\r\n}\r\n\r\nbutton.link_gray.destructive, \r\nbutton.link_color.destructive{\r\n color: var(--color-text-danger, #B51726);\r\n --icon-color: var(--color-icon-danger, #B51726);\r\n}\r\n\r\n/* Button States Styles */\r\nbutton.primary:hover{\r\n background-color: var(--color-background-brandRed-hover, #CC1A2A);\r\n}\r\n\r\nbutton.primary:active{\r\n background-color: var(--color-background-brandRed-pressed, #B51726);\r\n}\r\n\r\nbutton.secondary_gray:hover{\r\n background-color: var(--color-background-gray-subtler, #EEF2F6);\r\n}\r\n\r\nbutton.secondary_gray:active{\r\n background-color: var(--color-background-gray-subtle, #E3E8EF);\r\n}\r\n\r\nbutton.secondary_color:hover{\r\n background-color: var(--color-background-danger-subtlest, #FEF1F2);\r\n}\r\n\r\nbutton.secondary_color:active{\r\n background-color: var(--color-background-danger-subtler, #FDE3E5);\r\n}\r\n\r\nbutton.tertiary_gray:hover{\r\n background-color: var(--color-background-gray-subtler, #EEF2F6);\r\n}\r\n\r\nbutton.tertiary_gray:active{\r\n background-color: var(--color-background-gray-subtle, #E3E8EF);\r\n}\r\n\r\nbutton.tertiary_color:hover{\r\n background-color: var(--color-background-danger-subtlest, #FEF1F2);\r\n}\r\n\r\nbutton.tertiary_color:active{\r\n background-color: var(--color-background-danger-subtler, #FDE3E5);\r\n}\r\n\r\nbutton.link_gray:hover,\r\nbutton.link_color:hover{\r\n text-decoration: underline;\r\n}\r\n\r\nbutton.link_gray:active{\r\n text-decoration: none;\r\n color: var(--color-text-bold, #202939);\r\n}\r\n\r\nbutton.link_gray:active{\r\n text-decoration: none;\r\n color: var(--color-link-pressed, #064E94);\r\n}\r\n\r\nbutton.primary.destructive:hover{\r\n background-color: var(--color-background-danger-bold, #8C121D);\r\n}\r\n\r\nbutton.primary.destructive:active{\r\n background-color: var(--color-background-brandRed-hover, #CC1A2A); /* ask Mr Gideon about this */\r\n}\r\n\r\nbutton.secondary_gray.destructive:hover, \r\nbutton.secondary_color.destructive:hover{\r\n background-color: var(--color-background-danger-subtlest, #FEF1F2);\r\n}\r\n\r\nbutton.secondary_gray.destructive:active, \r\nbutton.secondary_color.destructive:active{\r\n background-color: var(--color-background-danger-subtler, #FDE3E5);\r\n}\r\n\r\nbutton.tertiary_gray.destructive:hover, \r\nbutton.tertiary_color.destructive:hover{\r\n background-color: var(--color-background-danger-subtlest, #FEF1F2);\r\n}\r\n\r\nbutton.tertiary_gray.destructive:active, \r\nbutton.tertiary_color.destructive:active{\r\n background-color: var(--color-background-danger-subtler, #FDE3E5);\r\n}\r\n\r\nbutton.link_gray.destructive:active{\r\n color: var(--color-text-danger-bold, #8C121D);\r\n}\r\n\r\nbutton.link_color.destructive:active{\r\n color: var(--color-text-warning-bold, #93370D);\r\n}\r\n\r\n/* Button Disabled Styles */\r\nbutton.disabled{\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n}\r\n\r\nbutton.primary.disabled {\r\n background-color: var(--color-background-disabled, #F6F8FA);\r\n --icon-color: var(--color-icon-disabled, #CDD5DF);\r\n color: var(--color-text-disabled, #CDD5DF);\r\n}\r\n\r\nbutton.secondary_gray.disabled,\r\nbutton.secondary_color.disabled{\r\n --icon-color: var(--color-icon-disabled, #CDD5DF);\r\n color: var(--color-text-disabled, #CDD5DF);\r\n border-color: var(--color-border-disabled, #E3E8EF);\r\n}\r\n\r\nbutton.tertiary_gray.disabled,\r\nbutton.tertiary_color.disabled,\r\nbutton.link_gray.disabled,\r\nbutton.link_color.disabled{\r\n --icon-color: var(--color-icon-disabled, #CDD5DF);\r\n color: var(--color-text-disabled, #CDD5DF);\r\n}\r\n","import { Component, Element, getAssetPath, h, Prop, State } from \"@stencil/core\";\r\nimport { GeneralHierarchies, GeneralSizes } from \"../../models/reusableModels\";\r\n\r\n@Component({\r\n tag: 'gb-btn',\r\n styleUrl: 'gb-btn.css',\r\n})\r\nexport class GbButton {\r\n @Prop() size: GeneralSizes;\r\n @Prop() hierarchy: GeneralHierarchies;\r\n @Prop() icon: 'default' | 'only';\r\n @Prop() destructive: boolean = false;\r\n @Prop() state: 'default' | 'hover' | 'disabled' | 'pressed';\r\n @Prop() iconLeading: boolean = false;\r\n @Prop() iconLeadingSwap: string;\r\n @Prop() iconTrailing: boolean = false;\r\n @Prop() iconTrailingSwap: string;\r\n @Element() el: HTMLElement;\r\n @State() leadingIconSvg: string = '';\r\n @State() trailingIconSvg: string = '';\r\n\r\n componentWillLoad() {\r\n if (this.iconLeading && this.iconLeadingSwap) {\r\n this.loadIcon(this.iconLeadingSwap, 'leading');\r\n }\r\n if (this.iconTrailing && this.iconTrailingSwap) {\r\n this.loadIcon(this.iconTrailingSwap, 'trailing');\r\n }\r\n\r\n const buttonSlot = this.el.querySelector('p');\r\n\r\n if (buttonSlot) {\r\n buttonSlot.classList.add(this.getButtonTextClasses());\r\n }\r\n }\r\n\r\n async loadIcon(iconName: string, type: 'leading' | 'trailing') {\r\n const iconPath = getAssetPath(`${iconName}`);\r\n const response = await fetch(iconPath);\r\n const svg = await response.text();\r\n if (type === 'leading') {\r\n this.leadingIconSvg = svg;\r\n } else {\r\n this.trailingIconSvg = svg;\r\n }\r\n }\r\n\r\n // Helper to apply color styles based on the button state\r\n getButtonClasses() {\r\n return {\r\n button: true,\r\n [this.size]: true,\r\n [this.hierarchy]: true,\r\n destructive: this.destructive,\r\n disabled: this.state === 'disabled',\r\n default: this.icon === 'default',\r\n only: this.icon === 'only',\r\n };\r\n }\r\n\r\n getButtonTextClasses() {\r\n switch (this.size) {\r\n case 'xl2':\r\n return 'text-lg-semi-bold';\r\n case 'xl':\r\n return 'text-md-semi-bold';\r\n case 'lg':\r\n return 'text-md-semi-bold';\r\n case 'md':\r\n return 'text-sm-semi-bold';\r\n case 'sm':\r\n return 'text-sm-semi-bold';\r\n }\r\n }\r\n\r\n renderLeadingIcon() {\r\n return <div class={`icon left-icon ${this.size}`} innerHTML={this.leadingIconSvg}></div>;\r\n }\r\n\r\n renderTrailingIcon() {\r\n return <div class=\"icon right-icon\" innerHTML={this.trailingIconSvg}></div>;\r\n }\r\n\r\n render() {\r\n return (\r\n <button class={this.getButtonClasses()}>\r\n {this.iconLeading && this.icon === 'default' && this.renderLeadingIcon()}\r\n {this.icon === 'default' && <slot></slot>}\r\n {this.iconTrailing && this.renderTrailingIcon()}\r\n {this.icon === 'only' && this.renderLeadingIcon()}\r\n </button>\r\n );\r\n }\r\n}","@import './../../global/global.css';\r\n@import './../../global/spacing.css';\r\n@import './../../global/typography.css';\r\n\r\n:host {\r\n --button-color: var(--primary-color);\r\n --icon-color: var(--primary-color);\r\n}\r\n\r\nbutton {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n border: none;\r\n cursor: pointer;\r\n border-radius: var(--rounded-sm);\r\n width: 100%;\r\n}\r\n\r\nbutton.only{\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\nbutton .icon {\r\n display: inline-flex;\r\n width: auto;\r\n height: auto;\r\n}\r\n\r\nbutton .icon svg path[fill] {\r\n fill: var(--icon-color);\r\n}\r\n\r\nbutton .icon svg path[stroke] {\r\n stroke: var(--icon-color);\r\n}\r\n\r\nbutton .icon svg circle {\r\n stroke: var(--icon-color);\r\n}\r\n\r\n/* Button Sizes Styles */\r\nbutton.xl2{\r\n padding: var(--spacing-none) var(--spacing-6);\r\n height: 3.5rem;\r\n gap: var(--spacing-3);\r\n}\r\n\r\nbutton.xl{\r\n padding: var(--spacing-none) var(--spacing-5);\r\n height: 3rem;\r\n gap: var(--spacing-2);\r\n}\r\n\r\nbutton.lg{\r\n padding: 0.625rem 1.125rem;\r\n height: 2.75rem;\r\n gap: var(--spacing-2);\r\n}\r\n\r\nbutton.md{\r\n padding: var(--spacing-none) var(--spacing-4);\r\n height: 2.5rem;\r\n gap: var(--spacing-2);\r\n}\r\n\r\nbutton.sm{\r\n padding: var(--spacing-none) var(--spacing-3);\r\n height: 2.25rem;\r\n gap: var(--spacing-2);\r\n}\r\n\r\nbutton.only.xl2{\r\n width: 3.5rem;\r\n height: 3.5rem;\r\n}\r\n\r\nbutton.only.xl{\r\n width: 3rem;\r\n height: 3rem;\r\n}\r\n\r\nbutton.only.lg{\r\n width: 2.75rem;\r\n height: 2.75rem;\r\n}\r\n\r\nbutton.only.md{\r\n width: 2.5rem;\r\n height: 2.5rem;\r\n}\r\n\r\nbutton.only.sm{\r\n width: 2.25rem;\r\n height: 2.25rem;\r\n}\r\n\r\nbutton.xl2 .icon svg{\r\n width: var(--spacing-6);\r\n height: var(--spacing-6);\r\n}\r\n\r\nbutton.xl .icon svg,\r\nbutton.lg .icon svg,\r\nbutton.md .icon svg,\r\nbutton.sm .icon svg{\r\n width: var(--spacing-5);\r\n height: var(--spacing-5);\r\n}\r\n\r\n/* Hierarchy Styles */\r\nbutton.primary {\r\n background-color: var(--color-background-brandRed, #E21B2E);\r\n --icon-color: var(--color-icon-inverse, #FFFFFF);\r\n color: var(--color-text-inverse, #FFFFFF);\r\n}\r\n\r\nbutton.secondary_gray {\r\n background-color: transparent;\r\n border: 1px solid var(--color-border, #9AA4B2);\r\n --icon-color: var(--color-icon, #4B5565);\r\n color: var(--color-text, #4B5565);\r\n}\r\n\r\nbutton.secondary_color {\r\n background-color: transparent;\r\n border: 1px solid var(--color-border-brandRed, #E21B2E);\r\n --icon-color: var(--color-icon-brandRed, #E21B2E);\r\n color: var(--color-text-brandRed, #E21B2E);\r\n}\r\n\r\nbutton.tertiary_gray {\r\n background-color: transparent;\r\n --icon-color: var(--color-icon, #4B5565);\r\n color: var(--color-text, #4B5565);\r\n}\r\n\r\nbutton.tertiary_color {\r\n background-color: transparent;\r\n --icon-color: var(--color-icon-brandRed, #E21B2E);\r\n color: var(--color-text-brandRed, #E21B2E);\r\n}\r\n\r\nbutton.link_gray {\r\n background-color: transparent;\r\n --icon-color: var(--color-icon, #4B5565);\r\n color: var(--color-text, #4B5565);\r\n height: fit-content;\r\n}\r\n\r\nbutton.link_color {\r\n background-color: transparent;\r\n --icon-color: var(--color-link, #075DB2);\r\n color: var(--color-link, #075DB2);\r\n padding: var(--spacing-none);\r\n height: fit-content;\r\n}\r\n\r\n/* Button Destructive Styles */\r\nbutton.primary.destructive{\r\n background-color: var(--color-background-danger, #B51726);\r\n color: var(--color-text-inverse, #FFFFFF);\r\n --icon-color: var(--color-icon-danger-inverse, #FFFFFF);\r\n}\r\n\r\nbutton.secondary_gray.destructive, button.secondary_color.destructive{\r\n border: 1px solid var(--color-border-danger, #B51726);\r\n color: var(--color-text-danger, #B51726);\r\n --icon-color: var(--color-icon-danger, #B51726);\r\n}\r\n\r\nbutton.tertiary_gray.destructive,\r\nbutton.tertiary_color.destructive{\r\n color: var(--color-text-danger, #B51726);\r\n --icon-color: var(--color-icon-danger, #B51726);\r\n}\r\n\r\nbutton.link_gray.destructive, \r\nbutton.link_color.destructive{\r\n color: var(--color-text-danger, #B51726);\r\n --icon-color: var(--color-icon-danger, #B51726);\r\n}\r\n\r\n/* Button States Styles */\r\nbutton.primary:hover{\r\n background-color: var(--color-background-brandRed-hover, #CC1A2A);\r\n}\r\n\r\nbutton.primary:active{\r\n background-color: var(--color-background-brandRed-pressed, #B51726);\r\n}\r\n\r\nbutton.secondary_gray:hover{\r\n background-color: var(--color-background-gray-subtler, #EEF2F6);\r\n}\r\n\r\nbutton.secondary_gray:active{\r\n background-color: var(--color-background-gray-subtle, #E3E8EF);\r\n}\r\n\r\nbutton.secondary_color:hover{\r\n background-color: var(--color-background-danger-subtlest, #FEF1F2);\r\n}\r\n\r\nbutton.secondary_color:active{\r\n background-color: var(--color-background-danger-subtler, #FDE3E5);\r\n}\r\n\r\nbutton.tertiary_gray:hover{\r\n background-color: var(--color-background-gray-subtler, #EEF2F6);\r\n}\r\n\r\nbutton.tertiary_gray:active{\r\n background-color: var(--color-background-gray-subtle, #E3E8EF);\r\n}\r\n\r\nbutton.tertiary_color:hover{\r\n background-color: var(--color-background-danger-subtlest, #FEF1F2);\r\n}\r\n\r\nbutton.tertiary_color:active{\r\n background-color: var(--color-background-danger-subtler, #FDE3E5);\r\n}\r\n\r\nbutton.link_gray:hover,\r\nbutton.link_color:hover{\r\n text-decoration: underline;\r\n}\r\n\r\nbutton.link_gray:active{\r\n text-decoration: none;\r\n color: var(--color-text-bold, #202939);\r\n}\r\n\r\nbutton.link_gray:active{\r\n text-decoration: none;\r\n color: var(--color-link-pressed, #064E94);\r\n}\r\n\r\nbutton.primary.destructive:hover{\r\n background-color: var(--color-background-danger-bold, #8C121D);\r\n}\r\n\r\nbutton.primary.destructive:active{\r\n background-color: var(--color-background-brandRed-hover, #CC1A2A); /* ask Mr Gideon about this */\r\n}\r\n\r\nbutton.secondary_gray.destructive:hover, \r\nbutton.secondary_color.destructive:hover{\r\n background-color: var(--color-background-danger-subtlest, #FEF1F2);\r\n}\r\n\r\nbutton.secondary_gray.destructive:active, \r\nbutton.secondary_color.destructive:active{\r\n background-color: var(--color-background-danger-subtler, #FDE3E5);\r\n}\r\n\r\nbutton.tertiary_gray.destructive:hover, \r\nbutton.tertiary_color.destructive:hover{\r\n background-color: var(--color-background-danger-subtlest, #FEF1F2);\r\n}\r\n\r\nbutton.tertiary_gray.destructive:active, \r\nbutton.tertiary_color.destructive:active{\r\n background-color: var(--color-background-danger-subtler, #FDE3E5);\r\n}\r\n\r\nbutton.link_gray.destructive:active{\r\n color: var(--color-text-danger-bold, #8C121D);\r\n}\r\n\r\nbutton.link_color.destructive:active{\r\n color: var(--color-text-warning-bold, #93370D);\r\n}\r\n\r\n/* Button Disabled Styles */\r\nbutton.disabled{\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n}\r\n\r\nbutton.primary.disabled {\r\n background-color: var(--color-background-disabled, #F6F8FA);\r\n --icon-color: var(--color-icon-disabled, #CDD5DF);\r\n color: var(--color-text-disabled, #CDD5DF);\r\n}\r\n\r\nbutton.secondary_gray.disabled,\r\nbutton.secondary_color.disabled{\r\n --icon-color: var(--color-icon-disabled, #CDD5DF);\r\n color: var(--color-text-disabled, #CDD5DF);\r\n border-color: var(--color-border-disabled, #E3E8EF);\r\n}\r\n\r\nbutton.tertiary_gray.disabled,\r\nbutton.tertiary_color.disabled,\r\nbutton.link_gray.disabled,\r\nbutton.link_color.disabled{\r\n --icon-color: var(--color-icon-disabled, #CDD5DF);\r\n color: var(--color-text-disabled, #CDD5DF);\r\n}\r\n","import { Component, Element, getAssetPath, h, Prop, State } from '@stencil/core';\r\nimport { GeneralHierarchies, GeneralSizes } from '../../models/reusableModels';\r\n\r\n@Component({\r\n tag: 'gb-button',\r\n styleUrl: 'gb-button.css',\r\n shadow: true,\r\n assetsDirs: [''],\r\n})\r\nexport class MyButton {\r\n @Prop() size: GeneralSizes;\r\n @Prop() hierarchy: GeneralHierarchies;\r\n @Prop() icon: 'default' | 'only';\r\n @Prop() destructive: boolean = false;\r\n @Prop() state: 'default' | 'hover' | 'disabled' | 'pressed';\r\n @Prop() iconLeading: boolean = false;\r\n @Prop() iconLeadingSwap: string;\r\n @Prop() iconTrailing: boolean = false;\r\n @Prop() iconTrailingSwap: string;\r\n @Element() el: HTMLElement;\r\n @State() leadingIconSvg: string = '';\r\n @State() trailingIconSvg: string = '';\r\n\r\n componentWillLoad() {\r\n if (this.iconLeading && this.iconLeadingSwap) {\r\n this.loadIcon(this.iconLeadingSwap, 'leading');\r\n }\r\n if (this.iconTrailing && this.iconTrailingSwap) {\r\n this.loadIcon(this.iconTrailingSwap, 'trailing');\r\n }\r\n\r\n const buttonSlot = this.el.querySelector('p');\r\n\r\n if (buttonSlot) {\r\n buttonSlot.classList.add(this.getButtonTextClasses());\r\n }\r\n }\r\n\r\n async loadIcon(iconName: string, type: 'leading' | 'trailing') {\r\n const iconPath = getAssetPath(`${iconName}`);\r\n const response = await fetch(iconPath);\r\n const svg = await response.text();\r\n if (type === 'leading') {\r\n this.leadingIconSvg = svg;\r\n } else {\r\n this.trailingIconSvg = svg;\r\n }\r\n }\r\n\r\n // Helper to apply color styles based on the button state\r\n getButtonClasses() {\r\n return {\r\n button: true,\r\n [this.size]: true,\r\n [this.hierarchy]: true,\r\n destructive: this.destructive,\r\n disabled: this.state === 'disabled',\r\n default: this.icon === 'default',\r\n only: this.icon === 'only'\r\n };\r\n }\r\n\r\n getButtonTextClasses() {\r\n switch (this.size) {\r\n case 'xl2' : return 'text-lg-semi-bold';\r\n case 'xl' : return 'text-md-semi-bold';\r\n case 'lg' : return 'text-md-semi-bold';\r\n case 'md' : return 'text-sm-semi-bold';\r\n case 'sm' : return 'text-sm-semi-bold';\r\n }\r\n }\r\n\r\n renderLeadingIcon() {\r\n return <div class={`icon left-icon ${this.size}`} innerHTML={this.leadingIconSvg}></div>;\r\n }\r\n\r\n renderTrailingIcon() {\r\n return <div class=\"icon right-icon\" innerHTML={this.trailingIconSvg}></div>;\r\n }\r\n\r\n render() {\r\n return (\r\n <button class={this.getButtonClasses()}>\r\n {this.iconLeading && this.icon === 'default' && this.renderLeadingIcon()}\r\n {this.icon === 'default' && <slot></slot>}\r\n {this.iconTrailing && this.renderTrailingIcon()}\r\n {this.icon === 'only' && this.renderLeadingIcon()}\r\n </button>\r\n );\r\n }\r\n}\r\n","@import './../../global/global.css';\r\n@import './../../global/spacing.css';\r\n@import './../../global/typography.css';\r\n\r\n.tooltip-container {\r\n position: relative;\r\n display: inline-block;\r\n}\r\n \r\n.tooltip {\r\n position: absolute;\r\n background-color: var(--color-surface-bold, #FCFCFC);\r\n border: 0.5px solid var(--color-border-subtler, #E3E8EF);\r\n border-radius: var(--rounded-sm);\r\n box-shadow: var(--shadow-sm);\r\n color: #333;\r\n padding: 8px;\r\n white-space: nowrap;\r\n z-index: 10;\r\n}\r\n \r\n.tooltip-content {\r\n font-size: 14px;\r\n color: #333;\r\n}\r\n \r\n.arrow {\r\n width: 0;\r\n height: 0;\r\n border-style: solid;\r\n position: absolute;\r\n}\r\n\r\n.arrow::before {\r\n content: '';\r\n position: absolute;\r\n width: 0;\r\n height: 0;\r\n border-style: solid;\r\n}\r\n \r\n.arrow.bottom-center {\r\n top: 100%;\r\n left: 50%;\r\n border-width: 8px 8px 0 8px;\r\n border-color: #fff transparent transparent transparent;\r\n transform: translateX(-50%);\r\n}\r\n \r\n.arrow.left {\r\n top: 50%;\r\n right: 100%;\r\n border-width: 6px 0 6px 6px;\r\n border-color: transparent transparent transparent #E3E8EF;\r\n transform: translateY(-50%) rotate(180deg);\r\n}\r\n\r\n.arrow.left::before {\r\n left: -8px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n border-width: 7.5px 0 7.5px 7.5px;\r\n border-color: transparent transparent transparent #fff;\r\n}\r\n \r\n.arrow.right {\r\n top: 50%;\r\n left: 100%;\r\n border-width: 8px 8px 8px 0;\r\n border-color: transparent #fff transparent transparent;\r\n transform: translateY(-50%);\r\n}\r\n \r\n.arrow-right::before {\r\n right: -8px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n border-width: 8px 8px 8px 0;\r\n border-color: transparent #d3d3d3 transparent transparent;\r\n}\r\n\r\n.arrow.top-left {\r\n bottom: 100%;\r\n left: 0;\r\n border-width: 0 8px 8px 8px;\r\n border-color: transparent transparent #fff transparent;\r\n}\r\n \r\n.arrow.top-right {\r\n bottom: 100%;\r\n right: 0;\r\n border-width: 0 8px 8px 8px;\r\n border-color: transparent transparent #fff transparent;\r\n}","import { Component, Element, Prop, State, h } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: 'test-tooltip',\r\n styleUrl: 'test-tooltip.css',\r\n shadow: true,\r\n})\r\nexport class TestTooltip {\r\n @Prop() showArrow: boolean = true;\r\n @Prop() arrowPosition: 'bottom-center' | 'left' | 'right' | 'top-left' | 'top-right' = 'bottom-center';\r\n\r\n @State() visible: boolean = true;\r\n @Element() el: HTMLElement;\r\n\r\n componentDidLoad() {\r\n const mainTextSlot = this.el.querySelector('[slot=\"main_text\"]');\r\n const supportingTextSlot = this.el.querySelector('[slot=\"supporting_text\"]');\r\n\r\n if (mainTextSlot) {\r\n mainTextSlot.classList.add('text-xs-semi-bold');\r\n }\r\n\r\n if (supportingTextSlot) {\r\n supportingTextSlot.classList.add('text-xs-regular');\r\n }\r\n }\r\n\r\n toggleTooltip() {\r\n this.visible = !this.visible;\r\n }\r\n\r\n getArrowClass() {\r\n return this.showArrow ? `arrow ${this.arrowPosition}` : '';\r\n }\r\n\r\n render() {\r\n return (\r\n <div class=\"tooltip_container\">\r\n <slot />\r\n {this.visible && (\r\n <div class=\"tooltip\">\r\n <div class={this.getArrowClass()}></div>\r\n <div class=\"tooltip_content\">\r\n <slot name=\"main_text\" />\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }\r\n}"],"version":3}
|
|
@@ -19,7 +19,7 @@ var patchBrowser = () => {
|
|
|
19
19
|
|
|
20
20
|
patchBrowser().then(async (options) => {
|
|
21
21
|
await appGlobals.globalScripts();
|
|
22
|
-
return index.bootstrapLazy([["gb-avatar-dropdown.cjs",[[1,"gb-avatar-dropdown",{"type":[1],"text":[4],"showProfile":[4,"show-profile"],"showDarkTheme":[4,"show-dark-theme"],"showLogOut":[4,"show-log-out"],"listGroup1":[4,"list-group-1"],"listGroup2":[4,"list-group-2"],"listGroup3":[4,"list-group-3"]}]]],["gb-tag.cjs",[[1,"gb-tag",{"size":[1],"icon":[1],"checkbox":[4],"closeButton":[4,"close-button"],"count":[4]}]]],["gb-avatar-group.cjs",[[1,"gb-avatar-group",{"size":[1],"moreUsers":[4,"more-users"],"addMoreButton":[4,"add-more-button"],"text":[4],"state":[1]}]]],["gb-file-upload.cjs",[[1,"gb-file-upload",{"icon":[1],"type":[1],"heightSize":[1,"height-size"],"state":[1],"destructive":[4],"showLabel":[4,"show-label"],"buttonState":[1,"button-state"]}]]],["gb-input-dropdown-menu-item.cjs",[[1,"gb-input-dropdown-menu-item",{"type":[1],"supportingText":[4,"supporting-text"],"selected":[4],"state":[1],"checkboxStates":[1,"checkbox-states"]}]]],["gb-badge.cjs",[[1,"gb-badge",{"size":[1],"icon":[1],"iconLeadingSrc":[1,"icon-leading-src"],"iconTrailingSrc":[1,"icon-trailing-src"],"color":[1],"type":[1],"closeButton":[4,"close-button"]}]]],["gb-avatar-profile-photo.cjs",[[1,"gb-avatar-profile-photo",{"placeholder":[4],"text":[4],"size":[1],"verified":[4],"icon":[1]}]]],["gb-help-dropdown.cjs",[[1,"gb-help-dropdown",{"showLogError":[4,"show-log-error"]}]]],["gb-input-dropdown.cjs",[[1,"gb-input-dropdown",{"type":[1],"state":[1],"size":[1],"showLabel":[4,"show-label"],"label":[1],"showPlaceholder":[4,"show-placeholder"],"placeholderText":[1,"placeholder-text"],"showHintText":[4,"show-hint-text"],"hintText":[1,"hint-text"],"showHelpIcon":[4,"show-help-icon"],"iconSwap":[1,"icon-swap"]}]]],["gb-slider.cjs",[[1,"gb-slider",{"min":[2],"max":[2],"thumbType":[1,"thumb-type"],"leftValue":[32],"rightValue":[32]}]]],["gb-collapse-button.cjs",[[1,"gb-collapse-button",{"color":[1],"currentIconDirection":[1025,"current-icon-direction"],"isHovered":[1028,"is-hovered"]}]]],["gb-notification-panel.cjs",[[1,"gb-notification-panel",{"state":[1],"notifications":[32]},[[0,"slotchange","handleSlotChange"]]]]],["gb-toggle.cjs",[[1,"gb-toggle",{"size":[1],"state":[1],"supportingText":[4,"supporting-text"]}]]],["gb-checkbox-group.cjs",[[1,"gb-checkbox-group",{"size":[1],"breakpoint":[1],"icon":[1],"selected":[4],"type":[1]}]]],["gb-file-type-icon.cjs",[[1,"gb-file-type-icon"]]],["gb-header-icon.cjs",[[1,"gb-header-icon",{"state":[1],"showIndicator":[4,"show-indicator"]}]]],["gb-input-field.cjs",[[1,"gb-input-field",{"size":[1],"inputType":[1,"input-type"],"destructive":[4],"helpIcon":[4,"help-icon"],"icon":[1],"placeholder":[1],"label":[1]}]]],["gb-megainput-field.cjs",[[1,"gb-megainput-field",{"size":[1]}]]],["gb-notification-content.cjs",[[1,"gb-notification-content",{"icon":[1],"label":[1],"time":[1],"supportingText":[1,"supporting-text"]}]]],["gb-progress-circle.cjs",[[1,"gb-progress-circle",{"size":[1],"shape":[1],"label":[4],"progress":[2]}]]],["gb-scrollbar.cjs",[[1,"gb-scrollbar",{"length":[1]}]]],["gb-textarea-input-field.cjs",[[1,"gb-textarea-input-field",{"type":[1],"destructive":[4],"placeholder":[1],"label":[1]}]]],["gb-wysiwyg-editor-icon.cjs",[[1,"gb-wysiwyg-editor-icon"]]],["gb-tooltip.cjs",[[1,"gb-tooltip",{"arrow":[1],"supportingText":[4,"supporting-text"]}]]],["gb-button-close_2.cjs",[[1,"gb-progress-bar",{"progress":[2],"showLabel":[4,"show-label"],"labelPosition":[1,"label-position"],"el":[16]}],[1,"gb-button-close",{"size":[1],"color":[1]}]]],["gb-file-upload-item-base.cjs",[[1,"gb-file-upload-item-base",{"icon":[1],"state":[1],"heightSize":[1,"height-size"],"fileType":[1,"file-type"],"buttonState":[1,"button-state"]}]]],["gb-avatar-label-group.cjs",[[1,"gb-avatar-label-group",{"size":[1],"statusIcon":[1,"status-icon"],"state":[1],"placeholder":[4],"text":[4]}]]],["gb-avatar-add-button.cjs",[[1,"gb-avatar-add-button",{"size":[1],"showToolTip":[1028,"show-tool-tip"],"state":[1],"el":[16]}]]],["gb-slider-control-handle.cjs",[[1,"gb-slider-control-handle",{"value":[2],"type":[1],"isHovered":[32],"isFocused":[32]}]]],["gb-badge-close.cjs",[[1,"gb-badge-close",{"color":[1],"type":[1]}]]],["gb-toggle-base.cjs",[[1,"gb-toggle-base",{"size":[1],"state":[1]}]]],["gb-dropdown-items-with-shortcut.cjs",[[1,"gb-dropdown-items-with-shortcut",{"icon":[4],"iconSrc":[1,"icon-src"],"checkbox":[4],"shortcut":[4],"shortcutIcon":[1,"shortcut-icon"],"label":[1],"checkboxStates":[1,"checkbox-states"],"state":[1]}]]],["gb-btn_3.cjs",[[4,"gb-btn",{"size":[1],"hierarchy":[1],"icon":[1],"destructive":[4],"state":[1],"iconLeading":[4,"icon-leading"],"iconLeadingSwap":[1,"icon-leading-swap"],"iconTrailing":[4,"icon-trailing"],"iconTrailingSwap":[1,"icon-trailing-swap"]}],[1,"test-tooltip",{"showArrow":[4,"show-arrow"],"arrowPosition":[1,"arrow-position"],"visible":[32]}],[1,"gb-button",{"size":[1],"hierarchy":[1],"icon":[1],"destructive":[4],"state":[1],"iconLeading":[4,"icon-leading"],"iconLeadingSwap":[1,"icon-leading-swap"],"iconTrailing":[4,"icon-trailing"],"iconTrailingSwap":[1,"icon-trailing-swap"]}]]],["gb-tag-checkbox_3.cjs",[[1,"gb-tag-checkbox",{"checked":[4],"size":[1],"disabled":[4]}],[1,"gb-tag-close",{"size":[1]}],[1,"gb-tag-count",{"size":[1]}]]],["gb-checkbox_2.cjs",[[1,"gb-checkbox",{"checked":[4],"indeterminate":[4],"size":[1],"type":[1],"state":[1],"supportingText":[4,"supporting-text"]}],[1,"gb-checkbox-base",{"state":[1025],"size":[1],"type":[1],"checked":[1028],"indeterminate":[1028]}]]],["gb-avatar_3.cjs",[[1,"gb-avatar",{"size":[1],"placeholder":[4],"text":[4],"statusIcon":[1,"status-icon"],"state":[1],"icon":[1],"weight":[1]}],[1,"gb-avatar-contrast-inner-border",{"weight":[1],"size":[1]}],[1,"gb-status-indicator",{"statusIcon":[1,"status-icon"],"size":[1],"state":[1],"indicatorStateClass":[1,"indicator-state-class"]}]]]], options);
|
|
22
|
+
return index.bootstrapLazy([["gb-avatar-dropdown.cjs",[[1,"gb-avatar-dropdown",{"type":[1],"text":[4],"showProfile":[4,"show-profile"],"showDarkTheme":[4,"show-dark-theme"],"showLogOut":[4,"show-log-out"],"listGroup1":[4,"list-group-1"],"listGroup2":[4,"list-group-2"],"listGroup3":[4,"list-group-3"]}]]],["gb-tag.cjs",[[1,"gb-tag",{"size":[1],"icon":[1],"checkbox":[4],"closeButton":[4,"close-button"],"count":[4]}]]],["gb-avatar-group.cjs",[[1,"gb-avatar-group",{"size":[1],"moreUsers":[4,"more-users"],"addMoreButton":[4,"add-more-button"],"text":[4],"state":[1]}]]],["gb-file-upload.cjs",[[1,"gb-file-upload",{"icon":[1],"type":[1],"heightSize":[1,"height-size"],"state":[1],"destructive":[4],"showLabel":[4,"show-label"],"buttonState":[1,"button-state"]}]]],["gb-input-dropdown-menu-item.cjs",[[1,"gb-input-dropdown-menu-item",{"type":[1],"supportingText":[4,"supporting-text"],"selected":[4],"state":[1],"checkboxStates":[1,"checkbox-states"]}]]],["gb-badge.cjs",[[1,"gb-badge",{"size":[1],"icon":[1],"iconLeadingSrc":[1,"icon-leading-src"],"iconTrailingSrc":[1,"icon-trailing-src"],"color":[1],"type":[1],"closeButton":[4,"close-button"]}]]],["gb-avatar-profile-photo.cjs",[[1,"gb-avatar-profile-photo",{"placeholder":[4],"text":[4],"size":[1],"verified":[4],"icon":[1]}]]],["gb-help-dropdown.cjs",[[1,"gb-help-dropdown",{"showLogError":[4,"show-log-error"]}]]],["gb-input-dropdown.cjs",[[1,"gb-input-dropdown",{"type":[1],"state":[1],"size":[1],"showLabel":[4,"show-label"],"label":[1],"showPlaceholder":[4,"show-placeholder"],"placeholderText":[1,"placeholder-text"],"showHintText":[4,"show-hint-text"],"hintText":[1,"hint-text"],"showHelpIcon":[4,"show-help-icon"],"iconSwap":[1,"icon-swap"]}]]],["gb-slider.cjs",[[1,"gb-slider",{"min":[2],"max":[2],"thumbType":[1,"thumb-type"],"leftValue":[32],"rightValue":[32]}]]],["gb-collapse-button.cjs",[[1,"gb-collapse-button",{"color":[1],"currentIconDirection":[1025,"current-icon-direction"],"isHovered":[1028,"is-hovered"]}]]],["gb-notification-panel.cjs",[[1,"gb-notification-panel",{"state":[1],"notifications":[32]},[[0,"slotchange","handleSlotChange"]]]]],["gb-toggle.cjs",[[1,"gb-toggle",{"size":[1],"state":[1],"supportingText":[4,"supporting-text"]}]]],["gb-checkbox-group.cjs",[[1,"gb-checkbox-group",{"size":[1],"breakpoint":[1],"icon":[1],"selected":[4],"type":[1]}]]],["gb-file-type-icon.cjs",[[1,"gb-file-type-icon"]]],["gb-header-icon.cjs",[[1,"gb-header-icon",{"state":[1],"showIndicator":[4,"show-indicator"]}]]],["gb-input-field.cjs",[[1,"gb-input-field",{"size":[1],"inputType":[1,"input-type"],"destructive":[4],"helpIcon":[4,"help-icon"],"icon":[1],"placeholder":[1],"label":[1]}]]],["gb-megainput-field.cjs",[[1,"gb-megainput-field",{"size":[1]}]]],["gb-notification-content.cjs",[[1,"gb-notification-content",{"icon":[1],"label":[1],"time":[1],"supportingText":[1,"supporting-text"]}]]],["gb-progress-circle.cjs",[[1,"gb-progress-circle",{"size":[1],"shape":[1],"label":[4],"progress":[2]}]]],["gb-scrollbar.cjs",[[1,"gb-scrollbar",{"length":[1]}]]],["gb-textarea-input-field.cjs",[[1,"gb-textarea-input-field",{"type":[1],"destructive":[4],"placeholder":[1],"label":[1]}]]],["gb-wysiwyg-editor-icon.cjs",[[1,"gb-wysiwyg-editor-icon"]]],["gb-tooltip.cjs",[[1,"gb-tooltip",{"arrow":[1],"supportingText":[4,"supporting-text"]}]]],["gb-button-close_2.cjs",[[1,"gb-progress-bar",{"progress":[2],"showLabel":[4,"show-label"],"labelPosition":[1,"label-position"],"el":[16]}],[1,"gb-button-close",{"size":[1],"color":[1]}]]],["gb-file-upload-item-base.cjs",[[1,"gb-file-upload-item-base",{"icon":[1],"state":[1],"heightSize":[1,"height-size"],"fileType":[1,"file-type"],"buttonState":[1,"button-state"]}]]],["gb-avatar-label-group.cjs",[[1,"gb-avatar-label-group",{"size":[1],"statusIcon":[1,"status-icon"],"state":[1],"placeholder":[4],"text":[4]}]]],["gb-avatar-add-button.cjs",[[1,"gb-avatar-add-button",{"size":[1],"showToolTip":[1028,"show-tool-tip"],"state":[1],"el":[16]}]]],["gb-slider-control-handle.cjs",[[1,"gb-slider-control-handle",{"value":[2],"type":[1],"isHovered":[32],"isFocused":[32]}]]],["gb-badge-close.cjs",[[1,"gb-badge-close",{"color":[1],"type":[1]}]]],["gb-toggle-base.cjs",[[1,"gb-toggle-base",{"size":[1],"state":[1]}]]],["gb-dropdown-items-with-shortcut.cjs",[[1,"gb-dropdown-items-with-shortcut",{"icon":[4],"iconSrc":[1,"icon-src"],"checkbox":[4],"shortcut":[4],"shortcutIcon":[1,"shortcut-icon"],"label":[1],"checkboxStates":[1,"checkbox-states"],"state":[1]}]]],["gb-btn_3.cjs",[[4,"gb-btn",{"size":[1],"hierarchy":[1],"icon":[1],"destructive":[4],"state":[1],"iconLeading":[4,"icon-leading"],"iconLeadingSwap":[1,"icon-leading-swap"],"iconTrailing":[4,"icon-trailing"],"iconTrailingSwap":[1,"icon-trailing-swap"],"leadingIconSvg":[32],"trailingIconSvg":[32]}],[1,"test-tooltip",{"showArrow":[4,"show-arrow"],"arrowPosition":[1,"arrow-position"],"visible":[32]}],[1,"gb-button",{"size":[1],"hierarchy":[1],"icon":[1],"destructive":[4],"state":[1],"iconLeading":[4,"icon-leading"],"iconLeadingSwap":[1,"icon-leading-swap"],"iconTrailing":[4,"icon-trailing"],"iconTrailingSwap":[1,"icon-trailing-swap"],"leadingIconSvg":[32],"trailingIconSvg":[32]}]]],["gb-tag-checkbox_3.cjs",[[1,"gb-tag-checkbox",{"checked":[4],"size":[1],"disabled":[4]}],[1,"gb-tag-close",{"size":[1]}],[1,"gb-tag-count",{"size":[1]}]]],["gb-checkbox_2.cjs",[[1,"gb-checkbox",{"checked":[4],"indeterminate":[4],"size":[1],"type":[1],"state":[1],"supportingText":[4,"supporting-text"]}],[1,"gb-checkbox-base",{"state":[1025],"size":[1],"type":[1],"checked":[1028],"indeterminate":[1028]}]]],["gb-avatar_3.cjs",[[1,"gb-avatar",{"size":[1],"placeholder":[4],"text":[4],"statusIcon":[1,"status-icon"],"state":[1],"icon":[1],"weight":[1]}],[1,"gb-avatar-contrast-inner-border",{"weight":[1],"size":[1]}],[1,"gb-status-indicator",{"statusIcon":[1,"status-icon"],"size":[1],"state":[1],"indicatorStateClass":[1,"indicator-state-class"]}]]]], options);
|
|
23
23
|
});
|
|
24
24
|
|
|
25
25
|
exports.setNonce = index.setNonce;
|
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -8,7 +8,7 @@ const appGlobals = require('./app-globals-3a1e7e63.js');
|
|
|
8
8
|
const defineCustomElements = async (win, options) => {
|
|
9
9
|
if (typeof window === 'undefined') return undefined;
|
|
10
10
|
await appGlobals.globalScripts();
|
|
11
|
-
return index.bootstrapLazy([["gb-avatar-dropdown.cjs",[[1,"gb-avatar-dropdown",{"type":[1],"text":[4],"showProfile":[4,"show-profile"],"showDarkTheme":[4,"show-dark-theme"],"showLogOut":[4,"show-log-out"],"listGroup1":[4,"list-group-1"],"listGroup2":[4,"list-group-2"],"listGroup3":[4,"list-group-3"]}]]],["gb-tag.cjs",[[1,"gb-tag",{"size":[1],"icon":[1],"checkbox":[4],"closeButton":[4,"close-button"],"count":[4]}]]],["gb-avatar-group.cjs",[[1,"gb-avatar-group",{"size":[1],"moreUsers":[4,"more-users"],"addMoreButton":[4,"add-more-button"],"text":[4],"state":[1]}]]],["gb-file-upload.cjs",[[1,"gb-file-upload",{"icon":[1],"type":[1],"heightSize":[1,"height-size"],"state":[1],"destructive":[4],"showLabel":[4,"show-label"],"buttonState":[1,"button-state"]}]]],["gb-input-dropdown-menu-item.cjs",[[1,"gb-input-dropdown-menu-item",{"type":[1],"supportingText":[4,"supporting-text"],"selected":[4],"state":[1],"checkboxStates":[1,"checkbox-states"]}]]],["gb-badge.cjs",[[1,"gb-badge",{"size":[1],"icon":[1],"iconLeadingSrc":[1,"icon-leading-src"],"iconTrailingSrc":[1,"icon-trailing-src"],"color":[1],"type":[1],"closeButton":[4,"close-button"]}]]],["gb-avatar-profile-photo.cjs",[[1,"gb-avatar-profile-photo",{"placeholder":[4],"text":[4],"size":[1],"verified":[4],"icon":[1]}]]],["gb-help-dropdown.cjs",[[1,"gb-help-dropdown",{"showLogError":[4,"show-log-error"]}]]],["gb-input-dropdown.cjs",[[1,"gb-input-dropdown",{"type":[1],"state":[1],"size":[1],"showLabel":[4,"show-label"],"label":[1],"showPlaceholder":[4,"show-placeholder"],"placeholderText":[1,"placeholder-text"],"showHintText":[4,"show-hint-text"],"hintText":[1,"hint-text"],"showHelpIcon":[4,"show-help-icon"],"iconSwap":[1,"icon-swap"]}]]],["gb-slider.cjs",[[1,"gb-slider",{"min":[2],"max":[2],"thumbType":[1,"thumb-type"],"leftValue":[32],"rightValue":[32]}]]],["gb-collapse-button.cjs",[[1,"gb-collapse-button",{"color":[1],"currentIconDirection":[1025,"current-icon-direction"],"isHovered":[1028,"is-hovered"]}]]],["gb-notification-panel.cjs",[[1,"gb-notification-panel",{"state":[1],"notifications":[32]},[[0,"slotchange","handleSlotChange"]]]]],["gb-toggle.cjs",[[1,"gb-toggle",{"size":[1],"state":[1],"supportingText":[4,"supporting-text"]}]]],["gb-checkbox-group.cjs",[[1,"gb-checkbox-group",{"size":[1],"breakpoint":[1],"icon":[1],"selected":[4],"type":[1]}]]],["gb-file-type-icon.cjs",[[1,"gb-file-type-icon"]]],["gb-header-icon.cjs",[[1,"gb-header-icon",{"state":[1],"showIndicator":[4,"show-indicator"]}]]],["gb-input-field.cjs",[[1,"gb-input-field",{"size":[1],"inputType":[1,"input-type"],"destructive":[4],"helpIcon":[4,"help-icon"],"icon":[1],"placeholder":[1],"label":[1]}]]],["gb-megainput-field.cjs",[[1,"gb-megainput-field",{"size":[1]}]]],["gb-notification-content.cjs",[[1,"gb-notification-content",{"icon":[1],"label":[1],"time":[1],"supportingText":[1,"supporting-text"]}]]],["gb-progress-circle.cjs",[[1,"gb-progress-circle",{"size":[1],"shape":[1],"label":[4],"progress":[2]}]]],["gb-scrollbar.cjs",[[1,"gb-scrollbar",{"length":[1]}]]],["gb-textarea-input-field.cjs",[[1,"gb-textarea-input-field",{"type":[1],"destructive":[4],"placeholder":[1],"label":[1]}]]],["gb-wysiwyg-editor-icon.cjs",[[1,"gb-wysiwyg-editor-icon"]]],["gb-tooltip.cjs",[[1,"gb-tooltip",{"arrow":[1],"supportingText":[4,"supporting-text"]}]]],["gb-button-close_2.cjs",[[1,"gb-progress-bar",{"progress":[2],"showLabel":[4,"show-label"],"labelPosition":[1,"label-position"],"el":[16]}],[1,"gb-button-close",{"size":[1],"color":[1]}]]],["gb-file-upload-item-base.cjs",[[1,"gb-file-upload-item-base",{"icon":[1],"state":[1],"heightSize":[1,"height-size"],"fileType":[1,"file-type"],"buttonState":[1,"button-state"]}]]],["gb-avatar-label-group.cjs",[[1,"gb-avatar-label-group",{"size":[1],"statusIcon":[1,"status-icon"],"state":[1],"placeholder":[4],"text":[4]}]]],["gb-avatar-add-button.cjs",[[1,"gb-avatar-add-button",{"size":[1],"showToolTip":[1028,"show-tool-tip"],"state":[1],"el":[16]}]]],["gb-slider-control-handle.cjs",[[1,"gb-slider-control-handle",{"value":[2],"type":[1],"isHovered":[32],"isFocused":[32]}]]],["gb-badge-close.cjs",[[1,"gb-badge-close",{"color":[1],"type":[1]}]]],["gb-toggle-base.cjs",[[1,"gb-toggle-base",{"size":[1],"state":[1]}]]],["gb-dropdown-items-with-shortcut.cjs",[[1,"gb-dropdown-items-with-shortcut",{"icon":[4],"iconSrc":[1,"icon-src"],"checkbox":[4],"shortcut":[4],"shortcutIcon":[1,"shortcut-icon"],"label":[1],"checkboxStates":[1,"checkbox-states"],"state":[1]}]]],["gb-btn_3.cjs",[[4,"gb-btn",{"size":[1],"hierarchy":[1],"icon":[1],"destructive":[4],"state":[1],"iconLeading":[4,"icon-leading"],"iconLeadingSwap":[1,"icon-leading-swap"],"iconTrailing":[4,"icon-trailing"],"iconTrailingSwap":[1,"icon-trailing-swap"]}],[1,"test-tooltip",{"showArrow":[4,"show-arrow"],"arrowPosition":[1,"arrow-position"],"visible":[32]}],[1,"gb-button",{"size":[1],"hierarchy":[1],"icon":[1],"destructive":[4],"state":[1],"iconLeading":[4,"icon-leading"],"iconLeadingSwap":[1,"icon-leading-swap"],"iconTrailing":[4,"icon-trailing"],"iconTrailingSwap":[1,"icon-trailing-swap"]}]]],["gb-tag-checkbox_3.cjs",[[1,"gb-tag-checkbox",{"checked":[4],"size":[1],"disabled":[4]}],[1,"gb-tag-close",{"size":[1]}],[1,"gb-tag-count",{"size":[1]}]]],["gb-checkbox_2.cjs",[[1,"gb-checkbox",{"checked":[4],"indeterminate":[4],"size":[1],"type":[1],"state":[1],"supportingText":[4,"supporting-text"]}],[1,"gb-checkbox-base",{"state":[1025],"size":[1],"type":[1],"checked":[1028],"indeterminate":[1028]}]]],["gb-avatar_3.cjs",[[1,"gb-avatar",{"size":[1],"placeholder":[4],"text":[4],"statusIcon":[1,"status-icon"],"state":[1],"icon":[1],"weight":[1]}],[1,"gb-avatar-contrast-inner-border",{"weight":[1],"size":[1]}],[1,"gb-status-indicator",{"statusIcon":[1,"status-icon"],"size":[1],"state":[1],"indicatorStateClass":[1,"indicator-state-class"]}]]]], options);
|
|
11
|
+
return index.bootstrapLazy([["gb-avatar-dropdown.cjs",[[1,"gb-avatar-dropdown",{"type":[1],"text":[4],"showProfile":[4,"show-profile"],"showDarkTheme":[4,"show-dark-theme"],"showLogOut":[4,"show-log-out"],"listGroup1":[4,"list-group-1"],"listGroup2":[4,"list-group-2"],"listGroup3":[4,"list-group-3"]}]]],["gb-tag.cjs",[[1,"gb-tag",{"size":[1],"icon":[1],"checkbox":[4],"closeButton":[4,"close-button"],"count":[4]}]]],["gb-avatar-group.cjs",[[1,"gb-avatar-group",{"size":[1],"moreUsers":[4,"more-users"],"addMoreButton":[4,"add-more-button"],"text":[4],"state":[1]}]]],["gb-file-upload.cjs",[[1,"gb-file-upload",{"icon":[1],"type":[1],"heightSize":[1,"height-size"],"state":[1],"destructive":[4],"showLabel":[4,"show-label"],"buttonState":[1,"button-state"]}]]],["gb-input-dropdown-menu-item.cjs",[[1,"gb-input-dropdown-menu-item",{"type":[1],"supportingText":[4,"supporting-text"],"selected":[4],"state":[1],"checkboxStates":[1,"checkbox-states"]}]]],["gb-badge.cjs",[[1,"gb-badge",{"size":[1],"icon":[1],"iconLeadingSrc":[1,"icon-leading-src"],"iconTrailingSrc":[1,"icon-trailing-src"],"color":[1],"type":[1],"closeButton":[4,"close-button"]}]]],["gb-avatar-profile-photo.cjs",[[1,"gb-avatar-profile-photo",{"placeholder":[4],"text":[4],"size":[1],"verified":[4],"icon":[1]}]]],["gb-help-dropdown.cjs",[[1,"gb-help-dropdown",{"showLogError":[4,"show-log-error"]}]]],["gb-input-dropdown.cjs",[[1,"gb-input-dropdown",{"type":[1],"state":[1],"size":[1],"showLabel":[4,"show-label"],"label":[1],"showPlaceholder":[4,"show-placeholder"],"placeholderText":[1,"placeholder-text"],"showHintText":[4,"show-hint-text"],"hintText":[1,"hint-text"],"showHelpIcon":[4,"show-help-icon"],"iconSwap":[1,"icon-swap"]}]]],["gb-slider.cjs",[[1,"gb-slider",{"min":[2],"max":[2],"thumbType":[1,"thumb-type"],"leftValue":[32],"rightValue":[32]}]]],["gb-collapse-button.cjs",[[1,"gb-collapse-button",{"color":[1],"currentIconDirection":[1025,"current-icon-direction"],"isHovered":[1028,"is-hovered"]}]]],["gb-notification-panel.cjs",[[1,"gb-notification-panel",{"state":[1],"notifications":[32]},[[0,"slotchange","handleSlotChange"]]]]],["gb-toggle.cjs",[[1,"gb-toggle",{"size":[1],"state":[1],"supportingText":[4,"supporting-text"]}]]],["gb-checkbox-group.cjs",[[1,"gb-checkbox-group",{"size":[1],"breakpoint":[1],"icon":[1],"selected":[4],"type":[1]}]]],["gb-file-type-icon.cjs",[[1,"gb-file-type-icon"]]],["gb-header-icon.cjs",[[1,"gb-header-icon",{"state":[1],"showIndicator":[4,"show-indicator"]}]]],["gb-input-field.cjs",[[1,"gb-input-field",{"size":[1],"inputType":[1,"input-type"],"destructive":[4],"helpIcon":[4,"help-icon"],"icon":[1],"placeholder":[1],"label":[1]}]]],["gb-megainput-field.cjs",[[1,"gb-megainput-field",{"size":[1]}]]],["gb-notification-content.cjs",[[1,"gb-notification-content",{"icon":[1],"label":[1],"time":[1],"supportingText":[1,"supporting-text"]}]]],["gb-progress-circle.cjs",[[1,"gb-progress-circle",{"size":[1],"shape":[1],"label":[4],"progress":[2]}]]],["gb-scrollbar.cjs",[[1,"gb-scrollbar",{"length":[1]}]]],["gb-textarea-input-field.cjs",[[1,"gb-textarea-input-field",{"type":[1],"destructive":[4],"placeholder":[1],"label":[1]}]]],["gb-wysiwyg-editor-icon.cjs",[[1,"gb-wysiwyg-editor-icon"]]],["gb-tooltip.cjs",[[1,"gb-tooltip",{"arrow":[1],"supportingText":[4,"supporting-text"]}]]],["gb-button-close_2.cjs",[[1,"gb-progress-bar",{"progress":[2],"showLabel":[4,"show-label"],"labelPosition":[1,"label-position"],"el":[16]}],[1,"gb-button-close",{"size":[1],"color":[1]}]]],["gb-file-upload-item-base.cjs",[[1,"gb-file-upload-item-base",{"icon":[1],"state":[1],"heightSize":[1,"height-size"],"fileType":[1,"file-type"],"buttonState":[1,"button-state"]}]]],["gb-avatar-label-group.cjs",[[1,"gb-avatar-label-group",{"size":[1],"statusIcon":[1,"status-icon"],"state":[1],"placeholder":[4],"text":[4]}]]],["gb-avatar-add-button.cjs",[[1,"gb-avatar-add-button",{"size":[1],"showToolTip":[1028,"show-tool-tip"],"state":[1],"el":[16]}]]],["gb-slider-control-handle.cjs",[[1,"gb-slider-control-handle",{"value":[2],"type":[1],"isHovered":[32],"isFocused":[32]}]]],["gb-badge-close.cjs",[[1,"gb-badge-close",{"color":[1],"type":[1]}]]],["gb-toggle-base.cjs",[[1,"gb-toggle-base",{"size":[1],"state":[1]}]]],["gb-dropdown-items-with-shortcut.cjs",[[1,"gb-dropdown-items-with-shortcut",{"icon":[4],"iconSrc":[1,"icon-src"],"checkbox":[4],"shortcut":[4],"shortcutIcon":[1,"shortcut-icon"],"label":[1],"checkboxStates":[1,"checkbox-states"],"state":[1]}]]],["gb-btn_3.cjs",[[4,"gb-btn",{"size":[1],"hierarchy":[1],"icon":[1],"destructive":[4],"state":[1],"iconLeading":[4,"icon-leading"],"iconLeadingSwap":[1,"icon-leading-swap"],"iconTrailing":[4,"icon-trailing"],"iconTrailingSwap":[1,"icon-trailing-swap"],"leadingIconSvg":[32],"trailingIconSvg":[32]}],[1,"test-tooltip",{"showArrow":[4,"show-arrow"],"arrowPosition":[1,"arrow-position"],"visible":[32]}],[1,"gb-button",{"size":[1],"hierarchy":[1],"icon":[1],"destructive":[4],"state":[1],"iconLeading":[4,"icon-leading"],"iconLeadingSwap":[1,"icon-leading-swap"],"iconTrailing":[4,"icon-trailing"],"iconTrailingSwap":[1,"icon-trailing-swap"],"leadingIconSvg":[32],"trailingIconSvg":[32]}]]],["gb-tag-checkbox_3.cjs",[[1,"gb-tag-checkbox",{"checked":[4],"size":[1],"disabled":[4]}],[1,"gb-tag-close",{"size":[1]}],[1,"gb-tag-count",{"size":[1]}]]],["gb-checkbox_2.cjs",[[1,"gb-checkbox",{"checked":[4],"indeterminate":[4],"size":[1],"type":[1],"state":[1],"supportingText":[4,"supporting-text"]}],[1,"gb-checkbox-base",{"state":[1025],"size":[1],"type":[1],"checked":[1028],"indeterminate":[1028]}]]],["gb-avatar_3.cjs",[[1,"gb-avatar",{"size":[1],"placeholder":[4],"text":[4],"statusIcon":[1,"status-icon"],"state":[1],"icon":[1],"weight":[1]}],[1,"gb-avatar-contrast-inner-border",{"weight":[1],"size":[1]}],[1,"gb-status-indicator",{"statusIcon":[1,"status-icon"],"size":[1],"state":[1],"indicatorStateClass":[1,"indicator-state-class"]}]]]], options);
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
exports.setNonce = index.setNonce;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { h } from "@stencil/core";
|
|
1
|
+
import { getAssetPath, h } from "@stencil/core";
|
|
2
2
|
export class GbButton {
|
|
3
3
|
constructor() {
|
|
4
4
|
this.size = undefined;
|
|
@@ -10,29 +10,32 @@ export class GbButton {
|
|
|
10
10
|
this.iconLeadingSwap = undefined;
|
|
11
11
|
this.iconTrailing = false;
|
|
12
12
|
this.iconTrailingSwap = undefined;
|
|
13
|
+
this.leadingIconSvg = '';
|
|
14
|
+
this.trailingIconSvg = '';
|
|
13
15
|
}
|
|
14
16
|
componentWillLoad() {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
if (this.iconLeading && this.iconLeadingSwap) {
|
|
18
|
+
this.loadIcon(this.iconLeadingSwap, 'leading');
|
|
19
|
+
}
|
|
20
|
+
if (this.iconTrailing && this.iconTrailingSwap) {
|
|
21
|
+
this.loadIcon(this.iconTrailingSwap, 'trailing');
|
|
22
|
+
}
|
|
21
23
|
const buttonSlot = this.el.querySelector('p');
|
|
22
24
|
if (buttonSlot) {
|
|
23
25
|
buttonSlot.classList.add(this.getButtonTextClasses());
|
|
24
26
|
}
|
|
25
27
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
async loadIcon(iconName, type) {
|
|
29
|
+
const iconPath = getAssetPath(`${iconName}`);
|
|
30
|
+
const response = await fetch(iconPath);
|
|
31
|
+
const svg = await response.text();
|
|
32
|
+
if (type === 'leading') {
|
|
33
|
+
this.leadingIconSvg = svg;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
this.trailingIconSvg = svg;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
36
39
|
// Helper to apply color styles based on the button state
|
|
37
40
|
getButtonClasses() {
|
|
38
41
|
return {
|
|
@@ -60,13 +63,13 @@ export class GbButton {
|
|
|
60
63
|
}
|
|
61
64
|
}
|
|
62
65
|
renderLeadingIcon() {
|
|
63
|
-
return h("div", { class: `icon left-icon ${this.size}`, innerHTML: this.
|
|
66
|
+
return h("div", { class: `icon left-icon ${this.size}`, innerHTML: this.leadingIconSvg });
|
|
64
67
|
}
|
|
65
68
|
renderTrailingIcon() {
|
|
66
|
-
return h("div", { class: "icon right-icon", innerHTML: this.
|
|
69
|
+
return h("div", { class: "icon right-icon", innerHTML: this.trailingIconSvg });
|
|
67
70
|
}
|
|
68
71
|
render() {
|
|
69
|
-
return (h("button", { key: '
|
|
72
|
+
return (h("button", { key: '99642bbacfa19e24c66fba2a9b396872e56b07c2', class: this.getButtonClasses() }, this.iconLeading && this.icon === 'default' && this.renderLeadingIcon(), this.icon === 'default' && h("slot", { key: '27230e98581e68daf4f6610aa37111ceb963909e' }), this.iconTrailing && this.renderTrailingIcon(), this.icon === 'only' && this.renderLeadingIcon()));
|
|
70
73
|
}
|
|
71
74
|
static get is() { return "gb-btn"; }
|
|
72
75
|
static get originalStyleUrls() {
|
|
@@ -251,6 +254,12 @@ export class GbButton {
|
|
|
251
254
|
}
|
|
252
255
|
};
|
|
253
256
|
}
|
|
257
|
+
static get states() {
|
|
258
|
+
return {
|
|
259
|
+
"leadingIconSvg": {},
|
|
260
|
+
"trailingIconSvg": {}
|
|
261
|
+
};
|
|
262
|
+
}
|
|
254
263
|
static get elementRef() { return "el"; }
|
|
255
264
|
}
|
|
256
265
|
//# sourceMappingURL=gb-btn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gb-btn.js","sourceRoot":"","sources":["../../../src/components/gb-btn/gb-btn.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"gb-btn.js","sourceRoot":"","sources":["../../../src/components/gb-btn/gb-btn.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, getAssetPath, h, Prop, State } from \"@stencil/core\";\r\nimport { GeneralHierarchies, GeneralSizes } from \"../../models/reusableModels\";\r\n\r\n@Component({\r\n tag: 'gb-btn',\r\n styleUrl: 'gb-btn.css',\r\n})\r\nexport class GbButton {\r\n @Prop() size: GeneralSizes;\r\n @Prop() hierarchy: GeneralHierarchies;\r\n @Prop() icon: 'default' | 'only';\r\n @Prop() destructive: boolean = false;\r\n @Prop() state: 'default' | 'hover' | 'disabled' | 'pressed';\r\n @Prop() iconLeading: boolean = false;\r\n @Prop() iconLeadingSwap: string;\r\n @Prop() iconTrailing: boolean = false;\r\n @Prop() iconTrailingSwap: string;\r\n @Element() el: HTMLElement;\r\n @State() leadingIconSvg: string = '';\r\n @State() trailingIconSvg: string = '';\r\n\r\n componentWillLoad() {\r\n if (this.iconLeading && this.iconLeadingSwap) {\r\n this.loadIcon(this.iconLeadingSwap, 'leading');\r\n }\r\n if (this.iconTrailing && this.iconTrailingSwap) {\r\n this.loadIcon(this.iconTrailingSwap, 'trailing');\r\n }\r\n\r\n const buttonSlot = this.el.querySelector('p');\r\n\r\n if (buttonSlot) {\r\n buttonSlot.classList.add(this.getButtonTextClasses());\r\n }\r\n }\r\n\r\n async loadIcon(iconName: string, type: 'leading' | 'trailing') {\r\n const iconPath = getAssetPath(`${iconName}`);\r\n const response = await fetch(iconPath);\r\n const svg = await response.text();\r\n if (type === 'leading') {\r\n this.leadingIconSvg = svg;\r\n } else {\r\n this.trailingIconSvg = svg;\r\n }\r\n }\r\n\r\n // Helper to apply color styles based on the button state\r\n getButtonClasses() {\r\n return {\r\n button: true,\r\n [this.size]: true,\r\n [this.hierarchy]: true,\r\n destructive: this.destructive,\r\n disabled: this.state === 'disabled',\r\n default: this.icon === 'default',\r\n only: this.icon === 'only',\r\n };\r\n }\r\n\r\n getButtonTextClasses() {\r\n switch (this.size) {\r\n case 'xl2':\r\n return 'text-lg-semi-bold';\r\n case 'xl':\r\n return 'text-md-semi-bold';\r\n case 'lg':\r\n return 'text-md-semi-bold';\r\n case 'md':\r\n return 'text-sm-semi-bold';\r\n case 'sm':\r\n return 'text-sm-semi-bold';\r\n }\r\n }\r\n\r\n renderLeadingIcon() {\r\n return <div class={`icon left-icon ${this.size}`} innerHTML={this.leadingIconSvg}></div>;\r\n }\r\n\r\n renderTrailingIcon() {\r\n return <div class=\"icon right-icon\" innerHTML={this.trailingIconSvg}></div>;\r\n }\r\n\r\n render() {\r\n return (\r\n <button class={this.getButtonClasses()}>\r\n {this.iconLeading && this.icon === 'default' && this.renderLeadingIcon()}\r\n {this.icon === 'default' && <slot></slot>}\r\n {this.iconTrailing && this.renderTrailingIcon()}\r\n {this.icon === 'only' && this.renderLeadingIcon()}\r\n </button>\r\n );\r\n }\r\n}"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { h } from "@stencil/core";
|
|
1
|
+
import { getAssetPath, h } from "@stencil/core";
|
|
2
2
|
export class MyButton {
|
|
3
3
|
constructor() {
|
|
4
4
|
this.size = undefined;
|
|
@@ -10,29 +10,32 @@ export class MyButton {
|
|
|
10
10
|
this.iconLeadingSwap = undefined;
|
|
11
11
|
this.iconTrailing = false;
|
|
12
12
|
this.iconTrailingSwap = undefined;
|
|
13
|
+
this.leadingIconSvg = '';
|
|
14
|
+
this.trailingIconSvg = '';
|
|
13
15
|
}
|
|
14
16
|
componentWillLoad() {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
if (this.iconLeading && this.iconLeadingSwap) {
|
|
18
|
+
this.loadIcon(this.iconLeadingSwap, 'leading');
|
|
19
|
+
}
|
|
20
|
+
if (this.iconTrailing && this.iconTrailingSwap) {
|
|
21
|
+
this.loadIcon(this.iconTrailingSwap, 'trailing');
|
|
22
|
+
}
|
|
21
23
|
const buttonSlot = this.el.querySelector('p');
|
|
22
24
|
if (buttonSlot) {
|
|
23
25
|
buttonSlot.classList.add(this.getButtonTextClasses());
|
|
24
26
|
}
|
|
25
27
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
async loadIcon(iconName, type) {
|
|
29
|
+
const iconPath = getAssetPath(`${iconName}`);
|
|
30
|
+
const response = await fetch(iconPath);
|
|
31
|
+
const svg = await response.text();
|
|
32
|
+
if (type === 'leading') {
|
|
33
|
+
this.leadingIconSvg = svg;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
this.trailingIconSvg = svg;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
36
39
|
// Helper to apply color styles based on the button state
|
|
37
40
|
getButtonClasses() {
|
|
38
41
|
return {
|
|
@@ -55,13 +58,13 @@ export class MyButton {
|
|
|
55
58
|
}
|
|
56
59
|
}
|
|
57
60
|
renderLeadingIcon() {
|
|
58
|
-
return h("div", { class: `icon left-icon ${this.size}`, innerHTML: this.
|
|
61
|
+
return h("div", { class: `icon left-icon ${this.size}`, innerHTML: this.leadingIconSvg });
|
|
59
62
|
}
|
|
60
63
|
renderTrailingIcon() {
|
|
61
|
-
return h("div", { class: "icon right-icon", innerHTML: this.
|
|
64
|
+
return h("div", { class: "icon right-icon", innerHTML: this.trailingIconSvg });
|
|
62
65
|
}
|
|
63
66
|
render() {
|
|
64
|
-
return (h("button", { key: '
|
|
67
|
+
return (h("button", { key: '4cf45b244021de3767f657d4bbf19eda9475386c', class: this.getButtonClasses() }, this.iconLeading && this.icon === 'default' && this.renderLeadingIcon(), this.icon === 'default' && h("slot", { key: '68aa9922ecccbcf54d5bc80913648301d9d1a927' }), this.iconTrailing && this.renderTrailingIcon(), this.icon === 'only' && this.renderLeadingIcon()));
|
|
65
68
|
}
|
|
66
69
|
static get is() { return "gb-button"; }
|
|
67
70
|
static get encapsulation() { return "shadow"; }
|
|
@@ -75,7 +78,7 @@ export class MyButton {
|
|
|
75
78
|
"$": ["gb-button.css"]
|
|
76
79
|
};
|
|
77
80
|
}
|
|
78
|
-
static get assetsDirs() { return ["
|
|
81
|
+
static get assetsDirs() { return [""]; }
|
|
79
82
|
static get properties() {
|
|
80
83
|
return {
|
|
81
84
|
"size": {
|
|
@@ -248,6 +251,12 @@ export class MyButton {
|
|
|
248
251
|
}
|
|
249
252
|
};
|
|
250
253
|
}
|
|
254
|
+
static get states() {
|
|
255
|
+
return {
|
|
256
|
+
"leadingIconSvg": {},
|
|
257
|
+
"trailingIconSvg": {}
|
|
258
|
+
};
|
|
259
|
+
}
|
|
251
260
|
static get elementRef() { return "el"; }
|
|
252
261
|
}
|
|
253
262
|
//# sourceMappingURL=gb-button.js.map
|