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.
Files changed (152) hide show
  1. package/dist/cjs/gb-btn_3.cjs.entry.js +47 -41
  2. package/dist/cjs/gb-btn_3.cjs.entry.js.map +1 -1
  3. package/dist/cjs/globuscomponents.cjs.js +1 -1
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/collection/components/gb-btn/gb-btn.js +29 -20
  6. package/dist/collection/components/gb-btn/gb-btn.js.map +1 -1
  7. package/dist/collection/components/gb-button/gb-button.js +30 -21
  8. package/dist/collection/components/gb-button/gb-button.js.map +1 -1
  9. package/dist/collection/components/gb-button/gb-button.tsx +91 -0
  10. package/dist/collection/components/gb-button/readme.md +40 -0
  11. package/dist/collection/components/test-tooltip/test-tooltip.js +2 -2
  12. package/dist/collection/components/test-tooltip/test-tooltip.js.map +1 -1
  13. package/dist/components/gb-btn.js +26 -21
  14. package/dist/components/gb-btn.js.map +1 -1
  15. package/dist/components/gb-button.js +1 -1
  16. package/dist/components/gb-file-upload-item-base.js +1 -1
  17. package/dist/components/gb-file-upload.js +2 -2
  18. package/dist/components/gb-notification-panel.js +1 -1
  19. package/dist/components/{p-2e36989a.js → p-53bb79e9.js} +2 -2
  20. package/dist/components/{p-2e36989a.js.map → p-53bb79e9.js.map} +1 -1
  21. package/dist/components/{p-bf1b5255.js → p-ca9a0d2a.js} +28 -23
  22. package/dist/components/p-ca9a0d2a.js.map +1 -0
  23. package/dist/components/test-tooltip.js +2 -2
  24. package/dist/components/test-tooltip.js.map +1 -1
  25. package/dist/esm/gb-avatar-add-button.entry.js +1 -1
  26. package/dist/esm/gb-avatar-dropdown.entry.js +1 -1
  27. package/dist/esm/gb-avatar-group.entry.js +1 -1
  28. package/dist/esm/gb-avatar-label-group.entry.js +1 -1
  29. package/dist/esm/gb-avatar-profile-photo.entry.js +1 -1
  30. package/dist/esm/gb-avatar_3.entry.js +1 -1
  31. package/dist/esm/gb-badge-close.entry.js +1 -1
  32. package/dist/esm/gb-badge.entry.js +1 -1
  33. package/dist/esm/gb-btn_3.entry.js +48 -42
  34. package/dist/esm/gb-btn_3.entry.js.map +1 -1
  35. package/dist/esm/gb-button-close_2.entry.js +1 -1
  36. package/dist/esm/gb-checkbox-group.entry.js +1 -1
  37. package/dist/esm/gb-checkbox_2.entry.js +1 -1
  38. package/dist/esm/gb-collapse-button.entry.js +1 -1
  39. package/dist/esm/gb-dropdown-items-with-shortcut.entry.js +1 -1
  40. package/dist/esm/gb-file-type-icon.entry.js +1 -1
  41. package/dist/esm/gb-file-upload-item-base.entry.js +1 -1
  42. package/dist/esm/gb-file-upload.entry.js +1 -1
  43. package/dist/esm/gb-header-icon.entry.js +1 -1
  44. package/dist/esm/gb-help-dropdown.entry.js +1 -1
  45. package/dist/esm/gb-input-dropdown-menu-item.entry.js +1 -1
  46. package/dist/esm/gb-input-dropdown.entry.js +1 -1
  47. package/dist/esm/gb-input-field.entry.js +1 -1
  48. package/dist/esm/gb-megainput-field.entry.js +1 -1
  49. package/dist/esm/gb-notification-content.entry.js +1 -1
  50. package/dist/esm/gb-notification-panel.entry.js +1 -1
  51. package/dist/esm/gb-progress-circle.entry.js +1 -1
  52. package/dist/esm/gb-scrollbar.entry.js +1 -1
  53. package/dist/esm/gb-slider-control-handle.entry.js +1 -1
  54. package/dist/esm/gb-slider.entry.js +1 -1
  55. package/dist/esm/gb-tag-checkbox_3.entry.js +1 -1
  56. package/dist/esm/gb-tag.entry.js +1 -1
  57. package/dist/esm/gb-textarea-input-field.entry.js +1 -1
  58. package/dist/esm/gb-toggle-base.entry.js +1 -1
  59. package/dist/esm/gb-toggle.entry.js +1 -1
  60. package/dist/esm/gb-tooltip.entry.js +1 -1
  61. package/dist/esm/gb-wysiwyg-editor-icon.entry.js +1 -1
  62. package/dist/esm/globuscomponents.js +3 -3
  63. package/dist/esm/{index-b1fb2c43.js → index-baccaaaf.js} +2 -2
  64. package/dist/esm/{index-b1fb2c43.js.map → index-baccaaaf.js.map} +1 -1
  65. package/dist/esm/loader.js +3 -3
  66. package/dist/globuscomponents/gb-button.css +303 -0
  67. package/dist/globuscomponents/gb-button.tsx +91 -0
  68. package/dist/globuscomponents/globuscomponents.esm.js +1 -1
  69. package/dist/globuscomponents/globuscomponents.esm.js.map +1 -1
  70. package/dist/globuscomponents/{p-74aef423.entry.js → p-00244d6c.entry.js} +2 -2
  71. package/dist/globuscomponents/{p-61fd847f.entry.js → p-03fd3db6.entry.js} +2 -2
  72. package/dist/globuscomponents/{p-4c2187ce.entry.js → p-0b58ad12.entry.js} +2 -2
  73. package/dist/globuscomponents/{p-6187221a.entry.js → p-13a84f56.entry.js} +2 -2
  74. package/dist/globuscomponents/{p-5058e15b.entry.js → p-14e14b09.entry.js} +2 -2
  75. package/dist/globuscomponents/{p-3d1463bb.entry.js → p-14f8a91b.entry.js} +2 -2
  76. package/dist/globuscomponents/{p-df6ca614.entry.js → p-185d02fb.entry.js} +2 -2
  77. package/dist/globuscomponents/{p-fc5f1608.entry.js → p-23133621.entry.js} +2 -2
  78. package/dist/globuscomponents/{p-aa9276da.entry.js → p-2a21fc28.entry.js} +2 -2
  79. package/dist/globuscomponents/p-2ce9c18a.entry.js +2 -0
  80. package/dist/globuscomponents/{p-612e13af.entry.js.map → p-2ce9c18a.entry.js.map} +1 -1
  81. package/dist/globuscomponents/{p-da4f965a.entry.js → p-31bf4710.entry.js} +2 -2
  82. package/dist/globuscomponents/{p-db85bbb3.entry.js → p-33f4e7f6.entry.js} +2 -2
  83. package/dist/globuscomponents/{p-91764ae6.entry.js → p-3b7b933c.entry.js} +2 -2
  84. package/dist/globuscomponents/{p-70c0c48f.entry.js → p-4958c9ba.entry.js} +2 -2
  85. package/dist/globuscomponents/{p-eae87772.js → p-4cc02ec1.js} +2 -2
  86. package/dist/globuscomponents/{p-3f71767b.entry.js → p-554f28f6.entry.js} +2 -2
  87. package/dist/globuscomponents/{p-9a6025f9.entry.js → p-5ec82950.entry.js} +2 -2
  88. package/dist/globuscomponents/{p-cd0b001d.entry.js → p-6cea59d4.entry.js} +2 -2
  89. package/dist/globuscomponents/{p-89739cc8.entry.js → p-75b21675.entry.js} +2 -2
  90. package/dist/globuscomponents/{p-4aedd512.entry.js → p-7fd10105.entry.js} +2 -2
  91. package/dist/globuscomponents/p-8aae1040.entry.js +2 -0
  92. package/dist/globuscomponents/p-8aae1040.entry.js.map +1 -0
  93. package/dist/globuscomponents/{p-ea02ed2e.entry.js → p-8f25cee8.entry.js} +2 -2
  94. package/dist/globuscomponents/{p-b10893b7.entry.js → p-92a735ee.entry.js} +2 -2
  95. package/dist/globuscomponents/{p-17998f68.entry.js → p-92af7f46.entry.js} +2 -2
  96. package/dist/globuscomponents/{p-48116815.entry.js → p-96d65ef9.entry.js} +2 -2
  97. package/dist/globuscomponents/{p-2e50812d.entry.js → p-9abd951b.entry.js} +2 -2
  98. package/dist/globuscomponents/{p-da460f1f.entry.js → p-a6295219.entry.js} +2 -2
  99. package/dist/globuscomponents/{p-844a7d68.entry.js → p-c6c34486.entry.js} +2 -2
  100. package/dist/globuscomponents/p-c75f96d6.entry.js +2 -0
  101. package/dist/globuscomponents/{p-2b3262cd.entry.js.map → p-c75f96d6.entry.js.map} +1 -1
  102. package/dist/globuscomponents/{p-375589bc.entry.js → p-c922560c.entry.js} +2 -2
  103. package/dist/globuscomponents/{p-b33c894d.entry.js → p-d735b2a6.entry.js} +2 -2
  104. package/dist/globuscomponents/{p-da728002.entry.js → p-da9e05fa.entry.js} +2 -2
  105. package/dist/globuscomponents/{p-c641c937.entry.js → p-ea7ce35a.entry.js} +2 -2
  106. package/dist/globuscomponents/{p-fd17a6f4.entry.js → p-ecd8b206.entry.js} +2 -2
  107. package/dist/globuscomponents/{p-dea460fb.entry.js → p-efd96d9e.entry.js} +2 -2
  108. package/dist/globuscomponents/{p-614ee37b.entry.js → p-f37c9704.entry.js} +2 -2
  109. package/dist/globuscomponents/{p-80f66cd1.entry.js → p-fed6c43b.entry.js} +2 -2
  110. package/dist/globuscomponents/readme.md +40 -0
  111. package/dist/types/components/gb-btn/gb-btn.d.ts +3 -0
  112. package/dist/types/components/gb-button/gb-button.d.ts +3 -0
  113. package/package.json +1 -1
  114. package/dist/components/p-bf1b5255.js.map +0 -1
  115. package/dist/globuscomponents/p-2b3262cd.entry.js +0 -2
  116. package/dist/globuscomponents/p-38b2193b.entry.js +0 -2
  117. package/dist/globuscomponents/p-38b2193b.entry.js.map +0 -1
  118. package/dist/globuscomponents/p-612e13af.entry.js +0 -2
  119. /package/dist/globuscomponents/{p-74aef423.entry.js.map → p-00244d6c.entry.js.map} +0 -0
  120. /package/dist/globuscomponents/{p-61fd847f.entry.js.map → p-03fd3db6.entry.js.map} +0 -0
  121. /package/dist/globuscomponents/{p-4c2187ce.entry.js.map → p-0b58ad12.entry.js.map} +0 -0
  122. /package/dist/globuscomponents/{p-6187221a.entry.js.map → p-13a84f56.entry.js.map} +0 -0
  123. /package/dist/globuscomponents/{p-5058e15b.entry.js.map → p-14e14b09.entry.js.map} +0 -0
  124. /package/dist/globuscomponents/{p-3d1463bb.entry.js.map → p-14f8a91b.entry.js.map} +0 -0
  125. /package/dist/globuscomponents/{p-df6ca614.entry.js.map → p-185d02fb.entry.js.map} +0 -0
  126. /package/dist/globuscomponents/{p-fc5f1608.entry.js.map → p-23133621.entry.js.map} +0 -0
  127. /package/dist/globuscomponents/{p-aa9276da.entry.js.map → p-2a21fc28.entry.js.map} +0 -0
  128. /package/dist/globuscomponents/{p-da4f965a.entry.js.map → p-31bf4710.entry.js.map} +0 -0
  129. /package/dist/globuscomponents/{p-db85bbb3.entry.js.map → p-33f4e7f6.entry.js.map} +0 -0
  130. /package/dist/globuscomponents/{p-91764ae6.entry.js.map → p-3b7b933c.entry.js.map} +0 -0
  131. /package/dist/globuscomponents/{p-70c0c48f.entry.js.map → p-4958c9ba.entry.js.map} +0 -0
  132. /package/dist/globuscomponents/{p-eae87772.js.map → p-4cc02ec1.js.map} +0 -0
  133. /package/dist/globuscomponents/{p-3f71767b.entry.js.map → p-554f28f6.entry.js.map} +0 -0
  134. /package/dist/globuscomponents/{p-9a6025f9.entry.js.map → p-5ec82950.entry.js.map} +0 -0
  135. /package/dist/globuscomponents/{p-cd0b001d.entry.js.map → p-6cea59d4.entry.js.map} +0 -0
  136. /package/dist/globuscomponents/{p-89739cc8.entry.js.map → p-75b21675.entry.js.map} +0 -0
  137. /package/dist/globuscomponents/{p-4aedd512.entry.js.map → p-7fd10105.entry.js.map} +0 -0
  138. /package/dist/globuscomponents/{p-ea02ed2e.entry.js.map → p-8f25cee8.entry.js.map} +0 -0
  139. /package/dist/globuscomponents/{p-b10893b7.entry.js.map → p-92a735ee.entry.js.map} +0 -0
  140. /package/dist/globuscomponents/{p-17998f68.entry.js.map → p-92af7f46.entry.js.map} +0 -0
  141. /package/dist/globuscomponents/{p-48116815.entry.js.map → p-96d65ef9.entry.js.map} +0 -0
  142. /package/dist/globuscomponents/{p-2e50812d.entry.js.map → p-9abd951b.entry.js.map} +0 -0
  143. /package/dist/globuscomponents/{p-da460f1f.entry.js.map → p-a6295219.entry.js.map} +0 -0
  144. /package/dist/globuscomponents/{p-844a7d68.entry.js.map → p-c6c34486.entry.js.map} +0 -0
  145. /package/dist/globuscomponents/{p-375589bc.entry.js.map → p-c922560c.entry.js.map} +0 -0
  146. /package/dist/globuscomponents/{p-b33c894d.entry.js.map → p-d735b2a6.entry.js.map} +0 -0
  147. /package/dist/globuscomponents/{p-da728002.entry.js.map → p-da9e05fa.entry.js.map} +0 -0
  148. /package/dist/globuscomponents/{p-c641c937.entry.js.map → p-ea7ce35a.entry.js.map} +0 -0
  149. /package/dist/globuscomponents/{p-fd17a6f4.entry.js.map → p-ecd8b206.entry.js.map} +0 -0
  150. /package/dist/globuscomponents/{p-dea460fb.entry.js.map → p-efd96d9e.entry.js.map} +0 -0
  151. /package/dist/globuscomponents/{p-614ee37b.entry.js.map → p-f37c9704.entry.js.map} +0 -0
  152. /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
- // if (this.iconLeading && this.iconLeadingSwap) {
25
- // this.loadIcon(this.iconLeadingSwap, 'leading');
26
- // }
27
- // if (this.iconTrailing && this.iconTrailingSwap) {
28
- // this.loadIcon(this.iconTrailingSwap, 'trailing');
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
- // async loadIcon(iconName: string, type: 'leading' | 'trailing') {
36
- // const iconPath = getAssetPath(`./assets/${iconName}.svg`);
37
- // const response = await fetch(iconPath);
38
- // const svg = await response.text();
39
- // if (type === 'leading') {
40
- // this.leadingIconSvg = svg;
41
- // } else {
42
- // this.trailingIconSvg = svg;
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.iconLeadingSwap });
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.iconTrailingSwap });
78
+ return index.h("div", { class: "icon right-icon", innerHTML: this.trailingIconSvg });
76
79
  }
77
80
  render() {
78
- return (index.h("button", { key: '3612835cfa0e9b5da7e5640d4f0cb859b5a56096', class: this.getButtonClasses() }, this.iconLeading && this.icon === 'default' && this.renderLeadingIcon(), this.icon === 'default' && index.h("slot", { key: 'c1cc00bdcba77a84cf3c571a55aad89eb79ef881' }), this.iconTrailing && this.renderTrailingIcon(), this.icon === 'only' && this.renderLeadingIcon()));
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
- // if (this.iconLeading && this.iconLeadingSwap) {
102
- // this.loadIcon(this.iconLeadingSwap, 'leading');
103
- // }
104
- // if (this.iconTrailing && this.iconTrailingSwap) {
105
- // this.loadIcon(this.iconTrailingSwap, 'trailing');
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
- // async loadIcon(iconName: string, type: 'leading' | 'trailing') {
113
- // const iconPath = getAssetPath(`./assets/${iconName}.svg`);
114
- // const response = await fetch(iconPath);
115
- // const svg = await response.text();
116
- // if (type === 'leading') {
117
- // this.leadingIconSvg = svg;
118
- // } else {
119
- // this.trailingIconSvg = svg;
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.iconLeadingSwap });
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.iconTrailingSwap });
153
+ return index.h("div", { class: "icon right-icon", innerHTML: this.trailingIconSvg });
148
154
  }
149
155
  render() {
150
- return (index.h("button", { key: 'b811b6816de439ae31b65c1eab7d883644ebf204', class: this.getButtonClasses() }, this.iconLeading && this.icon === 'default' && this.renderLeadingIcon(), this.icon === 'default' && index.h("slot", { key: '0446e53a54e4fadfb6c661878d5cea9c8ae7151f' }), this.iconTrailing && this.renderTrailingIcon(), this.icon === 'only' && this.renderLeadingIcon()));
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 ["assets"]; }
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="tooltip-content"]');
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: 'fd612812025c21f3a2f558a2341e79a79ae7afcc', class: "tooltip-container" }, index.h("slot", { key: 'a17c0cb19995e2462e1a4a5b07edc8d8285726a2' }), this.visible && (index.h("div", { key: '013cb8286b1f6d0b442987315bc265bd3d4caec0', class: "tooltip" }, index.h("div", { key: 'ceac657cbf3a221dfb9e9ac677b2b4747f23d156', class: this.getArrowClass() }), index.h("div", { key: '98efa5549d0d010ae956bcd658750ef82562623b', class: "tooltip-content" }, index.h("slot", { key: '4b998d475af787312e0fb22677f0d4c9997e05bd', name: "tooltip-content" }))))));
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;
@@ -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
- // if (this.iconLeading && this.iconLeadingSwap) {
16
- // this.loadIcon(this.iconLeadingSwap, 'leading');
17
- // }
18
- // if (this.iconTrailing && this.iconTrailingSwap) {
19
- // this.loadIcon(this.iconTrailingSwap, 'trailing');
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
- // async loadIcon(iconName: string, type: 'leading' | 'trailing') {
27
- // const iconPath = getAssetPath(`./assets/${iconName}.svg`);
28
- // const response = await fetch(iconPath);
29
- // const svg = await response.text();
30
- // if (type === 'leading') {
31
- // this.leadingIconSvg = svg;
32
- // } else {
33
- // this.trailingIconSvg = svg;
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.iconLeadingSwap });
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.iconTrailingSwap });
69
+ return h("div", { class: "icon right-icon", innerHTML: this.trailingIconSvg });
67
70
  }
68
71
  render() {
69
- return (h("button", { key: '3612835cfa0e9b5da7e5640d4f0cb859b5a56096', class: this.getButtonClasses() }, this.iconLeading && this.icon === 'default' && this.renderLeadingIcon(), this.icon === 'default' && h("slot", { key: 'c1cc00bdcba77a84cf3c571a55aad89eb79ef881' }), this.iconTrailing && this.renderTrailingIcon(), this.icon === 'only' && this.renderLeadingIcon()));
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;AAO5D,MAAM,OAAO,QAAQ;;;;;2BAIY,KAAK;;2BAEL,KAAK;;4BAEJ,KAAK;;;IAIrC,iBAAiB;QACf,kDAAkD;QAClD,oDAAoD;QACpD,IAAI;QACJ,oDAAoD;QACpD,sDAAsD;QACtD,IAAI;QAEJ,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAE9C,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,+DAA+D;IAC/D,4CAA4C;IAC5C,uCAAuC;IACvC,8BAA8B;IAC9B,iCAAiC;IACjC,aAAa;IACb,kCAAkC;IAClC,MAAM;IACN,IAAI;IAEJ,yDAAyD;IACzD,gBAAgB;QACd,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI;YACjB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI;YACtB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,KAAK,KAAK,UAAU;YACnC,OAAO,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS;YAChC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM;SAC3B,CAAC;IACJ,CAAC;IAED,oBAAoB;QAClB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,KAAK;gBACR,OAAO,mBAAmB,CAAC;YAC7B,KAAK,IAAI;gBACP,OAAO,mBAAmB,CAAC;YAC7B,KAAK,IAAI;gBACP,OAAO,mBAAmB,CAAC;YAC7B,KAAK,IAAI;gBACP,OAAO,mBAAmB,CAAC;YAC7B,KAAK,IAAI;gBACP,OAAO,mBAAmB,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,OAAO,WAAK,KAAK,EAAE,kBAAkB,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,eAAe,GAAQ,CAAC;IAC5F,CAAC;IAED,kBAAkB;QAChB,OAAO,WAAK,KAAK,EAAC,iBAAiB,EAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,GAAQ,CAAC;IAC/E,CAAC;IAED,MAAM;QACJ,OAAO,CACL,+DAAQ,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE;YACnC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACvE,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,8DAAa;YACxC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC9C,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAC1C,CACV,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["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}"]}
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,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAOjF,MAAM,OAAO,QAAQ;;;;;2BAIY,KAAK;;2BAEL,KAAK;;4BAEJ,KAAK;;8BAGH,EAAE;+BACD,EAAE;;IAErC,iBAAiB;QACf,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAE9C,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,IAA4B;QAC3D,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,gBAAgB;QACd,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI;YACjB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI;YACtB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,KAAK,KAAK,UAAU;YACnC,OAAO,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS;YAChC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM;SAC3B,CAAC;IACJ,CAAC;IAED,oBAAoB;QAClB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,KAAK;gBACR,OAAO,mBAAmB,CAAC;YAC7B,KAAK,IAAI;gBACP,OAAO,mBAAmB,CAAC;YAC7B,KAAK,IAAI;gBACP,OAAO,mBAAmB,CAAC;YAC7B,KAAK,IAAI;gBACP,OAAO,mBAAmB,CAAC;YAC7B,KAAK,IAAI;gBACP,OAAO,mBAAmB,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,OAAO,WAAK,KAAK,EAAE,kBAAkB,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,GAAQ,CAAC;IAC3F,CAAC;IAED,kBAAkB;QAChB,OAAO,WAAK,KAAK,EAAC,iBAAiB,EAAC,SAAS,EAAE,IAAI,CAAC,eAAe,GAAQ,CAAC;IAC9E,CAAC;IAED,MAAM;QACJ,OAAO,CACL,+DAAQ,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE;YACnC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACvE,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,8DAAa;YACxC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC9C,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAC1C,CACV,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","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
- // if (this.iconLeading && this.iconLeadingSwap) {
16
- // this.loadIcon(this.iconLeadingSwap, 'leading');
17
- // }
18
- // if (this.iconTrailing && this.iconTrailingSwap) {
19
- // this.loadIcon(this.iconTrailingSwap, 'trailing');
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
- // async loadIcon(iconName: string, type: 'leading' | 'trailing') {
27
- // const iconPath = getAssetPath(`./assets/${iconName}.svg`);
28
- // const response = await fetch(iconPath);
29
- // const svg = await response.text();
30
- // if (type === 'leading') {
31
- // this.leadingIconSvg = svg;
32
- // } else {
33
- // this.trailingIconSvg = svg;
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.iconLeadingSwap });
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.iconTrailingSwap });
64
+ return h("div", { class: "icon right-icon", innerHTML: this.trailingIconSvg });
62
65
  }
63
66
  render() {
64
- return (h("button", { key: 'b811b6816de439ae31b65c1eab7d883644ebf204', class: this.getButtonClasses() }, this.iconLeading && this.icon === 'default' && this.renderLeadingIcon(), this.icon === 'default' && h("slot", { key: '0446e53a54e4fadfb6c661878d5cea9c8ae7151f' }), this.iconTrailing && this.renderTrailingIcon(), this.icon === 'only' && this.renderLeadingIcon()));
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 ["assets"]; }
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