@eturnity/eturnity_reusable_components 8.22.13 → 8.22.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.es23.js CHANGED
@@ -1,218 +1,543 @@
1
- import styled from "./main.es7.js";
1
+ import "./main.es3.js";
2
2
  import _sfc_main$1 from "./main.es24.js";
3
+ import styled from "./main.es7.js";
3
4
  import theme from "./main.es8.js";
4
- import "./main.es3.js";
5
5
  import _export_sfc from "./main.es11.js";
6
- import { resolveComponent, openBlock, createBlock, withCtx, createVNode, createCommentVNode, createTextVNode } from "./main.es6.js";
7
- import { toDisplayString } from "./main.es21.js";
8
- const PageContainer = styled.div``;
9
- const ButtonAttrs = {
10
- type: String,
11
- isDisabled: Boolean,
12
- minWidth: String,
13
- noWrap: Boolean,
14
- height: String,
15
- variant: String,
16
- buttonSize: String,
17
- appTheme: String
6
+ import { computed, onMounted, onUnmounted, watch, nextTick, resolveComponent, openBlock, createBlock, withCtx, createElementVNode as createBaseVNode, createVNode, createElementBlock, createTextVNode, createCommentVNode, Fragment, renderSlot, Teleport } from "./main.es6.js";
7
+ import { toDisplayString, normalizeStyle } from "./main.es16.js";
8
+ import { ref } from "./main.es19.js";
9
+ const TextOverlayAttrs = {
10
+ appTheme: String,
11
+ image: Boolean,
12
+ width: Number
18
13
  };
19
- const ButtonContainer = styled("div", ButtonAttrs)`
20
- display: flex;
21
- justify-content: center;
22
- padding: ${(props) => {
23
- var _a, _b, _c, _d;
24
- return (_d = (_c = (_b = (_a = props.theme) == null ? void 0 : _a.mainButton) == null ? void 0 : _b.size) == null ? void 0 : _c[props.buttonSize]) == null ? void 0 : _d.padding;
25
- }};
26
- font-size: ${(props) => {
27
- var _a, _b, _c, _d;
28
- return (_d = (_c = (_b = (_a = props.theme) == null ? void 0 : _a.mainButton) == null ? void 0 : _b.size) == null ? void 0 : _c[props.buttonSize]) == null ? void 0 : _d.fontSize;
29
- }};
30
- color: ${(props) => props.isDisabled ? props.theme.mainButton[props.appTheme][props.type][props.variant].disabled.textColor : props.theme.mainButton[props.appTheme][props.type][props.variant].default.textColor};
31
- background-color: ${(props) => props.isDisabled ? props.theme.mainButton[props.appTheme][props.type][props.variant].disabled.backgroundColor : props.theme.mainButton[props.appTheme][props.type][props.variant].default.backgroundColor};
32
- border: ${(props) => {
33
- const borderValue = props.isDisabled ? props.theme.mainButton[props.appTheme][props.type][props.variant].disabled.borderColor : props.theme.mainButton[props.appTheme][props.type][props.variant].default.borderColor;
34
- return borderValue ? "1px solid " + borderValue : "none";
35
- }};
14
+ const TextOverlay = styled("div", TextOverlayAttrs)`
15
+ color: ${(props) => props.image ? props.theme.colors.grey1 : props.theme.colors.black};
16
+ font-size: ${(props) => props.image ? "12px" : "13px"};
36
17
  border-radius: 4px;
37
- text-align: center;
38
- cursor: ${(props) => props.isDisabled ? "not-allowed" : "pointer"};
39
- user-select: none;
40
- ${(props) => props.minWidth ? `min-width: ${props.minWidth};` : ""};
41
- ${(props) => props.noWrap ? `white-space: nowrap;` : ""};
42
- height: ${(props) => props.height};
43
- line-height: 1;
18
+ padding: 10px;
19
+ word-wrap: break-word;
20
+ overflow-wrap: break-word;
21
+ white-space: normal;
22
+ width: ${(props) => props.width ? `${props.width}px` : "100%"};
23
+ box-shadow: ${(props) => props.image ? "0 2px 10px rgba(0, 0, 0, 0.1)" : "none"};
44
24
 
45
- &:hover {
46
- background-color: ${(props) => props.isDisabled ? props.theme.mainButton[props.appTheme][props.type][props.variant].disabled.backgroundColor : props.theme.mainButton[props.appTheme][props.type][props.variant].hover.backgroundColor};
25
+ a {
26
+ color: ${(props) => props.theme.colors.blue};
47
27
  }
48
28
 
49
- &:active {
50
- background-color: ${(props) => props.isDisabled ? props.theme.mainButton[props.appTheme][props.type][props.variant].disabled.backgroundColor : props.theme.mainButton[props.appTheme][props.type][props.variant].active.backgroundColor};
29
+ img + span {
30
+ margin-top: 10px;
31
+ display: block;
51
32
  }
52
33
  `;
53
- const AltAttrs = {
54
- altStyle: Boolean,
55
- color: String
56
- };
57
- styled("div", AltAttrs)`
58
- background-color: ${(props) => props.color ? props.color : props.theme.colors.transparentWhite1};
59
- padding: 7px;
60
- height: 100%;
61
- width: 30%;
62
- justify-content: center;
63
- display: flex;
64
- align-items: center;
65
- border-radius: 4px 0 0 4px;
66
- color: ${(props) => props.theme.colors.white};
67
- all: ${(props) => props.altStyle ? "" : "unset"};
34
+ const PageContainer = styled("div")`
35
+ display: ${(props) => props.type === "dot" ? "unset" : "inline-block"};
36
+ position: relative;
37
+ `;
38
+ const TextWrapper = styled("div")`
39
+ z-index: 9999999999;
40
+ position: absolute;
68
41
  `;
69
- styled("span", AltAttrs)`
70
- padding: ${(props) => props.altStyle ? "7px" : "0"};
71
- all: ${(props) => props.altStyle ? "" : "unset"};
42
+ const OverlayImage = styled("img")`
43
+ width: 100%;
44
+ height: auto;
72
45
  `;
73
- const LabelAttrs = {
74
- hasIcon: Boolean
46
+ const Dot = styled("div")`
47
+ width: 5px;
48
+ height: 5px;
49
+ background-color: ${(props) => props.color};
50
+ border-radius: 50%;
51
+ `;
52
+ const IconWrapperAttrs = {
53
+ backgroundColor: String,
54
+ borderRadius: String,
55
+ padding: String,
56
+ hoveredIcon: Boolean,
57
+ isActive: Boolean,
58
+ isDisabled: Boolean
75
59
  };
76
- const LabelComponent = styled("span", LabelAttrs)`
60
+ const IconWrapper = styled("div", IconWrapperAttrs)`
77
61
  display: flex;
78
62
  align-items: center;
79
63
  justify-content: center;
80
- gap: ${(props) => props.hasIcon ? "5px" : "0"};
64
+ gap: 6px;
65
+ white-space: nowrap;
66
+ background-color: ${(props) => props.backgroundColor};
67
+ border-radius: ${(props) => props.hoveredIcon ? "6px" : props.borderRadius};
68
+ padding: ${(props) => props.padding};
69
+ width: ${(props) => props.hoveredIcon ? "32px" : ""};
70
+ height: ${(props) => props.hoveredIcon ? "32px" : ""};
71
+ cursor: pointer;
72
+ background-color: ${(props) => props.isActive ? props.theme.colors.transparentWhite2 : ""};
73
+ cursor: ${(props) => props.isDisabled ? "not-allowed" : "pointer"};
74
+ &:hover {
75
+ background-color: ${(props) => props.hoveredIcon ? props.theme.colors.transparentWhite2 : ""};
76
+ }
77
+ `;
78
+ const LabelWrapperAttrs = {
79
+ size: String,
80
+ color: String
81
+ };
82
+ const LabelWrapper = styled("div", LabelWrapperAttrs)`
83
+ font-size: ${(props) => props.size};
84
+ color: ${(props) => props.color};
81
85
  `;
82
86
  const _sfc_main = {
83
- name: "MainButton",
87
+ name: "InfoText",
84
88
  components: {
85
- Icon: _sfc_main$1,
86
- LabelComponent,
89
+ IconComponent: _sfc_main$1,
90
+ TextOverlay,
91
+ // Arrow,
92
+ Dot,
87
93
  PageContainer,
88
- ButtonContainer
94
+ TextWrapper,
95
+ OverlayImage,
96
+ IconWrapper,
97
+ LabelWrapper
89
98
  },
90
99
  props: {
91
- type: {
100
+ text: {
92
101
  required: false,
93
- default: "primary",
94
- // primary, secondary, tertiary, ghost
102
+ default: "",
95
103
  type: String
96
104
  },
97
- variant: {
98
- required: false,
99
- default: "main",
100
- // main, cancel
101
- type: String
102
- },
103
- isDisabled: {
105
+ isActive: {
104
106
  required: false,
105
107
  default: false,
106
108
  type: Boolean
107
109
  },
108
- icon: {
109
- required: false,
110
- default: null,
111
- type: String
112
- },
113
- iconColor: {
110
+ labelText: {
114
111
  required: false,
115
112
  default: "",
116
113
  type: String
117
114
  },
118
- iconAltStyle: {
119
- required: false,
120
- default: false,
121
- type: Boolean
115
+ size: {
116
+ type: String,
117
+ default: "14px"
122
118
  },
123
- iconAltStyleColor: {
119
+ infoPosition: {
124
120
  required: false,
125
121
  default: null,
126
122
  type: String
127
123
  },
128
- text: {
129
- required: true,
124
+ maxWidth: {
125
+ default: "400px",
130
126
  type: String
131
127
  },
132
- noWrap: {
133
- required: false,
134
- default: false,
135
- type: Boolean
128
+ openTrigger: {
129
+ type: String,
130
+ default: "onHover",
131
+ validator: (value) => ["onHover", "onClick"].includes(value)
136
132
  },
137
- minWidth: {
138
- required: false,
133
+ buttonType: {
134
+ type: String,
135
+ default: "regular",
136
+ validator: (value) => ["regular", "error"].includes(value)
137
+ },
138
+ image: {
139
+ type: String,
140
+ default: ""
141
+ },
142
+ iconName: {
143
+ type: String,
144
+ default: "info"
145
+ },
146
+ iconColor: {
147
+ type: String,
139
148
  default: null,
140
- type: String
149
+ required: false
141
150
  },
142
- height: {
151
+ isDisabled: {
152
+ type: Boolean,
153
+ default: false,
154
+ required: false
155
+ },
156
+ dotColor: {
157
+ type: String,
143
158
  required: false,
144
- default: "auto",
145
- type: String
159
+ default: theme.semanticColors.blue[400]
146
160
  },
147
- id: {
161
+ type: {
162
+ type: String,
148
163
  required: false,
149
- default: null,
150
- type: String
164
+ default: "info"
165
+ // info, dot
151
166
  },
152
- dataId: {
167
+ appTheme: {
153
168
  type: String,
154
- default: ""
169
+ default: "light",
170
+ // light or dark
171
+ required: false
155
172
  },
156
- dataQaId: {
173
+ labelAlign: {
157
174
  type: String,
158
- default: ""
175
+ default: "right",
176
+ required: false
159
177
  },
160
- appTheme: {
178
+ backgroundColor: {
179
+ type: String,
180
+ default: "",
181
+ required: false
182
+ },
183
+ contentBackgroundColor: {
184
+ type: String,
185
+ default: "",
186
+ required: false
187
+ },
188
+ borderRadius: {
189
+ type: String,
190
+ default: "",
191
+ required: false
192
+ },
193
+ padding: {
161
194
  type: String,
162
- default: "light"
195
+ default: "",
196
+ required: false
163
197
  },
164
- buttonSize: {
198
+ labelSize: {
165
199
  type: String,
166
- default: "medium",
200
+ default: "12px",
201
+ required: false
202
+ },
203
+ noIcon: {
204
+ type: Boolean,
205
+ default: false,
206
+ required: false
207
+ },
208
+ hoveredIcon: {
209
+ type: Boolean,
210
+ default: false,
211
+ required: false
212
+ },
213
+ hideInfoText: {
214
+ type: Boolean,
215
+ default: false,
167
216
  required: false
168
217
  }
169
218
  },
219
+ setup(props) {
220
+ const isVisible = ref(false);
221
+ const container = ref(null);
222
+ const icon = ref(null);
223
+ const infoBox = ref(null);
224
+ const textContent = ref(null);
225
+ const infoImage = ref(null);
226
+ const infoBoxWidth = ref(0);
227
+ const infoBoxHeight = ref(0);
228
+ const boxStyle = ref({});
229
+ const arrowStyle = ref({});
230
+ const wrapperStyle = ref({});
231
+ const isMobile = ref(window.innerWidth <= 768);
232
+ const textStyle = computed(() => ({
233
+ fontSize: props.image ? "12px" : "13px",
234
+ color: props.image ? theme.colors.grey1 : props.appTheme === "dark" ? theme.colors.black : theme.colors.white,
235
+ textAlign: props.image ? "right" : "left"
236
+ }));
237
+ const calculatePosition = (width) => {
238
+ if (!icon.value || !width)
239
+ return {};
240
+ const iconRect = icon.value.getBoundingClientRect();
241
+ const windowHeight = window.innerHeight;
242
+ const windowWidth = window.innerWidth;
243
+ const spaceBelow = windowHeight - iconRect.bottom - 10;
244
+ const spaceAbove = iconRect.top - 10;
245
+ const spaceRight = windowWidth - iconRect.right - 10;
246
+ const spaceLeft = iconRect.left - 10;
247
+ const positions = [{
248
+ position: "bottom",
249
+ space: spaceBelow
250
+ }, {
251
+ position: "top",
252
+ space: spaceAbove
253
+ }, {
254
+ position: "right",
255
+ space: spaceRight
256
+ }, {
257
+ position: "left",
258
+ space: spaceLeft
259
+ }].sort((a, b) => b.space - a.space);
260
+ const bestPosition = props.infoPosition ? props.infoPosition : positions[0].position;
261
+ let top, left, arrowPosition;
262
+ switch (bestPosition) {
263
+ case "bottom":
264
+ top = Math.round(iconRect.bottom + 10);
265
+ left = Math.round(Math.min(iconRect.left, windowWidth - width - 10));
266
+ arrowPosition = {
267
+ left: `${Math.round(Math.min(Math.max(iconRect.left - left + iconRect.width / 2 - 8, 2), width - 18))}px`,
268
+ top: "-7px",
269
+ bottom: "auto",
270
+ transform: "rotate(180deg)"
271
+ };
272
+ break;
273
+ case "top":
274
+ top = Math.round(iconRect.top - infoBoxHeight.value - 10);
275
+ left = Math.round(Math.min(iconRect.left, windowWidth - width - 10));
276
+ arrowPosition = {
277
+ left: `${Math.round(Math.min(Math.max(iconRect.left - left + iconRect.width / 2 - 8, 2), width - 18))}px`,
278
+ top: "auto",
279
+ bottom: "-7px",
280
+ transform: "none"
281
+ };
282
+ break;
283
+ case "right":
284
+ top = Math.round(Math.max(Math.min(iconRect.top - (infoBoxHeight.value - iconRect.height) / 2, windowHeight - infoBoxHeight.value - 10), 10));
285
+ left = Math.round(iconRect.right + 10);
286
+ arrowPosition = {
287
+ left: "-7px",
288
+ top: `${Math.round(Math.min(Math.max(iconRect.top - top + iconRect.height / 2 - 8, 2), infoBoxHeight.value - 18))}px`,
289
+ bottom: "auto",
290
+ transform: "rotate(90deg)"
291
+ };
292
+ break;
293
+ case "left":
294
+ top = Math.round(Math.max(Math.min(iconRect.top - (infoBoxHeight.value - iconRect.height) / 2, windowHeight - infoBoxHeight.value - 10), 10));
295
+ left = Math.round(iconRect.left - width - 10);
296
+ arrowPosition = {
297
+ left: "auto",
298
+ right: "-7px",
299
+ top: `${Math.round(Math.min(Math.max(iconRect.top - top + iconRect.height / 2 - 8, 2), infoBoxHeight.value - 18))}px`,
300
+ bottom: "auto",
301
+ transform: "rotate(-90deg)"
302
+ };
303
+ break;
304
+ }
305
+ arrowStyle.value = arrowPosition;
306
+ wrapperStyle.value = {
307
+ position: "fixed",
308
+ top: `${top}px`,
309
+ left: `${left}px`,
310
+ transform: "none",
311
+ width: `${width}px`
312
+ };
313
+ return {
314
+ width: "100%",
315
+ maxWidth: props.maxWidth,
316
+ overflowY: "auto",
317
+ backgroundColor: props.contentBackgroundColor ? props.contentBackgroundColor : props.image ? theme.colors.white : props.appTheme === "light" ? theme.colors.black : theme.colors.grey5
318
+ };
319
+ };
320
+ const showInfo = async () => {
321
+ isVisible.value = true;
322
+ await nextTick();
323
+ await nextTick();
324
+ await updatePosition();
325
+ };
326
+ const hideInfo = () => {
327
+ isVisible.value = false;
328
+ infoBoxWidth.value = 0;
329
+ };
330
+ const toggleInfo = () => {
331
+ isVisible.value ? hideInfo() : showInfo();
332
+ };
333
+ const handleScroll = () => {
334
+ if (isVisible.value) {
335
+ hideInfo();
336
+ }
337
+ updatePosition();
338
+ };
339
+ const isIconInView = () => {
340
+ if (!icon.value)
341
+ return false;
342
+ const rect = icon.value.getBoundingClientRect();
343
+ return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
344
+ };
345
+ const updatePosition = async () => {
346
+ if (!infoBox.value || !textContent.value)
347
+ return;
348
+ if (infoBox.value.$el) {
349
+ infoBox.value.$el.style.visibility = "hidden";
350
+ infoBox.value.$el.style.display = "block";
351
+ }
352
+ await nextTick();
353
+ if (!isIconInView()) {
354
+ if (isVisible.value)
355
+ hideInfo();
356
+ return;
357
+ }
358
+ const clone = textContent.value.cloneNode(true);
359
+ clone.style.position = "absolute";
360
+ clone.style.visibility = "hidden";
361
+ clone.style.width = "auto";
362
+ clone.style.maxWidth = "none";
363
+ clone.style.whiteSpace = "nowrap";
364
+ document.body.appendChild(clone);
365
+ const contentWidth = clone.offsetWidth;
366
+ document.body.removeChild(clone);
367
+ const calculatedWidth = Math.min(Math.max(contentWidth, 230), parseInt(props.maxWidth, 10));
368
+ infoBoxWidth.value = calculatedWidth;
369
+ await nextTick();
370
+ infoBoxHeight.value = infoBox.value.$el.offsetHeight;
371
+ boxStyle.value = calculatePosition(calculatedWidth);
372
+ if (isVisible.value && infoBox.value.$el) {
373
+ infoBox.value.$el.style.visibility = "visible";
374
+ }
375
+ };
376
+ const onImageLoad = () => {
377
+ if (infoImage.value) {
378
+ infoBoxHeight.value = infoBox.value.$el.offsetHeight;
379
+ updatePosition();
380
+ }
381
+ };
382
+ const handleClickOutside = (event) => {
383
+ if ((props.openTrigger === "onClick" || isMobile.value) && isVisible.value) {
384
+ const clickedElement = event.target;
385
+ if (infoBox.value && !infoBox.value.$el.contains(clickedElement) && !icon.value.contains(clickedElement)) {
386
+ hideInfo();
387
+ }
388
+ }
389
+ };
390
+ const handleResize = () => {
391
+ isMobile.value = window.innerWidth <= 768;
392
+ updatePosition();
393
+ };
394
+ onMounted(() => {
395
+ window.addEventListener("scroll", handleScroll, {
396
+ passive: true
397
+ });
398
+ window.addEventListener("resize", handleResize);
399
+ document.addEventListener("scroll", handleScroll, {
400
+ passive: true,
401
+ capture: true
402
+ });
403
+ document.addEventListener("click", handleClickOutside);
404
+ });
405
+ onUnmounted(() => {
406
+ window.removeEventListener("scroll", handleScroll);
407
+ window.removeEventListener("resize", handleResize);
408
+ document.removeEventListener("scroll", handleScroll, {
409
+ capture: true
410
+ });
411
+ document.removeEventListener("click", handleClickOutside);
412
+ });
413
+ watch(isVisible, (newValue) => {
414
+ if (newValue) {
415
+ updatePosition();
416
+ }
417
+ });
418
+ return {
419
+ isVisible,
420
+ boxStyle,
421
+ arrowStyle,
422
+ showInfo,
423
+ hideInfo,
424
+ toggleInfo,
425
+ container,
426
+ icon,
427
+ infoBox,
428
+ textContent,
429
+ infoImage,
430
+ infoBoxWidth,
431
+ infoBoxHeight,
432
+ wrapperStyle,
433
+ textStyle,
434
+ onImageLoad,
435
+ isMobile
436
+ };
437
+ },
170
438
  computed: {
171
- theme() {
172
- return theme;
173
- },
174
- getIconColor() {
175
- return this.isDisabled ? this.theme.mainButton[this.appTheme][this.type][this.variant].disabled.textColor : this.iconColor ? this.iconColor : this.theme.mainButton[this.appTheme][this.type][this.variant].default.textColor;
439
+ computedIconColor() {
440
+ return this.buttonType === "error" ? theme.colors.red : theme.colors.mediumGray;
176
441
  }
177
442
  }
178
443
  };
444
+ const _hoisted_1 = {
445
+ ref: "icon",
446
+ "data-test-id": "infoText_trigger"
447
+ };
448
+ const _hoisted_2 = ["innerHTML"];
179
449
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
180
- const _component_Icon = resolveComponent("Icon");
181
- const _component_LabelComponent = resolveComponent("LabelComponent");
182
- const _component_ButtonContainer = resolveComponent("ButtonContainer");
450
+ const _component_LabelWrapper = resolveComponent("LabelWrapper");
451
+ const _component_Dot = resolveComponent("Dot");
452
+ const _component_IconComponent = resolveComponent("IconComponent");
453
+ const _component_IconWrapper = resolveComponent("IconWrapper");
454
+ const _component_OverlayImage = resolveComponent("OverlayImage");
455
+ const _component_TextOverlay = resolveComponent("TextOverlay");
456
+ const _component_TextWrapper = resolveComponent("TextWrapper");
183
457
  const _component_PageContainer = resolveComponent("PageContainer");
184
- return openBlock(), createBlock(_component_PageContainer, null, {
185
- default: withCtx(() => [createVNode(_component_ButtonContainer, {
186
- id: $props.id,
187
- "app-theme": $props.appTheme,
188
- "button-size": $props.buttonSize,
189
- "data-id": $props.dataId,
190
- "data-qa-id": $props.dataQaId,
191
- height: $props.height,
458
+ return openBlock(), createBlock(_component_PageContainer, {
459
+ ref: "container",
460
+ "data-test-id": "infoText_container",
461
+ type: $props.type,
462
+ onClick: _cache[0] || (_cache[0] = ($event) => {
463
+ ($setup.isMobile || $props.openTrigger === "onClick") && $setup.toggleInfo();
464
+ }),
465
+ onMouseenter: _cache[1] || (_cache[1] = ($event) => !$setup.isMobile && $props.openTrigger === "onHover" && $setup.showInfo()),
466
+ onMouseleave: _cache[2] || (_cache[2] = ($event) => !$setup.isMobile && $props.openTrigger === "onHover" && $setup.hideInfo())
467
+ }, {
468
+ default: withCtx(() => [createBaseVNode("div", _hoisted_1, [createVNode(_component_IconWrapper, {
469
+ "background-color": $props.backgroundColor,
470
+ "border-radius": $props.borderRadius,
471
+ "hovered-icon": $props.hoveredIcon,
472
+ "is-active": $props.isActive,
192
473
  "is-disabled": $props.isDisabled,
193
- "min-width": $props.minWidth,
194
- "no-wrap": $props.noWrap,
195
- type: $props.type,
196
- variant: $props.variant
474
+ padding: $props.padding
197
475
  }, {
198
- default: withCtx(() => [createVNode(_component_LabelComponent, {
199
- "has-icon": Boolean($props.icon)
476
+ default: withCtx(() => [!_ctx.$slots.trigger ? (openBlock(), createElementBlock(Fragment, {
477
+ key: 0
478
+ }, [$props.labelText && $props.labelAlign === "left" ? (openBlock(), createBlock(_component_LabelWrapper, {
479
+ key: 0,
480
+ color: $props.iconColor || $options.computedIconColor,
481
+ size: $props.labelSize
200
482
  }, {
201
- default: withCtx(() => [$props.icon ? (openBlock(), createBlock(_component_Icon, {
202
- key: 0,
203
- color: $options.getIconColor,
204
- "hovered-color": $options.getIconColor,
205
- name: $props.icon,
206
- size: "14px"
207
- }, null, 8, ["color", "hovered-color", "name"])) : createCommentVNode("", true), createTextVNode(" " + toDisplayString($props.text), 1)]),
483
+ default: withCtx(() => [createTextVNode(toDisplayString($props.labelText), 1)]),
484
+ _: 1
485
+ }, 8, ["color", "size"])) : createCommentVNode("", true), createTextVNode(), $props.type === "dot" ? (openBlock(), createBlock(_component_Dot, {
486
+ key: 1,
487
+ color: $props.dotColor,
488
+ "data-test-id": "infoText_dot"
489
+ }, null, 8, ["color"])) : !$props.noIcon ? (openBlock(), createBlock(_component_IconComponent, {
490
+ key: 2,
491
+ color: $props.iconColor || $options.computedIconColor,
492
+ cursor: $props.isDisabled ? "not-allowed" : "pointer",
493
+ disabled: $props.isDisabled,
494
+ "hovered-color": $props.iconColor || $options.computedIconColor,
495
+ name: $props.iconName,
496
+ size: $props.size
497
+ }, null, 8, ["color", "cursor", "disabled", "hovered-color", "name", "size"])) : createCommentVNode("", true), createTextVNode(), $props.labelText && $props.labelAlign === "right" ? (openBlock(), createBlock(_component_LabelWrapper, {
498
+ key: 3,
499
+ color: $props.iconColor || $options.computedIconColor,
500
+ size: $props.labelSize
501
+ }, {
502
+ default: withCtx(() => [createTextVNode(toDisplayString($props.labelText), 1)]),
208
503
  _: 1
209
- }, 8, ["has-icon"])]),
210
- _: 1
211
- }, 8, ["id", "app-theme", "button-size", "data-id", "data-qa-id", "height", "is-disabled", "min-width", "no-wrap", "type", "variant"])]),
212
- _: 1
213
- });
504
+ }, 8, ["color", "size"])) : createCommentVNode("", true)], 64)) : createCommentVNode("", true), createTextVNode(), renderSlot(_ctx.$slots, "trigger")]),
505
+ _: 3
506
+ }, 8, ["background-color", "border-radius", "hovered-icon", "is-active", "is-disabled", "padding"])], 512), createTextVNode(), $setup.isVisible && !!$props.text ? (openBlock(), createBlock(Teleport, {
507
+ key: 0,
508
+ to: "body"
509
+ }, [createVNode(_component_TextWrapper, {
510
+ "data-test-id": "info_text_wrapper",
511
+ style: normalizeStyle($setup.wrapperStyle)
512
+ }, {
513
+ default: withCtx(() => [createVNode(_component_TextOverlay, {
514
+ ref: "infoBox",
515
+ "app-theme": $props.appTheme,
516
+ image: $props.image,
517
+ style: normalizeStyle($setup.boxStyle),
518
+ width: $setup.infoBoxWidth
519
+ }, {
520
+ default: withCtx(() => [$props.image ? (openBlock(), createBlock(_component_OverlayImage, {
521
+ key: 0,
522
+ ref: "infoImage",
523
+ alt: "Info Image",
524
+ src: $props.image,
525
+ onLoad: $setup.onImageLoad
526
+ }, null, 8, ["src", "onLoad"])) : createCommentVNode("", true), createTextVNode(), !$props.hideInfoText ? (openBlock(), createElementBlock("span", {
527
+ key: 1,
528
+ ref: "textContent",
529
+ style: normalizeStyle($setup.textStyle)
530
+ }, [renderSlot(_ctx.$slots, "default", {}, () => [createBaseVNode("span", {
531
+ innerHTML: $props.text
532
+ }, null, 8, _hoisted_2)])], 4)) : createCommentVNode("", true)]),
533
+ _: 3
534
+ }, 8, ["app-theme", "image", "style", "width"]), createTextVNode()]),
535
+ _: 3
536
+ }, 8, ["style"])])) : createCommentVNode("", true)]),
537
+ _: 3
538
+ }, 8, ["type"]);
214
539
  }
215
- const RCButton = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
540
+ const InfoText = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
216
541
  export {
217
- RCButton as default
542
+ InfoText as default
218
543
  };