@eturnity/eturnity_reusable_components 8.31.6-dev-03-elisee-8.37.0 → 8.31.6-dev-03-elisee-8.37.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.es25.js CHANGED
@@ -1,252 +1,543 @@
1
1
  import "./main.es3.js";
2
+ import _sfc_main$1 from "./main.es17.js";
2
3
  import styled from "./main.es7.js";
3
- import { fetchIcon } from "./main.es27.js";
4
- import { reactive } from "./main.es16.js";
5
- import { computed, onMounted, watch, openBlock, createBlock, withCtx, createVNode, createElementVNode as createBaseVNode, createTextVNode, createCommentVNode } from "./main.es6.js";
6
- import { toDisplayString } from "./main.es24.js";
7
- const _hoisted_1 = ["innerHTML"];
4
+ import theme from "./main.es8.js";
5
+ import _export_sfc from "./main.es11.js";
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
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};
27
+ }
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
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
+ `;
8
86
  const _sfc_main = {
9
- __name: "index",
87
+ name: "InfoText",
88
+ components: {
89
+ IconComponent: _sfc_main$1,
90
+ TextOverlay,
91
+ // Arrow,
92
+ Dot,
93
+ PageContainer,
94
+ TextWrapper,
95
+ OverlayImage,
96
+ IconWrapper,
97
+ LabelWrapper
98
+ },
10
99
  props: {
11
- disabled: {
100
+ text: {
101
+ required: false,
102
+ default: "",
103
+ type: String
104
+ },
105
+ isActive: {
12
106
  required: false,
13
107
  default: false,
14
108
  type: Boolean
15
109
  },
16
- name: {
17
- required: true,
18
- type: String
19
- },
20
- color: {
110
+ labelText: {
21
111
  required: false,
22
- default: null,
112
+ default: "",
23
113
  type: String
24
114
  },
25
- hoveredColor: {
115
+ size: {
116
+ type: String,
117
+ default: "14px"
118
+ },
119
+ infoPosition: {
26
120
  required: false,
27
121
  default: null,
28
122
  type: String
29
123
  },
30
- size: {
31
- required: false,
32
- default: "30px",
124
+ maxWidth: {
125
+ default: "400px",
33
126
  type: String
34
127
  },
35
- width: {
128
+ openTrigger: {
36
129
  type: String,
37
- required: false,
38
- default: ""
130
+ default: "onHover",
131
+ validator: (value) => ["onHover", "onClick"].includes(value)
39
132
  },
40
- height: {
133
+ buttonType: {
134
+ type: String,
135
+ default: "regular",
136
+ validator: (value) => ["regular", "error"].includes(value)
137
+ },
138
+ image: {
41
139
  type: String,
42
- required: false,
43
140
  default: ""
44
141
  },
45
- cursor: {
46
- required: false,
142
+ iconName: {
143
+ type: String,
144
+ default: "info"
145
+ },
146
+ iconColor: {
147
+ type: String,
47
148
  default: null,
48
- type: String
149
+ required: false
49
150
  },
50
- isStriked: {
51
- required: false,
151
+ isDisabled: {
152
+ type: Boolean,
52
153
  default: false,
53
- type: Boolean
154
+ required: false
54
155
  },
55
- backgroundColor: {
156
+ dotColor: {
157
+ type: String,
56
158
  required: false,
57
- default: null,
58
- type: String
159
+ default: theme.semanticColors.blue[400]
59
160
  },
60
- count: {
161
+ type: {
162
+ type: String,
61
163
  required: false,
62
- default: 0,
63
- type: Number
164
+ default: "info"
165
+ // info, dot
64
166
  },
65
- animation: {
66
- required: false,
67
- default: "none",
68
- type: String
167
+ appTheme: {
168
+ type: String,
169
+ default: "light",
170
+ // light or dark
171
+ required: false
69
172
  },
70
- fillType: {
71
- required: false,
72
- default: "fill",
73
- type: String
173
+ labelAlign: {
174
+ type: String,
175
+ default: "right",
176
+ required: false
177
+ },
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: {
194
+ type: String,
195
+ default: "",
196
+ required: false
74
197
  },
75
- disableHover: {
198
+ labelSize: {
199
+ type: String,
200
+ default: "12px",
201
+ required: false
202
+ },
203
+ noIcon: {
76
204
  type: Boolean,
77
- default: false
205
+ default: false,
206
+ required: false
78
207
  },
79
- showCount: {
208
+ hoveredIcon: {
80
209
  type: Boolean,
81
- default: false
210
+ default: false,
211
+ required: false
212
+ },
213
+ hideInfoText: {
214
+ type: Boolean,
215
+ default: false,
216
+ required: false
82
217
  }
83
218
  },
84
- setup(__props) {
85
- const props = __props;
86
- const Wrapper = styled("div", {
87
- height: String,
88
- width: String,
89
- disabled: Boolean,
90
- cursor: String
91
- })`
92
- display: flex;
93
- position: relative;
94
- align-content: center;
95
- justify-content: center;
96
- width: ${(props2) => props2.width};
97
- height: ${(props2) => props2.height};
98
- min-width: ${(props2) => props2.width};
99
- min-height: ${(props2) => props2.height};
100
- cursor: ${(props2) => props2.disabled ? "not-allowed" : props2.cursor};
101
- line-height: 0;
102
- `;
103
- const CountWrapper = styled("div")`
104
- position: absolute;
105
- top: -7px;
106
- right: -7px;
107
- background-color: ${({
108
- theme
109
- }) => theme.colors.red};
110
- color: ${({
111
- theme
112
- }) => theme.colors.white};
113
- border-radius: 100%;
114
- width: 15px;
115
- height: 15px;
116
- display: flex;
117
- justify-content: center;
118
- align-items: center;
119
- font-size: 10px;
120
- `;
121
- const StrikedLine = styled("div", {
122
- color: String
123
- })`
124
- display: flex;
125
- position: absolute;
126
- bottom: 0;
127
- left: 0;
128
- align-content: center;
129
- justify-content: center;
130
- width: 143%;
131
- height: 8%;
132
- background-color: ${({
133
- theme,
134
- color
135
- }) => theme.colors[color] || color};
136
- min-height: 0;
137
- line-height: 0;
138
- transform-origin: 0% 100%;
139
- transform: rotate(-45deg);
140
- `;
141
- const IconImageAttrs = {
142
- color: String,
143
- backgroundColor: String,
144
- hoveredColor: String,
145
- animation: String,
146
- fillType: String,
147
- disableHover: Boolean,
148
- showCount: Boolean
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
+ };
149
319
  };
150
- const IconImage = styled("div", IconImageAttrs)`
151
- animation: ${(props2) => props2.animation};
152
- width: 100%;
153
- svg {
154
- width: 100%;
155
- height: 100%;
156
- background-color: ${(props2) => props2.backgroundColor ? props2.backgroundColor : "transparent"};
157
- padding: ${(props2) => props2.backgroundColor ? "3px" : "0"};
158
- border-radius: ${(props2) => props2.showCount ? "8px 0 0 8px" : props2.backgroundColor ? "8px" : "0"};
159
- }
160
- svg path:not(.fix, .isStrokePath) {
161
- ${({
162
- theme,
163
- color,
164
- fillType
165
- }) => color && `${fillType}: ${theme.colors[color] || color};`}
166
- }
167
- svg .isStroke {
168
- ${({
169
- theme,
170
- color
171
- }) => color && `stroke: ${theme.colors[color] || color};`}
172
- }
173
- svg .isFill {
174
- ${({
175
- theme,
176
- color
177
- }) => color && `fill: ${theme.colors[color] || color};`}
178
- }
179
- svg .isStrokePath:not(.fix) {
180
- ${({
181
- theme,
182
- color
183
- }) => color && `stroke: ${theme.colors[color] || color};`}
184
- }
185
- ${(props2) => !props2.disableHover && `
186
- &:hover svg path:not(.fix, .isStrokePath) {
187
- ${`${props2.fillType}: ${props2.theme.colors[props2.hoveredColor] || props2.color};`}
188
- &:hover svg isStrokePath:not(.fix) {
189
- ${`stroke: ${props2.theme.colors[props2.hoveredColor] || props2.color};`}
190
- }
191
- &:hover + div {
192
- background-color: ${props2.hoveredColor};
193
- }
194
- `}
195
-
196
- @keyframes fade {
197
- 50% {
198
- opacity: 0.3;
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();
199
336
  }
200
- }
201
- `;
202
- const icon = reactive({
203
- html: ""
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);
204
404
  });
205
- const loadSvg = async () => {
206
- icon.html = await fetchIcon(props.name.toLowerCase());
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
207
436
  };
208
- const counter = computed(() => props.count > 9 ? "9+" : props.count.toString());
209
- onMounted(() => loadSvg());
210
- watch(() => props.name, loadSvg);
211
- return (_ctx, _cache) => {
212
- return openBlock(), createBlock(Wrapper, {
213
- cursor: __props.cursor,
214
- "data-test-id": "icon_wrapper",
215
- disabled: __props.disabled,
216
- height: __props.height ? __props.height : __props.size,
217
- width: __props.width ? __props.width : __props.size
437
+ },
438
+ computed: {
439
+ computedIconColor() {
440
+ return this.buttonType === "error" ? theme.colors.red : theme.colors.mediumGray;
441
+ }
442
+ }
443
+ };
444
+ const _hoisted_1 = {
445
+ ref: "icon",
446
+ "data-test-id": "infoText_trigger"
447
+ };
448
+ const _hoisted_2 = ["innerHTML"];
449
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
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())
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,
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
218
482
  }, {
219
- default: withCtx(() => [createVNode(IconImage, {
220
- animation: __props.animation,
221
- "background-color": __props.backgroundColor,
222
- color: __props.color,
223
- "data-test-id": "icon_image",
224
- "disable-hover": __props.disableHover,
225
- "fill-type": __props.fillType,
226
- "hovered-color": __props.hoveredColor,
227
- "show-count": __props.showCount
228
- }, {
229
- default: withCtx(() => [createBaseVNode("i", {
230
- "data-test-id": "icon_svg",
231
- innerHTML: icon.html
232
- }, null, 8, _hoisted_1)]),
233
- _: 1
234
- }, 8, ["animation", "background-color", "color", "disable-hover", "fill-type", "hovered-color", "show-count"]), createTextVNode(), __props.isStriked ? (openBlock(), createBlock(StrikedLine, {
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)
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, {
235
521
  key: 0,
236
- color: __props.color,
237
- "data-test-id": "icon_striked_line"
238
- }, null, 8, ["color"])) : createCommentVNode("", true), createTextVNode(), __props.count > 0 ? (openBlock(), createBlock(CountWrapper, {
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", {
239
527
  key: 1,
240
- "data-test-id": "icon_count"
241
- }, {
242
- default: withCtx(() => [createTextVNode(toDisplayString(counter.value), 1)]),
243
- _: 1
244
- })) : createCommentVNode("", true)]),
245
- _: 1
246
- }, 8, ["cursor", "disabled", "height", "width"]);
247
- };
248
- }
249
- };
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"]);
539
+ }
540
+ const InfoText = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
250
541
  export {
251
- _sfc_main as default
542
+ InfoText as default
252
543
  };