@eturnity/eturnity_reusable_components 8.31.6-EPDM-13620.1 → 8.31.6-dev-03-elisee-8.37.0

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.es22.js CHANGED
@@ -1,196 +1,543 @@
1
+ import "./main.es3.js";
2
+ import _sfc_main$1 from "./main.es25.js";
1
3
  import styled from "./main.es7.js";
2
- import _sfc_main$1 from "./main.es15.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, renderSlot } from "./main.es6.js";
7
- const StyledComponents = {
8
- ProgressionStepItem: styled.div`
9
- display: flex;
10
- flex-direction: row;
11
- align-items: center;
12
- `,
13
- BoxContainer: styled("div", {
14
- isActive: Boolean,
15
- isValid: Boolean,
16
- isError: Boolean,
17
- isWarning: Boolean,
18
- isDirty: Boolean,
19
- isDisabled: Boolean,
20
- size: String,
21
- borderRadius: String
22
- })`
23
- display: flex;
24
- justify-content: center;
25
- align-items: center;
26
- width: ${({
27
- size
28
- }) => size};
29
- height: ${({
30
- size
31
- }) => size};
32
- font-size: 16px;
33
- background-color: ${({
34
- theme: theme2,
35
- isValid,
36
- isActive,
37
- isError,
38
- isWarning,
39
- isDirty,
40
- isDisabled
41
- }) => {
42
- if (isDisabled)
43
- return theme2.semanticColors.grey[200];
44
- if (isError)
45
- return theme2.semanticColors.red[500];
46
- if (isWarning)
47
- return theme2.semanticColors.yellow[500];
48
- if (isActive) {
49
- return theme2.semanticColors.purple[500];
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.es24.js";
8
+ import { ref } from "./main.es16.js";
9
+ const TextOverlayAttrs = {
10
+ appTheme: String,
11
+ image: Boolean,
12
+ width: Number
13
+ };
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"};
17
+ border-radius: 4px;
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"};
24
+
25
+ a {
26
+ color: ${(props) => props.theme.colors.blue};
50
27
  }
51
- if (!isDirty)
52
- return theme2.semanticColors.grey[50];
53
- if (isValid)
54
- return theme2.semanticColors.purple[50];
55
- return theme2.semanticColors.grey[50];
56
- }};
57
- border: 1px solid;
58
- border-color: ${({
59
- theme: theme2,
60
- isValid,
61
- isActive,
62
- isError,
63
- isWarning,
64
- isDirty,
65
- isDisabled
66
- }) => {
67
- if (isDisabled)
68
- return theme2.semanticColors.grey[500];
69
- if (isError)
70
- return theme2.semanticColors.red[500];
71
- if (isWarning)
72
- return theme2.semanticColors.yellow[600];
73
- if (!isDirty)
74
- return theme2.semanticColors.grey[400];
75
- if (isActive)
76
- return theme2.semanticColors.purple[600];
77
- if (isValid)
78
- return theme2.semanticColors.purple[50];
79
- return theme2.semanticColors.grey[400];
80
- }};
81
- color: ${({
82
- theme: theme2,
83
- isValid,
84
- isActive
85
- }) => isActive ? theme2.colors.white : theme2.semanticColors.grey[800]};
86
- margin: 0;
87
- border-radius: ${({
88
- borderRadius
89
- }) => borderRadius};
90
- cursor: ${({
91
- isValid
92
- }) => isValid ? "pointer" : "default"};
93
- &:hover {
94
- ${({
95
- theme: theme2,
96
- isValid,
97
- isActive
98
- }) => isValid ? "background-color:" + theme2.semanticColors.purple[100] + ";" : ""}
99
- }
100
- `,
101
- NumberContainer: styled.div``
28
+
29
+ img + span {
30
+ margin-top: 10px;
31
+ display: block;
32
+ }
33
+ `;
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;
41
+ `;
42
+ const OverlayImage = styled("img")`
43
+ width: 100%;
44
+ height: auto;
45
+ `;
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
102
59
  };
60
+ const IconWrapper = styled("div", IconWrapperAttrs)`
61
+ display: flex;
62
+ align-items: center;
63
+ justify-content: center;
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};
85
+ `;
103
86
  const _sfc_main = {
104
- name: "StatusIndicator",
87
+ name: "InfoText",
105
88
  components: {
106
- ...StyledComponents,
107
- RcIcon: _sfc_main$1
89
+ IconComponent: _sfc_main$1,
90
+ TextOverlay,
91
+ // Arrow,
92
+ Dot,
93
+ PageContainer,
94
+ TextWrapper,
95
+ OverlayImage,
96
+ IconWrapper,
97
+ LabelWrapper
108
98
  },
109
99
  props: {
110
- isError: {
111
- type: Boolean,
112
- default: false
100
+ text: {
101
+ required: false,
102
+ default: "",
103
+ type: String
113
104
  },
114
- isWarning: {
115
- type: Boolean,
116
- default: false
105
+ isActive: {
106
+ required: false,
107
+ default: false,
108
+ type: Boolean
117
109
  },
118
- isDirty: {
119
- type: Boolean,
120
- default: false
110
+ labelText: {
111
+ required: false,
112
+ default: "",
113
+ type: String
114
+ },
115
+ size: {
116
+ type: String,
117
+ default: "14px"
118
+ },
119
+ infoPosition: {
120
+ required: false,
121
+ default: null,
122
+ type: String
123
+ },
124
+ maxWidth: {
125
+ default: "400px",
126
+ type: String
127
+ },
128
+ openTrigger: {
129
+ type: String,
130
+ default: "onHover",
131
+ validator: (value) => ["onHover", "onClick"].includes(value)
132
+ },
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,
148
+ default: null,
149
+ required: false
121
150
  },
122
151
  isDisabled: {
123
152
  type: Boolean,
124
- default: false
153
+ default: false,
154
+ required: false
125
155
  },
126
- isActive: {
127
- type: Boolean,
128
- default: false
156
+ dotColor: {
157
+ type: String,
158
+ required: false,
159
+ default: theme.semanticColors.blue[400]
129
160
  },
130
- size: {
161
+ type: {
162
+ type: String,
163
+ required: false,
164
+ default: "info"
165
+ // info, dot
166
+ },
167
+ appTheme: {
168
+ type: String,
169
+ default: "light",
170
+ // light or dark
171
+ required: false
172
+ },
173
+ labelAlign: {
174
+ type: String,
175
+ default: "right",
176
+ required: false
177
+ },
178
+ backgroundColor: {
131
179
  type: String,
132
- default: "20px"
180
+ default: "",
181
+ required: false
182
+ },
183
+ contentBackgroundColor: {
184
+ type: String,
185
+ default: "",
186
+ required: false
133
187
  },
134
188
  borderRadius: {
135
189
  type: String,
136
- default: "50%"
190
+ default: "",
191
+ required: false
192
+ },
193
+ padding: {
194
+ type: String,
195
+ default: "",
196
+ required: false
197
+ },
198
+ labelSize: {
199
+ type: String,
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,
216
+ required: false
137
217
  }
138
218
  },
139
- data() {
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 = !props.hideInfoText;
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
+ });
140
418
  return {
141
- theme
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
142
436
  };
143
437
  },
144
438
  computed: {
145
- isValid() {
146
- return this.isDirty && !this.isError && !this.isWarning;
439
+ computedIconColor() {
440
+ return this.buttonType === "error" ? theme.colors.red : theme.colors.mediumGray;
147
441
  }
148
442
  }
149
443
  };
444
+ const _hoisted_1 = {
445
+ ref: "icon",
446
+ "data-test-id": "infoText_trigger"
447
+ };
448
+ const _hoisted_2 = ["innerHTML"];
150
449
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
151
- const _component_RcIcon = resolveComponent("RcIcon");
152
- const _component_NumberContainer = resolveComponent("NumberContainer");
153
- const _component_BoxContainer = resolveComponent("BoxContainer");
154
- return openBlock(), createBlock(_component_BoxContainer, {
155
- "border-radius": $props.borderRadius,
156
- "is-active": $props.isActive,
157
- "is-dirty": $props.isDirty,
158
- "is-disabled": $props.isDisabled,
159
- "is-error": $props.isError,
160
- "is-valid": $options.isValid,
161
- "is-warning": $props.isWarning,
162
- size: $props.size
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");
457
+ const _component_PageContainer = resolveComponent("PageContainer");
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())
163
467
  }, {
164
- default: withCtx(() => [$options.isValid ? (openBlock(), createBlock(_component_RcIcon, {
165
- key: 0,
166
- color: $data.theme.semanticColors.purple[500],
167
- "hovered-color": $data.theme.semanticColors.purple[500],
168
- name: "checkmark_thin",
169
- size: "16px"
170
- }, null, 8, ["color", "hovered-color"])) : $props.isError ? (openBlock(), createBlock(_component_RcIcon, {
171
- key: 1,
172
- color: $data.theme.colors.white,
173
- "hovered-color": $data.theme.colors.white,
174
- name: "cross",
175
- size: "10x"
176
- }, null, 8, ["color", "hovered-color"])) : $props.isWarning ? (openBlock(), createBlock(_component_RcIcon, {
177
- key: 2,
178
- color: $data.theme.colors.white,
179
- "hovered-color": $data.theme.colors.white,
180
- name: "warning_triangle",
181
- size: "10px"
182
- }, null, 8, ["color", "hovered-color"])) : (openBlock(), createBlock(_component_NumberContainer, {
183
- key: 3,
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,
184
472
  "is-active": $props.isActive,
185
- "is-valid": $options.isValid
473
+ "is-disabled": $props.isDisabled,
474
+ padding: $props.padding
475
+ }, {
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
482
+ }, {
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)]),
503
+ _: 1
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(), !$props.hideInfoText && $setup.isVisible && (!!$props.text || _ctx.$slots.default) ? (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)
186
512
  }, {
187
- default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
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()]),
188
535
  _: 3
189
- }, 8, ["is-active", "is-valid"]))]),
536
+ }, 8, ["style"])])) : createCommentVNode("", true)]),
190
537
  _: 3
191
- }, 8, ["border-radius", "is-active", "is-dirty", "is-disabled", "is-error", "is-valid", "is-warning", "size"]);
538
+ }, 8, ["type"]);
192
539
  }
193
- const StatusIndicator = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
540
+ const InfoText = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
194
541
  export {
195
- StatusIndicator as default
542
+ InfoText as default
196
543
  };