@weni/unnnic-system 3.11.1-alpha.2 → 3.11.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 (190) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/components/Alert/Alert.vue.d.ts +3 -3
  3. package/dist/components/Alert/Version1dot1.vue.d.ts +1 -1
  4. package/dist/components/AudioRecorder/AudioHandler.vue.d.ts +18 -109
  5. package/dist/components/AudioRecorder/AudioRecorder.vue.d.ts +36 -218
  6. package/dist/components/AvatarIcon/AvatarIcon.vue.d.ts +1 -1
  7. package/dist/components/Button/Button.vue.d.ts +2 -2
  8. package/dist/components/Card/AccountCard.vue.d.ts +2 -2
  9. package/dist/components/Card/Card.vue.d.ts +29 -120
  10. package/dist/components/Card/CardCompany.vue.d.ts +2 -2
  11. package/dist/components/Card/CardStatusesContainer.vue.d.ts +19 -110
  12. package/dist/components/Card/ContentCard.vue.d.ts +1 -1
  13. package/dist/components/Card/DashCard.vue.d.ts +2 -2
  14. package/dist/components/Card/DefaultCard.vue.d.ts +1 -1
  15. package/dist/components/Card/MarketplaceCard.vue.d.ts +1 -1
  16. package/dist/components/Card/SimpleCard.vue.d.ts +18 -109
  17. package/dist/components/Card/StatusCard.vue.d.ts +1 -1
  18. package/dist/components/Card/TitleCard.vue.d.ts +18 -109
  19. package/dist/components/CardImage/CardImage.vue.d.ts +5 -5
  20. package/dist/components/CardInformation/CardInformation.vue.d.ts +19 -110
  21. package/dist/components/CardProject/CardProject.vue.d.ts +2 -2
  22. package/dist/components/Carousel/Carousel.vue.d.ts +2 -2
  23. package/dist/components/Carousel/TagCarousel.vue.d.ts +2 -2
  24. package/dist/components/ChartBar/ChartBar.vue.d.ts +24 -115
  25. package/dist/components/ChartLine/ChartLine.vue.d.ts +18 -109
  26. package/dist/components/ChatText/ChatText.vue.d.ts +18 -109
  27. package/dist/components/ChatsContact/ChatsContact.vue.d.ts +6 -6
  28. package/dist/components/ChatsMessage/ChatsMessage.vue.d.ts +18 -109
  29. package/dist/components/ChatsUserAvatar/ChatsUserAvatar.vue.d.ts +1 -1
  30. package/dist/components/Checkbox/Checkbox.vue.d.ts +3 -3
  31. package/dist/components/DataArea/DataArea.vue.d.ts +18 -109
  32. package/dist/components/DataTable/index.vue.d.ts +1 -1
  33. package/dist/components/DataTable/index.vue.d.ts.map +1 -1
  34. package/dist/components/DateFilter/DateFilter.vue.d.ts +10 -10
  35. package/dist/components/DatePicker/DatePicker.vue.d.ts +69 -249
  36. package/dist/components/DatePicker/DatePicker.vue.d.ts.map +1 -1
  37. package/dist/components/Drawer/Drawer.vue.d.ts +207 -35
  38. package/dist/components/Drawer/Drawer.vue.d.ts.map +1 -1
  39. package/dist/components/Dropdown/Dropdown.vue.d.ts +1 -1
  40. package/dist/components/FormElement/FormElement.vue.d.ts +4 -4
  41. package/dist/components/ImportCard/ImportCard.vue.d.ts +6 -6
  42. package/dist/components/Input/Input.vue.d.ts +9 -9
  43. package/dist/components/Input/TextInput.vue.d.ts +2 -2
  44. package/dist/components/InputDatePicker/InputDatePicker.vue.d.ts +47 -911
  45. package/dist/components/InputDatePicker/InputDatePicker.vue.d.ts.map +1 -1
  46. package/dist/components/InputNext/InputNext.vue.d.ts +3 -3
  47. package/dist/components/Modal/Modal.vue.d.ts +1 -1
  48. package/dist/components/ModalDialog/ModalDialog.vue.d.ts +35 -209
  49. package/dist/components/ModalDialog/ModalDialog.vue.d.ts.map +1 -1
  50. package/dist/components/ModalNext/ModalNext.vue.d.ts +15 -15
  51. package/dist/components/ModalUpload/ModalUpload.vue.d.ts +12 -12
  52. package/dist/components/MoodRating/MoodRating.vue.d.ts +18 -109
  53. package/dist/components/MultiSelect/MultiSelect.vue.d.ts +18 -18
  54. package/dist/components/Pagination/Pagination.vue.d.ts +6 -6
  55. package/dist/components/Radio/Radio.vue.d.ts +6 -6
  56. package/dist/components/Select/SelectItem.vue.d.ts +1 -1
  57. package/dist/components/SelectSmart/SelectSmart.vue.d.ts +12 -12
  58. package/dist/components/SelectSmart/SelectSmartMultipleHeader.vue.d.ts +2 -2
  59. package/dist/components/SelectSmart/SelectSmartOption.vue.d.ts +6 -6
  60. package/dist/components/SelectTime/index.vue.d.ts +3 -3
  61. package/dist/components/Sidebar/SidebarItem.vue.d.ts +2 -2
  62. package/dist/components/Slider/Slider.vue.d.ts +18 -109
  63. package/dist/components/Switch/Switch.vue.d.ts +2 -2
  64. package/dist/components/Tab/Tab.vue.d.ts +18 -109
  65. package/dist/components/TableNext/TableBodyCell.vue.d.ts +2 -2
  66. package/dist/components/TableNext/TablePagination.vue.d.ts +6 -6
  67. package/dist/components/Tag/DefaultTag.vue.d.ts +1 -1
  68. package/dist/components/Tag/Tag.vue.d.ts +2 -2
  69. package/dist/components/TextArea/TextArea.vue.d.ts +5 -5
  70. package/dist/components/Toast/Toast.vue.d.ts +1 -1
  71. package/dist/components/ToolTip/ToolTip.vue.d.ts +18 -109
  72. package/dist/components/ToolTip/ToolTip.vue.d.ts.map +1 -1
  73. package/dist/components/Tour/Tour.vue.d.ts +6 -6
  74. package/dist/components/Tour/TourPopover.vue.d.ts +6 -6
  75. package/dist/components/UploadArea/UploadArea.vue.d.ts +6 -6
  76. package/dist/components/ui/popover/PopoverContent.vue.d.ts +2 -2
  77. package/dist/components/ui/popover/PopoverContent.vue.d.ts.map +1 -1
  78. package/dist/components/ui/tabs/TabsTrigger.vue.d.ts.map +1 -1
  79. package/dist/{es-2f0d1dd1.mjs → es-042a0d15.mjs} +1 -1
  80. package/dist/{index-7d496127.mjs → index-fd0ea6b9.mjs} +51896 -54819
  81. package/dist/{pt-br-ec24bd23.mjs → pt-br-3b7cced5.mjs} +1 -1
  82. package/dist/style.css +1 -1
  83. package/dist/unnnic.mjs +196 -232
  84. package/dist/unnnic.umd.js +46 -50
  85. package/package.json +1 -2
  86. package/src/assets/scss/tailwind.scss +0 -8
  87. package/src/components/DatePicker/DatePicker.vue +628 -516
  88. package/src/components/DatePicker/__tests__/DatePicker.spec.js +227 -0
  89. package/src/components/Drawer/Drawer.vue +270 -177
  90. package/src/components/Drawer/__tests__/Drawer.spec.js +43 -32
  91. package/src/components/Drawer/__tests__/__snapshots__/Drawer.spec.js.snap +19 -18
  92. package/src/components/InputDatePicker/InputDatePicker.vue +149 -183
  93. package/src/components/InputDatePicker/__test__/InputDatePicker.spec.js +159 -0
  94. package/src/components/ModalDialog/ModalDialog.vue +148 -62
  95. package/src/components/ModalDialog/__tests__/ModalDialog.spec.js +221 -11
  96. package/src/components/ModalDialog/__tests__/__snapshots__/ModalDialog.spec.js.snap +22 -1
  97. package/src/components/Tab/__test__/__snapshots__/Tab.spec.js.snap +1 -3
  98. package/src/components/ToolTip/ToolTip.vue +188 -41
  99. package/src/components/ToolTip/__tests__/ToolTip.spec.js +61 -345
  100. package/src/components/index.ts +12 -86
  101. package/src/components/ui/tabs/TabsTrigger.vue +20 -4
  102. package/src/stories/DatePicker.stories.js +71 -0
  103. package/src/stories/Drawer.stories.js +1 -1
  104. package/src/stories/InputDatePicker.stories.js +22 -0
  105. package/src/stories/ModalDialog.mdx +0 -3
  106. package/src/stories/ModalDialog.stories.js +1 -1
  107. package/src/stories/Tabs.stories.js +1 -1
  108. package/dist/components/index.d.ts +0 -25946
  109. package/dist/components/index.d.ts.map +0 -1
  110. package/dist/components/ui/dialog/Dialog.vue.d.ts +0 -23
  111. package/dist/components/ui/dialog/Dialog.vue.d.ts.map +0 -1
  112. package/dist/components/ui/dialog/DialogClose.vue.d.ts +0 -19
  113. package/dist/components/ui/dialog/DialogClose.vue.d.ts.map +0 -1
  114. package/dist/components/ui/dialog/DialogContent.vue.d.ts +0 -43
  115. package/dist/components/ui/dialog/DialogContent.vue.d.ts.map +0 -1
  116. package/dist/components/ui/dialog/DialogFooter.vue.d.ts +0 -25
  117. package/dist/components/ui/dialog/DialogFooter.vue.d.ts.map +0 -1
  118. package/dist/components/ui/dialog/DialogHeader.vue.d.ts +0 -29
  119. package/dist/components/ui/dialog/DialogHeader.vue.d.ts.map +0 -1
  120. package/dist/components/ui/dialog/DialogTitle.vue.d.ts +0 -23
  121. package/dist/components/ui/dialog/DialogTitle.vue.d.ts.map +0 -1
  122. package/dist/components/ui/dialog/DialogTrigger.vue.d.ts +0 -19
  123. package/dist/components/ui/dialog/DialogTrigger.vue.d.ts.map +0 -1
  124. package/dist/components/ui/dialog/index.d.ts +0 -8
  125. package/dist/components/ui/dialog/index.d.ts.map +0 -1
  126. package/dist/components/ui/drawer/Drawer.vue.d.ts +0 -35
  127. package/dist/components/ui/drawer/Drawer.vue.d.ts.map +0 -1
  128. package/dist/components/ui/drawer/DrawerClose.vue.d.ts +0 -19
  129. package/dist/components/ui/drawer/DrawerClose.vue.d.ts.map +0 -1
  130. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +0 -42
  131. package/dist/components/ui/drawer/DrawerContent.vue.d.ts.map +0 -1
  132. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +0 -23
  133. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts.map +0 -1
  134. package/dist/components/ui/drawer/DrawerFooter.vue.d.ts +0 -22
  135. package/dist/components/ui/drawer/DrawerFooter.vue.d.ts.map +0 -1
  136. package/dist/components/ui/drawer/DrawerHeader.vue.d.ts +0 -25
  137. package/dist/components/ui/drawer/DrawerHeader.vue.d.ts.map +0 -1
  138. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +0 -8
  139. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts.map +0 -1
  140. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +0 -23
  141. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts.map +0 -1
  142. package/dist/components/ui/drawer/DrawerTrigger.vue.d.ts +0 -19
  143. package/dist/components/ui/drawer/DrawerTrigger.vue.d.ts.map +0 -1
  144. package/dist/components/ui/drawer/index.d.ts +0 -11
  145. package/dist/components/ui/drawer/index.d.ts.map +0 -1
  146. package/dist/components/ui/segmented-control/SegmentedControlList.vue.d.ts +0 -26
  147. package/dist/components/ui/segmented-control/SegmentedControlList.vue.d.ts.map +0 -1
  148. package/dist/components/ui/segmented-control/SegmentedControlTrigger.vue.d.ts +0 -24
  149. package/dist/components/ui/segmented-control/SegmentedControlTrigger.vue.d.ts.map +0 -1
  150. package/dist/components/ui/segmented-control/index.d.ts +0 -5
  151. package/dist/components/ui/segmented-control/index.d.ts.map +0 -1
  152. package/dist/components/ui/tooltip/Tooltip.vue.d.ts +0 -23
  153. package/dist/components/ui/tooltip/Tooltip.vue.d.ts.map +0 -1
  154. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +0 -31
  155. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts.map +0 -1
  156. package/dist/components/ui/tooltip/TooltipProvider.vue.d.ts +0 -19
  157. package/dist/components/ui/tooltip/TooltipProvider.vue.d.ts.map +0 -1
  158. package/dist/components/ui/tooltip/TooltipTrigger.vue.d.ts +0 -19
  159. package/dist/components/ui/tooltip/TooltipTrigger.vue.d.ts.map +0 -1
  160. package/dist/components/ui/tooltip/index.d.ts +0 -5
  161. package/dist/components/ui/tooltip/index.d.ts.map +0 -1
  162. package/src/components/ui/dialog/Dialog.vue +0 -15
  163. package/src/components/ui/dialog/DialogClose.vue +0 -25
  164. package/src/components/ui/dialog/DialogContent.vue +0 -133
  165. package/src/components/ui/dialog/DialogFooter.vue +0 -46
  166. package/src/components/ui/dialog/DialogHeader.vue +0 -79
  167. package/src/components/ui/dialog/DialogTitle.vue +0 -34
  168. package/src/components/ui/dialog/DialogTrigger.vue +0 -12
  169. package/src/components/ui/dialog/index.ts +0 -7
  170. package/src/components/ui/drawer/Drawer.vue +0 -27
  171. package/src/components/ui/drawer/DrawerClose.vue +0 -37
  172. package/src/components/ui/drawer/DrawerContent.vue +0 -102
  173. package/src/components/ui/drawer/DrawerDescription.vue +0 -40
  174. package/src/components/ui/drawer/DrawerFooter.vue +0 -38
  175. package/src/components/ui/drawer/DrawerHeader.vue +0 -57
  176. package/src/components/ui/drawer/DrawerOverlay.vue +0 -34
  177. package/src/components/ui/drawer/DrawerTitle.vue +0 -37
  178. package/src/components/ui/drawer/DrawerTrigger.vue +0 -31
  179. package/src/components/ui/drawer/index.ts +0 -10
  180. package/src/components/ui/segmented-control/SegmentedControlList.vue +0 -51
  181. package/src/components/ui/segmented-control/SegmentedControlTrigger.vue +0 -81
  182. package/src/components/ui/segmented-control/index.ts +0 -4
  183. package/src/components/ui/tooltip/Tooltip.vue +0 -15
  184. package/src/components/ui/tooltip/TooltipContent.vue +0 -73
  185. package/src/components/ui/tooltip/TooltipProvider.vue +0 -15
  186. package/src/components/ui/tooltip/TooltipTrigger.vue +0 -22
  187. package/src/components/ui/tooltip/index.ts +0 -4
  188. package/src/stories/Dialog.stories.js +0 -832
  189. package/src/stories/DrawerNext.stories.js +0 -610
  190. package/src/stories/SegmentedControl.stories.js +0 -253
@@ -1,3 +1,24 @@
1
1
  // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
2
 
3
- exports[`ModalDialog.vue > Elements rendering > matches the snapshot 1`] = `"<unnnic-dialog-content-stub data-v-68ebadeb="" forcemount="false" disableoutsidepointerevents="false" aschild="false" parentclass="unnnic-modal-dialog," class="unnnic-modal-dialog__container" size="medium" data-testid="modal-dialog"></unnnic-dialog-content-stub>"`;
3
+ exports[`ModalDialog.vue > Elements rendering > matches the snapshot 1`] = `
4
+ "<section data-v-68ebadeb="" class="unnnic-modal-dialog" data-testid="modal-dialog">
5
+ <section data-v-68ebadeb="" class="unnnic-modal-dialog__overlay" data-testid="modal-overlay"></section>
6
+ <section data-v-68ebadeb="" class="unnnic-modal-dialog__container unnnic-modal-dialog__container--md" data-testid="modal-container">
7
+ <!--v-if-->
8
+ <section data-v-68ebadeb="" class="unnnic-modal-dialog__container__body">
9
+ <header data-v-68ebadeb="" class="unnnic-modal-dialog__container__header">
10
+ <section data-v-68ebadeb="" class="unnnic-modal-dialog__container__title-container">
11
+ <unnnic-icon-stub data-v-68ebadeb="" filled="false" icon="test-icon" clickable="false" size="md" scheme="neutral-darkest" data-testid="title-icon" class="unnnic-modal-dialog__container__title-icon"></unnnic-icon-stub>
12
+ <h1 data-v-68ebadeb="" class="unnnic-modal-dialog__container__title-text" data-testid="title-text">Test Title</h1>
13
+ </section>
14
+ <unnnic-icon-stub data-v-68ebadeb="" filled="false" icon="close" clickable="true" size="md" scheme="neutral-cloudy" data-testid="close-icon"></unnnic-icon-stub>
15
+ </header>
16
+ <section data-v-68ebadeb="" class="unnnic-modal-dialog__container__content"></section>
17
+ <section data-v-68ebadeb="" data-testid="actions-section" class="unnnic-modal-dialog__container__actions">
18
+ <unnnic-button-stub data-v-68ebadeb="" size="large" text="Cancel" type="tertiary" float="false" iconleft="" iconright="" iconcenter="" iconsfilled="false" disabled="false" loading="false" data-testid="secondary-button" class="unnnic-modal-dialog__container__actions__secondary-button"></unnnic-button-stub>
19
+ <unnnic-button-stub data-v-68ebadeb="" size="large" text="Confirm" type="primary" float="false" iconleft="" iconright="" iconcenter="" iconsfilled="false" disabled="false" loading="false" data-testid="primary-button" class="unnnic-modal-dialog__container__actions__primary-button"></unnnic-button-stub>
20
+ </section>
21
+ </section>
22
+ </section>
23
+ </section>"
24
+ `;
@@ -4,9 +4,7 @@ exports[`Tab.vue > matches the snapshot 1`] = `
4
4
  "<div data-v-b4e39fac="" class="tab size-md">
5
5
  <header data-v-b4e39fac="" class="tab-header">
6
6
  <ul data-v-b4e39fac="" class="tab-content">
7
- <li data-v-b4e39fac="" class="tab-head">tab1<div data-v-b3d24f2b="" class="unnnic-tooltip-trigger" data-testid="tooltip-trigger" data-state="closed" data-grace-area-trigger=""><span data-v-26446d8e="" data-v-b4e39fac="" class="material-symbols-rounded unnnic-icon-scheme--neutral-cleanest unnnic-icon-size--sm material-symbols-rounded--filled" data-testid="material-icon" translate="no">info</span></div>
8
- <!--teleport start-->
9
- <!--teleport end-->
7
+ <li data-v-b4e39fac="" class="tab-head">tab1<div data-v-bf0cf546="" data-v-b4e39fac="" class="unnnic-tooltip"><span data-v-26446d8e="" data-v-b4e39fac="" class="unnnic-icon material-symbols-rounded unnnic-icon-scheme--fg-base unnnic-icon-size--sm unnnic-icon__size--sm" data-testid="material-icon" translate="no">help</span><span data-v-bf0cf546="" class="unnnic-tooltip-label unnnic-tooltip-label-bottom" data-testid="tooltip-label" style="left: 0px; top: 8px;">Tooltip text <br data-v-bf0cf546=""><!--v-if--></span></div>
10
8
  </li>
11
9
  <li data-v-b4e39fac="" class="tab-head tab-head--active">tab2
12
10
  <!--v-if-->
@@ -1,53 +1,48 @@
1
1
  <template>
2
- <TooltipProvider>
3
- <Tooltip
4
- :disabled="!(enabled || forceOpen)"
5
- :open="forceOpen || undefined"
6
- data-testid="tooltip-wrapper"
2
+ <div
3
+ ref="tooltip"
4
+ :class="{
5
+ 'unnnic-tooltip': enabled || forceOpen,
6
+ 'force-open': forceOpen,
7
+ }"
8
+ @mouseover="handleResize"
9
+ >
10
+ <slot />
11
+ <span
12
+ v-show="enabled || forceOpen"
13
+ ref="label"
14
+ :class="['unnnic-tooltip-label', `unnnic-tooltip-label-${side}`]"
15
+ :style="{ maxWidth: maxWidth, left: leftPos, top: topPos }"
16
+ data-testid="tooltip-label"
7
17
  >
8
- <TooltipTrigger data-testid="tooltip-trigger">
9
- <slot />
10
- </TooltipTrigger>
11
-
12
- <TooltipContent
13
- :class="['unnnic-tooltip-label', `unnnic-tooltip-label-${side}`]"
14
- :style="{ maxWidth: maxWidth }"
15
- :side="side"
16
- data-testid="tooltip-content"
18
+ <template v-if="enableHtml">
19
+ <!-- eslint-disable-next-line vue/no-v-html -->
20
+ <section v-html="text"></section>
21
+ </template>
22
+ <template
23
+ v-for="(line, index) in text.split('\n')"
24
+ v-else
25
+ :key="index"
17
26
  >
18
- <template v-if="enableHtml">
19
- <!-- eslint-disable-next-line vue/no-v-html -->
20
- <section
21
- v-html="text"
22
- data-testid="tooltip-html-content"
23
- ></section>
24
- </template>
25
- <template
26
- v-for="(line, index) in text.split('\n')"
27
- v-else
28
- :key="index"
27
+ {{ line }}
28
+ <br />
29
+ </template>
30
+
31
+ <template v-if="shortcutText">
32
+ <span
33
+ class="unnnic-tooltip-label-shortcut"
34
+ data-testid="tooltip-label-shortcut"
29
35
  >
30
- {{ line }}
31
- <br />
32
- </template>
33
- </TooltipContent>
34
- </Tooltip>
35
- </TooltipProvider>
36
+ {{ shortcutText }}
37
+ </span>
38
+ </template>
39
+ </span>
40
+ </div>
36
41
  </template>
37
42
 
38
43
  <script>
39
- import { Tooltip, TooltipProvider } from '../ui/tooltip';
40
- import TooltipContent from '../ui/tooltip/TooltipContent.vue';
41
- import TooltipTrigger from '../ui/tooltip/TooltipTrigger.vue';
42
-
43
44
  export default {
44
45
  name: 'UnnnicTooltip',
45
- components: {
46
- Tooltip,
47
- TooltipProvider,
48
- TooltipTrigger,
49
- TooltipContent,
50
- },
51
46
  props: {
52
47
  text: {
53
48
  type: String,
@@ -72,10 +67,162 @@ export default {
72
67
  type: String,
73
68
  default: '',
74
69
  },
70
+ shortcutText: {
71
+ type: String,
72
+ default: null,
73
+ },
75
74
  enableHtml: {
76
75
  type: Boolean,
77
76
  default: false,
78
77
  },
79
78
  },
79
+ data() {
80
+ return {
81
+ topPos: null,
82
+ leftPos: null,
83
+ };
84
+ },
85
+ watch: {
86
+ side() {
87
+ this.getRightPost(this.$refs.tooltip);
88
+ },
89
+ },
90
+ mounted() {
91
+ this.handleResize();
92
+
93
+ window.addEventListener('scroll', this.handleResize);
94
+ window.addEventListener('resize', this.handleResize);
95
+ },
96
+ unmounted() {
97
+ window.removeEventListener('scroll', this.handleResize);
98
+ window.removeEventListener('resize', this.handleResize);
99
+ },
100
+ methods: {
101
+ handleResize() {
102
+ this.getRightPost(this.$refs.tooltip);
103
+ },
104
+ getRightPost(element) {
105
+ const elementPos = element.getBoundingClientRect();
106
+
107
+ if (element && this.$refs.label) {
108
+ if (this.side === 'right') {
109
+ this.leftPos = `${elementPos.x + elementPos.width + 8}px`;
110
+ this.topPos = `${elementPos.y + elementPos.height / 2 - this.$refs.label.offsetHeight / 2}px`;
111
+ } else if (this.side === 'left') {
112
+ this.leftPos = `${elementPos.x - this.$refs.label.offsetWidth - 8}px`;
113
+ this.topPos = `${elementPos.y + elementPos.height / 2 - this.$refs.label.offsetHeight / 2}px`;
114
+ } else if (this.side === 'top') {
115
+ this.leftPos = `${elementPos.x + elementPos.width / 2 - this.$refs.label.clientWidth / 2}px`;
116
+ this.topPos = `${elementPos.y - this.$refs.label.offsetHeight - 8}px`;
117
+ } else if (this.side === 'bottom') {
118
+ this.leftPos = `${elementPos.x + elementPos.width / 2 - this.$refs.label.clientWidth / 2}px`;
119
+ this.topPos = `${elementPos.y + elementPos.height + 8}px`;
120
+ }
121
+ }
122
+ },
123
+ },
80
124
  };
81
125
  </script>
126
+
127
+ <style lang="scss" scoped>
128
+ @use '@/assets/scss/unnnic' as *;
129
+
130
+ .unnnic-tooltip {
131
+ position: relative;
132
+ display: inline-block;
133
+ overflow-wrap: break-word;
134
+ }
135
+
136
+ .unnnic-tooltip-label {
137
+ z-index: 1;
138
+ visibility: hidden;
139
+ text-align: center;
140
+ position: fixed;
141
+ width: max-content;
142
+ min-width: 2 * $unnnic-font-size;
143
+ box-sizing: border-box;
144
+ width: auto;
145
+ display: flex;
146
+ justify-content: center;
147
+ gap: $unnnic-spacing-xs;
148
+ align-items: center;
149
+
150
+ background-color: $unnnic-color-neutral-black;
151
+ color: $unnnic-color-neutral-snow;
152
+ border-radius: $unnnic-border-radius-sm;
153
+ padding: $unnnic-inset-nano;
154
+ box-shadow: $unnnic-shadow-level-near;
155
+ font-size: $unnnic-font-size-body-md;
156
+ font-family: $unnnic-font-family-secondary;
157
+ font-weight: $unnnic-font-weight-regular;
158
+ line-height: ($unnnic-font-size-body-md + $unnnic-line-height-medium);
159
+
160
+ &::after {
161
+ content: '';
162
+ position: absolute;
163
+ border-width: 5px;
164
+ border-style: solid;
165
+ }
166
+
167
+ &-top {
168
+ position: fixed;
169
+ &::after {
170
+ top: 100%;
171
+ left: 50%;
172
+ margin-left: -5px;
173
+ border-color: $unnnic-color-neutral-black transparent transparent
174
+ transparent;
175
+ }
176
+ }
177
+
178
+ &-bottom {
179
+ position: fixed;
180
+ &::after {
181
+ bottom: 100%;
182
+ left: 50%;
183
+ margin-left: -5px;
184
+ border-color: transparent transparent $unnnic-color-neutral-black
185
+ transparent;
186
+ }
187
+ }
188
+ &-right {
189
+ position: fixed;
190
+ &::after {
191
+ top: 50%;
192
+ right: 100%;
193
+ margin-top: -5px;
194
+ border-color: transparent $unnnic-color-neutral-black transparent
195
+ transparent;
196
+ }
197
+ }
198
+ &-left {
199
+ position: fixed;
200
+ &::after {
201
+ top: 50%;
202
+ left: 100%;
203
+ margin-top: -5px;
204
+ border-color: transparent transparent transparent
205
+ $unnnic-color-neutral-black;
206
+ }
207
+ }
208
+
209
+ &-shortcut {
210
+ background-color: $unnnic-color-neutral-darkest;
211
+ border-radius: $unnnic-border-radius-sm;
212
+ padding: calc($unnnic-inset-nano / 2) $unnnic-inset-nano;
213
+ }
214
+ }
215
+
216
+ .unnnic-tooltip.force-open {
217
+ .unnnic-tooltip-label {
218
+ visibility: visible;
219
+ }
220
+ }
221
+
222
+ .unnnic-tooltip:hover {
223
+ .unnnic-tooltip-label {
224
+ visibility: visible;
225
+ width: auto;
226
+ }
227
+ }
228
+ </style>