@db-ux/core-components 1.0.0-test-13b991d

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 (167) hide show
  1. package/README.md +107 -0
  2. package/build/assets/fonts/OFL.txt +93 -0
  3. package/build/assets/fonts/OpenSans-Bold-EU.woff2 +0 -0
  4. package/build/assets/fonts/OpenSans-Bold.ttf +0 -0
  5. package/build/assets/fonts/OpenSans-ExtraBold-EU.woff2 +0 -0
  6. package/build/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
  7. package/build/assets/fonts/OpenSans-Light-EU.woff2 +0 -0
  8. package/build/assets/fonts/OpenSans-Light.ttf +0 -0
  9. package/build/assets/fonts/OpenSans-Medium-EU.woff2 +0 -0
  10. package/build/assets/fonts/OpenSans-Medium.ttf +0 -0
  11. package/build/assets/fonts/OpenSans-Regular-EU.woff2 +0 -0
  12. package/build/assets/fonts/OpenSans-Regular.ttf +0 -0
  13. package/build/assets/fonts/OpenSans-SemiBold-EU.woff2 +0 -0
  14. package/build/assets/fonts/OpenSans-SemiBold.ttf +0 -0
  15. package/build/assets/fonts/README.md +23 -0
  16. package/build/assets/fonts/generate-eu-fonts.ts +46 -0
  17. package/build/assets/fonts/unicode-eu.txt +14 -0
  18. package/build/assets/icons/DB_LICENSE +253 -0
  19. package/build/assets/icons/LICENCES.json +153 -0
  20. package/build/assets/icons/arrow_down.svg +1 -0
  21. package/build/assets/icons/arrow_left.svg +1 -0
  22. package/build/assets/icons/arrow_right.svg +1 -0
  23. package/build/assets/icons/arrow_up.svg +1 -0
  24. package/build/assets/icons/arrow_up_right.svg +1 -0
  25. package/build/assets/icons/brand.svg +1 -0
  26. package/build/assets/icons/calendar.svg +5 -0
  27. package/build/assets/icons/check-circle.svg +1 -0
  28. package/build/assets/icons/check.svg +1 -0
  29. package/build/assets/icons/check_circle.svg +1 -0
  30. package/build/assets/icons/chevron_down.svg +1 -0
  31. package/build/assets/icons/chevron_left.svg +1 -0
  32. package/build/assets/icons/chevron_right.svg +1 -0
  33. package/build/assets/icons/chevron_up.svg +1 -0
  34. package/build/assets/icons/circle.svg +1 -0
  35. package/build/assets/icons/clock.svg +1 -0
  36. package/build/assets/icons/cross.svg +1 -0
  37. package/build/assets/icons/cross_circle.svg +1 -0
  38. package/build/assets/icons/exclamation_mark_circle.svg +1 -0
  39. package/build/assets/icons/exclamation_mark_triangle.svg +1 -0
  40. package/build/assets/icons/fonts/all/db-ux.woff2 +0 -0
  41. package/build/assets/icons/fonts/default/db-ux.woff2 +0 -0
  42. package/build/assets/icons/fonts/default_12/db-ux.woff2 +0 -0
  43. package/build/assets/icons/fonts/default_14/db-ux.woff2 +0 -0
  44. package/build/assets/icons/fonts/default_16/db-ux.woff2 +0 -0
  45. package/build/assets/icons/fonts/default_20/db-ux.woff2 +0 -0
  46. package/build/assets/icons/fonts/default_24/db-ux.woff2 +0 -0
  47. package/build/assets/icons/fonts/default_28/db-ux.woff2 +0 -0
  48. package/build/assets/icons/fonts/default_32/db-ux.woff2 +0 -0
  49. package/build/assets/icons/fonts/default_48/db-ux.woff2 +0 -0
  50. package/build/assets/icons/fonts/default_64/db-ux.woff2 +0 -0
  51. package/build/assets/icons/fonts/filled/db-ux.woff2 +0 -0
  52. package/build/assets/icons/fonts/filled_12/db-ux.woff2 +0 -0
  53. package/build/assets/icons/fonts/filled_14/db-ux.woff2 +0 -0
  54. package/build/assets/icons/fonts/filled_16/db-ux.woff2 +0 -0
  55. package/build/assets/icons/fonts/filled_20/db-ux.woff2 +0 -0
  56. package/build/assets/icons/fonts/filled_24/db-ux.woff2 +0 -0
  57. package/build/assets/icons/fonts/filled_28/db-ux.woff2 +0 -0
  58. package/build/assets/icons/fonts/filled_32/db-ux.woff2 +0 -0
  59. package/build/assets/icons/fonts/filled_48/db-ux.woff2 +0 -0
  60. package/build/assets/icons/fonts/filled_64/db-ux.woff2 +0 -0
  61. package/build/assets/icons/information_circle.svg +1 -0
  62. package/build/assets/icons/magnifying_glass.svg +1 -0
  63. package/build/assets/icons/menu.svg +1 -0
  64. package/build/assets/icons/minus.svg +1 -0
  65. package/build/assets/icons/plus.svg +1 -0
  66. package/build/assets/icons/resize_handle_corner.svg +1 -0
  67. package/build/assets/icons/x_placeholder.svg +1 -0
  68. package/build/components/accordion/accordion.css +78 -0
  69. package/build/components/accordion/accordion.scss +62 -0
  70. package/build/components/accordion-item/accordion-item.css +239 -0
  71. package/build/components/accordion-item/accordion-item.scss +73 -0
  72. package/build/components/badge/badge.css +253 -0
  73. package/build/components/badge/badge.scss +107 -0
  74. package/build/components/brand/brand.css +42 -0
  75. package/build/components/brand/brand.scss +32 -0
  76. package/build/components/button/button.css +165 -0
  77. package/build/components/button/button.scss +123 -0
  78. package/build/components/card/card.css +115 -0
  79. package/build/components/card/card.scss +56 -0
  80. package/build/components/checkbox/checkbox.css +476 -0
  81. package/build/components/checkbox/checkbox.scss +80 -0
  82. package/build/components/divider/divider.css +84 -0
  83. package/build/components/divider/divider.scss +56 -0
  84. package/build/components/drawer/drawer.css +303 -0
  85. package/build/components/drawer/drawer.scss +228 -0
  86. package/build/components/header/header.css +697 -0
  87. package/build/components/header/header.scss +246 -0
  88. package/build/components/icon/icon.css +24 -0
  89. package/build/components/icon/icon.scss +14 -0
  90. package/build/components/infotext/infotext.css +152 -0
  91. package/build/components/infotext/infotext.scss +54 -0
  92. package/build/components/input/input.css +712 -0
  93. package/build/components/input/input.scss +147 -0
  94. package/build/components/link/link.css +257 -0
  95. package/build/components/link/link.scss +60 -0
  96. package/build/components/navigation/navigation.css +218 -0
  97. package/build/components/navigation/navigation.scss +117 -0
  98. package/build/components/navigation-item/navigation-item.css +482 -0
  99. package/build/components/navigation-item/navigation-item.scss +310 -0
  100. package/build/components/notification/notification-grid-default.css +1 -0
  101. package/build/components/notification/notification-grid-default.scss +52 -0
  102. package/build/components/notification/notification-grid-non-overlay.css +1 -0
  103. package/build/components/notification/notification-grid-non-overlay.scss +66 -0
  104. package/build/components/notification/notification-grid-overlay.css +1 -0
  105. package/build/components/notification/notification-grid-overlay.scss +55 -0
  106. package/build/components/notification/notification.css +1173 -0
  107. package/build/components/notification/notification.scss +216 -0
  108. package/build/components/page/page.css +49 -0
  109. package/build/components/page/page.scss +52 -0
  110. package/build/components/popover/popover.css +291 -0
  111. package/build/components/popover/popover.scss +26 -0
  112. package/build/components/radio/radio.css +390 -0
  113. package/build/components/radio/radio.scss +49 -0
  114. package/build/components/section/section.css +38 -0
  115. package/build/components/section/section.scss +51 -0
  116. package/build/components/select/select.css +651 -0
  117. package/build/components/select/select.scss +83 -0
  118. package/build/components/stack/stack-web-component.css +93 -0
  119. package/build/components/stack/stack-web-component.scss +1 -0
  120. package/build/components/stack/stack.css +93 -0
  121. package/build/components/stack/stack.scss +5 -0
  122. package/build/components/switch/switch.css +901 -0
  123. package/build/components/switch/switch.scss +233 -0
  124. package/build/components/tab-item/tab-item.css +160 -0
  125. package/build/components/tab-item/tab-item.scss +135 -0
  126. package/build/components/tab-list/tab-list.css +202 -0
  127. package/build/components/tab-list/tab-list.scss +18 -0
  128. package/build/components/tab-panel/tab-panel.css +10 -0
  129. package/build/components/tab-panel/tab-panel.scss +5 -0
  130. package/build/components/tabs/tabs.css +358 -0
  131. package/build/components/tabs/tabs.scss +361 -0
  132. package/build/components/tag/tag.css +1544 -0
  133. package/build/components/tag/tag.scss +236 -0
  134. package/build/components/textarea/textarea.css +546 -0
  135. package/build/components/textarea/textarea.scss +86 -0
  136. package/build/components/tooltip/tooltip.css +346 -0
  137. package/build/components/tooltip/tooltip.scss +137 -0
  138. package/build/styles/absolute.css +1559 -0
  139. package/build/styles/absolute.scss +5 -0
  140. package/build/styles/component-animations.css +1 -0
  141. package/build/styles/component-animations.scss +17 -0
  142. package/build/styles/dialog-init.css +1 -0
  143. package/build/styles/dialog-init.scss +57 -0
  144. package/build/styles/index.css +615 -0
  145. package/build/styles/index.scss +32 -0
  146. package/build/styles/internal/_button-components.scss +8 -0
  147. package/build/styles/internal/_component.scss +79 -0
  148. package/build/styles/internal/_custom-elements.scss +7 -0
  149. package/build/styles/internal/_db-puls.scss +83 -0
  150. package/build/styles/internal/_form-components.scss +516 -0
  151. package/build/styles/internal/_icon-passing.scss +26 -0
  152. package/build/styles/internal/_link-components.scss +62 -0
  153. package/build/styles/internal/_popover-component.scss +213 -0
  154. package/build/styles/internal/_scrollbar.scss +93 -0
  155. package/build/styles/internal/_stack-components.scss +104 -0
  156. package/build/styles/internal/_tag-components.scss +234 -0
  157. package/build/styles/relative.css +1559 -0
  158. package/build/styles/relative.scss +15 -0
  159. package/build/styles/rollup.css +1559 -0
  160. package/build/styles/rollup.scss +5 -0
  161. package/build/styles/visually-hidden.css +1 -0
  162. package/build/styles/visually-hidden.scss +6 -0
  163. package/build/styles/wc-workarounds.css +1 -0
  164. package/build/styles/wc-workarounds.scss +12 -0
  165. package/build/styles/webpack.css +1559 -0
  166. package/build/styles/webpack.scss +5 -0
  167. package/package.json +62 -0
@@ -0,0 +1,346 @@
1
+ /* Use sizing's for fixed heights/widths e.g. the db-button has always a fixed height */
2
+ /* Use fixed spacings for all kind of distances (margin, padding, ...) */
3
+ /* The primary use-case for responsive spacings are
4
+ paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
+ /* Elevation */
6
+ /* Border */
7
+ /* Transitions */
8
+ /* Variants for adaptive components like input, select, notification, ... */
9
+ /**
10
+ Generates 3 types of placeholders, e.g:
11
+ - %db-component-variables-md
12
+ - %db-font-size-md
13
+ - %db-overwrite-font-size-md
14
+ */
15
+ .db-tooltip {
16
+ /* Those variables are only for components to calculate heights and change icons */
17
+ --db-icon-font-weight: var(--db-base-body-icon-weight-sm);
18
+ --db-icon-font-size: var(--db-base-body-icon-font-size-sm);
19
+ --db-base-line-height: var(--db-type-body-line-height-sm);
20
+ --db-base-font-size: var(--db-type-body-font-size-sm);
21
+ line-height: var(--db-type-body-line-height-sm);
22
+ font-size: var(--db-type-body-font-size-sm);
23
+ }
24
+
25
+ @keyframes show-right-to-left {
26
+ from {
27
+ transform: translateX(110%);
28
+ }
29
+ to {
30
+ transform: translateX(0%);
31
+ }
32
+ }
33
+ @keyframes hide-right-to-left {
34
+ from {
35
+ transform: translateX(0%);
36
+ }
37
+ to {
38
+ transform: translateX(110%);
39
+ }
40
+ }
41
+ @keyframes show-left-to-right {
42
+ from {
43
+ transform: translateX(-110%);
44
+ }
45
+ to {
46
+ transform: translateX(0%);
47
+ }
48
+ }
49
+ @keyframes hide-left-to-right {
50
+ from {
51
+ transform: translateX(0%);
52
+ }
53
+ to {
54
+ transform: translateX(-110%);
55
+ }
56
+ }
57
+ @keyframes show-bottom-to-top {
58
+ from {
59
+ transform: translateY(110%);
60
+ }
61
+ to {
62
+ transform: translateY(0%);
63
+ }
64
+ }
65
+ @keyframes hide-bottom-to-top {
66
+ from {
67
+ transform: translateY(0%);
68
+ }
69
+ to {
70
+ transform: translateY(110%);
71
+ }
72
+ }
73
+ @keyframes show-top-to-bottom {
74
+ from {
75
+ transform: translateY(-110%);
76
+ }
77
+ to {
78
+ transform: translateY(0%);
79
+ }
80
+ }
81
+ @keyframes hide-top-to-bottom {
82
+ from {
83
+ transform: translateY(0%);
84
+ }
85
+ to {
86
+ transform: translateY(-110%);
87
+ }
88
+ }
89
+ @keyframes accordion-open {
90
+ 0% {
91
+ opacity: 0;
92
+ transform: translateY(-10%);
93
+ }
94
+ 100% {
95
+ opacity: 1;
96
+ transform: translateY(0%);
97
+ }
98
+ }
99
+ @keyframes popover-animation {
100
+ 0% {
101
+ opacity: 0;
102
+ transform: translate(var(--db-popover-center-x, var(--db-popover-translate-x, 0%)), var(--db-popover-center-y, var(--db-popover-translate-y, 0%)));
103
+ }
104
+ 100% {
105
+ opacity: 1;
106
+ transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
107
+ }
108
+ }
109
+ .db-tooltip[data-show-arrow=true]::after, .db-tooltip {
110
+ border: var(--db-border-height-3xs) solid var(--db-adaptive-on-bg-basic-emphasis-60-default);
111
+ }
112
+
113
+ .db-tooltip {
114
+ /* stylelint-disable-next-line db-ux/use-border-radius */
115
+ border-radius: var(--default-card-border-radius, var(--db-border-radius-sm));
116
+ }
117
+
118
+ .db-tooltip:not([data-placement]), [data-placement=bottom].db-tooltip:not([data-outside-vy]), [data-placement=top].db-tooltip:not([data-outside-vy]), .db-tooltip:is([data-outside-vy=bottom], [data-outside-vy=top]):not([data-outside-vx],
119
+ [data-placement$=end],
120
+ [data-placement$=start]) {
121
+ --db-popover-center-x: -50%;
122
+ inset-inline-start: 50%;
123
+ }
124
+ [data-placement=left].db-tooltip:not([data-outside-vx]), [data-placement=right].db-tooltip:not([data-outside-vx]), [data-outside-vx=left].db-tooltip:not([data-placement$=end],
125
+ [data-placement$=start]), [data-outside-vx=right].db-tooltip:not([data-placement$=end],
126
+ [data-placement$=start]) {
127
+ --db-popover-center-y: -50%;
128
+ inset-block-start: 50%;
129
+ }
130
+
131
+ .db-tooltip {
132
+ --db-popover-distance: var(--db-spacing-fixed-2xs);
133
+ }
134
+ .db-tooltip::before {
135
+ content: "";
136
+ position: absolute;
137
+ }
138
+ [data-gap=true].db-tooltip {
139
+ --db-popover-gap: 1;
140
+ --db-popover-distance: var(--db-spacing-fixed-md);
141
+ }
142
+ .db-tooltip:is(.db-tooltip) {
143
+ --db-popover-distance: var(--db-spacing-fixed-sm);
144
+ }
145
+ [data-placement^=bottom].db-tooltip:not([data-outside-vy])[data-placement$=end], [data-placement^=top].db-tooltip:not([data-outside-vy])[data-placement$=end], [data-outside-vy=bottom].db-tooltip:not([data-outside-vx])[data-placement$=end], [data-outside-vy=top].db-tooltip:not([data-outside-vx])[data-placement$=end] {
146
+ inset-inline-end: 0;
147
+ }
148
+ [data-placement^=bottom].db-tooltip:not([data-outside-vy])[data-placement$=start], [data-placement^=top].db-tooltip:not([data-outside-vy])[data-placement$=start], [data-outside-vy=bottom].db-tooltip:not([data-outside-vx])[data-placement$=start], [data-outside-vy=top].db-tooltip:not([data-outside-vx])[data-placement$=start] {
149
+ inset-inline-start: 0;
150
+ }
151
+ [data-placement^=left].db-tooltip:not([data-outside-vx])[data-placement$=end], [data-placement^=right].db-tooltip:not([data-outside-vx])[data-placement$=end], [data-outside-vx=left][data-placement$=end].db-tooltip, [data-outside-vx=right][data-placement$=end].db-tooltip {
152
+ inset-block-end: 0;
153
+ }
154
+ [data-placement^=left].db-tooltip:not([data-outside-vx])[data-placement$=start], [data-placement^=right].db-tooltip:not([data-outside-vx])[data-placement$=start], [data-outside-vx=left][data-placement$=start].db-tooltip, [data-outside-vx=right][data-placement$=start].db-tooltip {
155
+ inset-block-start: 0;
156
+ }
157
+ .db-tooltip:not([data-placement], [data-outside-vy]), [data-placement^=bottom].db-tooltip:not([data-outside-vy]), [data-outside-vy=top].db-tooltip:not([data-outside-vx]) {
158
+ inset-block-start: calc(100% + var(--db-popover-distance) * var(--db-popover-gap, 0));
159
+ }
160
+ .db-tooltip:not([data-placement], [data-outside-vy])::before, [data-placement^=bottom].db-tooltip:not([data-outside-vy])::before, [data-outside-vy=top].db-tooltip:not([data-outside-vx])::before {
161
+ inset-inline-start: 0;
162
+ inline-size: 100%;
163
+ block-size: var(--db-popover-distance);
164
+ inset-block-start: calc(-1 * var(--db-popover-distance));
165
+ }
166
+ [data-placement^=top].db-tooltip:not([data-outside-vy]), [data-outside-vy=bottom].db-tooltip:not([data-outside-vx]) {
167
+ inset-block-end: calc(100% + var(--db-popover-distance) * var(--db-popover-gap, 0));
168
+ }
169
+ [data-placement^=top].db-tooltip:not([data-outside-vy])::before, [data-outside-vy=bottom].db-tooltip:not([data-outside-vx])::before {
170
+ inset-inline-end: 0;
171
+ inline-size: 100%;
172
+ block-size: var(--db-popover-distance);
173
+ inset-block-end: calc(-1 * var(--db-popover-distance));
174
+ }
175
+ [data-placement^=left].db-tooltip:not([data-outside-vx]), [data-outside-vx=right].db-tooltip {
176
+ inset-inline-end: calc(100% + var(--db-popover-distance) * var(--db-popover-gap, 0));
177
+ }
178
+ [data-placement^=left].db-tooltip:not([data-outside-vx])::before, [data-outside-vx=right].db-tooltip::before {
179
+ inset-block-end: 0;
180
+ block-size: 100%;
181
+ inline-size: var(--db-popover-distance);
182
+ inset-inline-end: calc(-1 * var(--db-popover-distance));
183
+ }
184
+ [data-placement^=right].db-tooltip:not([data-outside-vx]), [data-outside-vx=left].db-tooltip {
185
+ inset-inline-start: calc(100% + var(--db-popover-distance) * var(--db-popover-gap, 0));
186
+ }
187
+ [data-placement^=right].db-tooltip:not([data-outside-vx])::before, [data-outside-vx=left].db-tooltip::before {
188
+ inset-block-start: 0;
189
+ block-size: 100%;
190
+ inline-size: var(--db-popover-distance);
191
+ inset-inline-start: calc(-1 * var(--db-popover-distance));
192
+ }
193
+
194
+ .db-tooltip[data-e2e-hover=true], [data-has-tooltip=true]:hover .db-tooltip:first-of-type, [data-has-tooltip=true]:focus .db-tooltip:first-of-type {
195
+ display: revert;
196
+ }
197
+ .db-tooltip[data-e2e-hover=true]:not([data-placement], [data-outside-vy]), [data-has-tooltip=true]:hover .db-tooltip:not([data-placement], [data-outside-vy]):first-of-type, [data-has-tooltip=true]:focus .db-tooltip:not([data-placement], [data-outside-vy]):first-of-type, [data-placement^=bottom].db-tooltip[data-e2e-hover=true]:not([data-outside-vy]), [data-has-tooltip=true]:hover [data-placement^=bottom].db-tooltip:not([data-outside-vy]):first-of-type, [data-has-tooltip=true]:focus [data-placement^=bottom].db-tooltip:not([data-outside-vy]):first-of-type, [data-outside-vy=top].db-tooltip[data-e2e-hover=true]:not([data-outside-vx]), [data-has-tooltip=true]:hover [data-outside-vy=top].db-tooltip:not([data-outside-vx]):first-of-type, [data-has-tooltip=true]:focus [data-outside-vy=top].db-tooltip:not([data-outside-vx]):first-of-type {
198
+ --db-popover-translate-y: -25%;
199
+ }
200
+ .db-tooltip[data-e2e-hover=true]:not([data-placement], [data-outside-vy]):not([data-animation]), [data-has-tooltip=true]:hover .db-tooltip:not([data-placement], [data-outside-vy]):not([data-animation]):first-of-type, [data-has-tooltip=true]:focus .db-tooltip:not([data-placement], [data-outside-vy]):not([data-animation]):first-of-type, .db-tooltip[data-e2e-hover=true]:not([data-placement], [data-outside-vy])[data-animation=false], [data-has-tooltip=true]:hover .db-tooltip:not([data-placement], [data-outside-vy])[data-animation=false]:first-of-type, [data-has-tooltip=true]:focus .db-tooltip:not([data-placement], [data-outside-vy])[data-animation=false]:first-of-type, [data-placement^=bottom].db-tooltip[data-e2e-hover=true]:not([data-outside-vy]):not([data-animation]), [data-has-tooltip=true]:hover [data-placement^=bottom].db-tooltip:not([data-outside-vy]):not([data-animation]):first-of-type, [data-has-tooltip=true]:focus [data-placement^=bottom].db-tooltip:not([data-outside-vy]):not([data-animation]):first-of-type, [data-placement^=bottom].db-tooltip[data-e2e-hover=true]:not([data-outside-vy])[data-animation=false], [data-has-tooltip=true]:hover [data-placement^=bottom].db-tooltip:not([data-outside-vy])[data-animation=false]:first-of-type, [data-has-tooltip=true]:focus [data-placement^=bottom].db-tooltip:not([data-outside-vy])[data-animation=false]:first-of-type, [data-outside-vy=top].db-tooltip[data-e2e-hover=true]:not([data-outside-vx]):not([data-animation]), [data-has-tooltip=true]:hover [data-outside-vy=top].db-tooltip:not([data-outside-vx]):not([data-animation]):first-of-type, [data-has-tooltip=true]:focus [data-outside-vy=top].db-tooltip:not([data-outside-vx]):not([data-animation]):first-of-type, [data-outside-vy=top].db-tooltip[data-e2e-hover=true]:not([data-outside-vx])[data-animation=false], [data-has-tooltip=true]:hover [data-outside-vy=top].db-tooltip:not([data-outside-vx])[data-animation=false]:first-of-type, [data-has-tooltip=true]:focus [data-outside-vy=top].db-tooltip:not([data-outside-vx])[data-animation=false]:first-of-type {
201
+ opacity: 1;
202
+ transform: translate(var(--db-popover-center-x, 0), var(--db-popover-center-y, 0));
203
+ }
204
+ @media screen and (prefers-reduced-motion: no-preference) {
205
+ .db-tooltip[data-e2e-hover=true]:not([data-placement], [data-outside-vy])[data-animation=true], [data-has-tooltip=true]:hover .db-tooltip:not([data-placement], [data-outside-vy])[data-animation=true]:first-of-type, [data-has-tooltip=true]:focus .db-tooltip:not([data-placement], [data-outside-vy])[data-animation=true]:first-of-type, [data-placement^=bottom].db-tooltip[data-e2e-hover=true]:not([data-outside-vy])[data-animation=true], [data-has-tooltip=true]:hover [data-placement^=bottom].db-tooltip:not([data-outside-vy])[data-animation=true]:first-of-type, [data-has-tooltip=true]:focus [data-placement^=bottom].db-tooltip:not([data-outside-vy])[data-animation=true]:first-of-type, [data-outside-vy=top].db-tooltip[data-e2e-hover=true]:not([data-outside-vx])[data-animation=true], [data-has-tooltip=true]:hover [data-outside-vy=top].db-tooltip:not([data-outside-vx])[data-animation=true]:first-of-type, [data-has-tooltip=true]:focus [data-outside-vy=top].db-tooltip:not([data-outside-vx])[data-animation=true]:first-of-type {
206
+ animation: popover-animation var(--db-transition-straight-emotional) normal both;
207
+ }
208
+ .db-tooltip[data-e2e-hover=true]:not([data-placement], [data-outside-vy])[data-animation=true][data-delay=slow], [data-has-tooltip=true]:hover .db-tooltip:not([data-placement], [data-outside-vy])[data-animation=true][data-delay=slow]:first-of-type, [data-has-tooltip=true]:focus .db-tooltip:not([data-placement], [data-outside-vy])[data-animation=true][data-delay=slow]:first-of-type, [data-placement^=bottom].db-tooltip[data-e2e-hover=true]:not([data-outside-vy])[data-animation=true][data-delay=slow], [data-has-tooltip=true]:hover [data-placement^=bottom].db-tooltip:not([data-outside-vy])[data-animation=true][data-delay=slow]:first-of-type, [data-has-tooltip=true]:focus [data-placement^=bottom].db-tooltip:not([data-outside-vy])[data-animation=true][data-delay=slow]:first-of-type, [data-outside-vy=top].db-tooltip[data-e2e-hover=true]:not([data-outside-vx])[data-animation=true][data-delay=slow], [data-has-tooltip=true]:hover [data-outside-vy=top].db-tooltip:not([data-outside-vx])[data-animation=true][data-delay=slow]:first-of-type, [data-has-tooltip=true]:focus [data-outside-vy=top].db-tooltip:not([data-outside-vx])[data-animation=true][data-delay=slow]:first-of-type {
209
+ animation-delay: var(--db-transition-duration-fast);
210
+ }
211
+ .db-tooltip[data-e2e-hover=true]:not([data-placement], [data-outside-vy])[data-animation=true][data-delay=fast], [data-has-tooltip=true]:hover .db-tooltip:not([data-placement], [data-outside-vy])[data-animation=true][data-delay=fast]:first-of-type, [data-has-tooltip=true]:focus .db-tooltip:not([data-placement], [data-outside-vy])[data-animation=true][data-delay=fast]:first-of-type, [data-placement^=bottom].db-tooltip[data-e2e-hover=true]:not([data-outside-vy])[data-animation=true][data-delay=fast], [data-has-tooltip=true]:hover [data-placement^=bottom].db-tooltip:not([data-outside-vy])[data-animation=true][data-delay=fast]:first-of-type, [data-has-tooltip=true]:focus [data-placement^=bottom].db-tooltip:not([data-outside-vy])[data-animation=true][data-delay=fast]:first-of-type, [data-outside-vy=top].db-tooltip[data-e2e-hover=true]:not([data-outside-vx])[data-animation=true][data-delay=fast], [data-has-tooltip=true]:hover [data-outside-vy=top].db-tooltip:not([data-outside-vx])[data-animation=true][data-delay=fast]:first-of-type, [data-has-tooltip=true]:focus [data-outside-vy=top].db-tooltip:not([data-outside-vx])[data-animation=true][data-delay=fast]:first-of-type {
212
+ animation-delay: calc(var(--db-transition-duration-fast) / 2);
213
+ }
214
+ }
215
+ [data-placement^=top].db-tooltip[data-e2e-hover=true]:not([data-outside-vy]), [data-has-tooltip=true]:hover [data-placement^=top].db-tooltip:not([data-outside-vy]):first-of-type, [data-has-tooltip=true]:focus [data-placement^=top].db-tooltip:not([data-outside-vy]):first-of-type, [data-outside-vy=bottom].db-tooltip[data-e2e-hover=true]:not([data-outside-vx]), [data-has-tooltip=true]:hover [data-outside-vy=bottom].db-tooltip:not([data-outside-vx]):first-of-type, [data-has-tooltip=true]:focus [data-outside-vy=bottom].db-tooltip:not([data-outside-vx]):first-of-type {
216
+ --db-popover-translate-y: 25%;
217
+ }
218
+ [data-placement^=top].db-tooltip[data-e2e-hover=true]:not([data-outside-vy]):not([data-animation]), [data-has-tooltip=true]:hover [data-placement^=top].db-tooltip:not([data-outside-vy]):not([data-animation]):first-of-type, [data-has-tooltip=true]:focus [data-placement^=top].db-tooltip:not([data-outside-vy]):not([data-animation]):first-of-type, [data-placement^=top].db-tooltip[data-e2e-hover=true]:not([data-outside-vy])[data-animation=false], [data-has-tooltip=true]:hover [data-placement^=top].db-tooltip:not([data-outside-vy])[data-animation=false]:first-of-type, [data-has-tooltip=true]:focus [data-placement^=top].db-tooltip:not([data-outside-vy])[data-animation=false]:first-of-type, [data-outside-vy=bottom].db-tooltip[data-e2e-hover=true]:not([data-outside-vx]):not([data-animation]), [data-has-tooltip=true]:hover [data-outside-vy=bottom].db-tooltip:not([data-outside-vx]):not([data-animation]):first-of-type, [data-has-tooltip=true]:focus [data-outside-vy=bottom].db-tooltip:not([data-outside-vx]):not([data-animation]):first-of-type, [data-outside-vy=bottom].db-tooltip[data-e2e-hover=true]:not([data-outside-vx])[data-animation=false], [data-has-tooltip=true]:hover [data-outside-vy=bottom].db-tooltip:not([data-outside-vx])[data-animation=false]:first-of-type, [data-has-tooltip=true]:focus [data-outside-vy=bottom].db-tooltip:not([data-outside-vx])[data-animation=false]:first-of-type {
219
+ opacity: 1;
220
+ transform: translate(var(--db-popover-center-x, 0), var(--db-popover-center-y, 0));
221
+ }
222
+ @media screen and (prefers-reduced-motion: no-preference) {
223
+ [data-placement^=top].db-tooltip[data-e2e-hover=true]:not([data-outside-vy])[data-animation=true], [data-has-tooltip=true]:hover [data-placement^=top].db-tooltip:not([data-outside-vy])[data-animation=true]:first-of-type, [data-has-tooltip=true]:focus [data-placement^=top].db-tooltip:not([data-outside-vy])[data-animation=true]:first-of-type, [data-outside-vy=bottom].db-tooltip[data-e2e-hover=true]:not([data-outside-vx])[data-animation=true], [data-has-tooltip=true]:hover [data-outside-vy=bottom].db-tooltip:not([data-outside-vx])[data-animation=true]:first-of-type, [data-has-tooltip=true]:focus [data-outside-vy=bottom].db-tooltip:not([data-outside-vx])[data-animation=true]:first-of-type {
224
+ animation: popover-animation var(--db-transition-straight-emotional) normal both;
225
+ }
226
+ [data-placement^=top].db-tooltip[data-e2e-hover=true]:not([data-outside-vy])[data-animation=true][data-delay=slow], [data-has-tooltip=true]:hover [data-placement^=top].db-tooltip:not([data-outside-vy])[data-animation=true][data-delay=slow]:first-of-type, [data-has-tooltip=true]:focus [data-placement^=top].db-tooltip:not([data-outside-vy])[data-animation=true][data-delay=slow]:first-of-type, [data-outside-vy=bottom].db-tooltip[data-e2e-hover=true]:not([data-outside-vx])[data-animation=true][data-delay=slow], [data-has-tooltip=true]:hover [data-outside-vy=bottom].db-tooltip:not([data-outside-vx])[data-animation=true][data-delay=slow]:first-of-type, [data-has-tooltip=true]:focus [data-outside-vy=bottom].db-tooltip:not([data-outside-vx])[data-animation=true][data-delay=slow]:first-of-type {
227
+ animation-delay: var(--db-transition-duration-fast);
228
+ }
229
+ [data-placement^=top].db-tooltip[data-e2e-hover=true]:not([data-outside-vy])[data-animation=true][data-delay=fast], [data-has-tooltip=true]:hover [data-placement^=top].db-tooltip:not([data-outside-vy])[data-animation=true][data-delay=fast]:first-of-type, [data-has-tooltip=true]:focus [data-placement^=top].db-tooltip:not([data-outside-vy])[data-animation=true][data-delay=fast]:first-of-type, [data-outside-vy=bottom].db-tooltip[data-e2e-hover=true]:not([data-outside-vx])[data-animation=true][data-delay=fast], [data-has-tooltip=true]:hover [data-outside-vy=bottom].db-tooltip:not([data-outside-vx])[data-animation=true][data-delay=fast]:first-of-type, [data-has-tooltip=true]:focus [data-outside-vy=bottom].db-tooltip:not([data-outside-vx])[data-animation=true][data-delay=fast]:first-of-type {
230
+ animation-delay: calc(var(--db-transition-duration-fast) / 2);
231
+ }
232
+ }
233
+ [data-placement^=right].db-tooltip[data-e2e-hover=true]:not([data-outside-vx]), [data-has-tooltip=true]:hover [data-placement^=right].db-tooltip:not([data-outside-vx]):first-of-type, [data-has-tooltip=true]:focus [data-placement^=right].db-tooltip:not([data-outside-vx]):first-of-type, [data-outside-vx=left].db-tooltip[data-e2e-hover=true], [data-has-tooltip=true]:hover [data-outside-vx=left].db-tooltip:first-of-type, [data-has-tooltip=true]:focus [data-outside-vx=left].db-tooltip:first-of-type {
234
+ --db-popover-translate-x: -25%;
235
+ }
236
+ [data-placement^=right].db-tooltip[data-e2e-hover=true]:not([data-outside-vx]):not([data-animation]), [data-has-tooltip=true]:hover [data-placement^=right].db-tooltip:not([data-outside-vx]):not([data-animation]):first-of-type, [data-has-tooltip=true]:focus [data-placement^=right].db-tooltip:not([data-outside-vx]):not([data-animation]):first-of-type, [data-placement^=right].db-tooltip[data-e2e-hover=true]:not([data-outside-vx])[data-animation=false], [data-has-tooltip=true]:hover [data-placement^=right].db-tooltip:not([data-outside-vx])[data-animation=false]:first-of-type, [data-has-tooltip=true]:focus [data-placement^=right].db-tooltip:not([data-outside-vx])[data-animation=false]:first-of-type, [data-outside-vx=left].db-tooltip[data-e2e-hover=true]:not([data-animation]), [data-has-tooltip=true]:hover [data-outside-vx=left].db-tooltip:not([data-animation]):first-of-type, [data-has-tooltip=true]:focus [data-outside-vx=left].db-tooltip:not([data-animation]):first-of-type, [data-outside-vx=left][data-animation=false].db-tooltip[data-e2e-hover=true], [data-has-tooltip=true]:hover [data-outside-vx=left][data-animation=false].db-tooltip:first-of-type, [data-has-tooltip=true]:focus [data-outside-vx=left][data-animation=false].db-tooltip:first-of-type {
237
+ opacity: 1;
238
+ transform: translate(var(--db-popover-center-x, 0), var(--db-popover-center-y, 0));
239
+ }
240
+ @media screen and (prefers-reduced-motion: no-preference) {
241
+ [data-placement^=right].db-tooltip[data-e2e-hover=true]:not([data-outside-vx])[data-animation=true], [data-has-tooltip=true]:hover [data-placement^=right].db-tooltip:not([data-outside-vx])[data-animation=true]:first-of-type, [data-has-tooltip=true]:focus [data-placement^=right].db-tooltip:not([data-outside-vx])[data-animation=true]:first-of-type, [data-outside-vx=left][data-animation=true].db-tooltip[data-e2e-hover=true], [data-has-tooltip=true]:hover [data-outside-vx=left][data-animation=true].db-tooltip:first-of-type, [data-has-tooltip=true]:focus [data-outside-vx=left][data-animation=true].db-tooltip:first-of-type {
242
+ animation: popover-animation var(--db-transition-straight-emotional) normal both;
243
+ }
244
+ [data-placement^=right].db-tooltip[data-e2e-hover=true]:not([data-outside-vx])[data-animation=true][data-delay=slow], [data-has-tooltip=true]:hover [data-placement^=right].db-tooltip:not([data-outside-vx])[data-animation=true][data-delay=slow]:first-of-type, [data-has-tooltip=true]:focus [data-placement^=right].db-tooltip:not([data-outside-vx])[data-animation=true][data-delay=slow]:first-of-type, [data-outside-vx=left][data-animation=true][data-delay=slow].db-tooltip[data-e2e-hover=true], [data-has-tooltip=true]:hover [data-outside-vx=left][data-animation=true][data-delay=slow].db-tooltip:first-of-type, [data-has-tooltip=true]:focus [data-outside-vx=left][data-animation=true][data-delay=slow].db-tooltip:first-of-type {
245
+ animation-delay: var(--db-transition-duration-fast);
246
+ }
247
+ [data-placement^=right].db-tooltip[data-e2e-hover=true]:not([data-outside-vx])[data-animation=true][data-delay=fast], [data-has-tooltip=true]:hover [data-placement^=right].db-tooltip:not([data-outside-vx])[data-animation=true][data-delay=fast]:first-of-type, [data-has-tooltip=true]:focus [data-placement^=right].db-tooltip:not([data-outside-vx])[data-animation=true][data-delay=fast]:first-of-type, [data-outside-vx=left][data-animation=true][data-delay=fast].db-tooltip[data-e2e-hover=true], [data-has-tooltip=true]:hover [data-outside-vx=left][data-animation=true][data-delay=fast].db-tooltip:first-of-type, [data-has-tooltip=true]:focus [data-outside-vx=left][data-animation=true][data-delay=fast].db-tooltip:first-of-type {
248
+ animation-delay: calc(var(--db-transition-duration-fast) / 2);
249
+ }
250
+ }
251
+ [data-placement^=left].db-tooltip[data-e2e-hover=true]:not([data-outside-vx]), [data-has-tooltip=true]:hover [data-placement^=left].db-tooltip:not([data-outside-vx]):first-of-type, [data-has-tooltip=true]:focus [data-placement^=left].db-tooltip:not([data-outside-vx]):first-of-type, [data-outside-vx=right].db-tooltip[data-e2e-hover=true], [data-has-tooltip=true]:hover [data-outside-vx=right].db-tooltip:first-of-type, [data-has-tooltip=true]:focus [data-outside-vx=right].db-tooltip:first-of-type {
252
+ --db-popover-translate-x: 25%;
253
+ }
254
+ [data-placement^=left].db-tooltip[data-e2e-hover=true]:not([data-outside-vx]):not([data-animation]), [data-has-tooltip=true]:hover [data-placement^=left].db-tooltip:not([data-outside-vx]):not([data-animation]):first-of-type, [data-has-tooltip=true]:focus [data-placement^=left].db-tooltip:not([data-outside-vx]):not([data-animation]):first-of-type, [data-placement^=left].db-tooltip[data-e2e-hover=true]:not([data-outside-vx])[data-animation=false], [data-has-tooltip=true]:hover [data-placement^=left].db-tooltip:not([data-outside-vx])[data-animation=false]:first-of-type, [data-has-tooltip=true]:focus [data-placement^=left].db-tooltip:not([data-outside-vx])[data-animation=false]:first-of-type, [data-outside-vx=right].db-tooltip[data-e2e-hover=true]:not([data-animation]), [data-has-tooltip=true]:hover [data-outside-vx=right].db-tooltip:not([data-animation]):first-of-type, [data-has-tooltip=true]:focus [data-outside-vx=right].db-tooltip:not([data-animation]):first-of-type, [data-outside-vx=right][data-animation=false].db-tooltip[data-e2e-hover=true], [data-has-tooltip=true]:hover [data-outside-vx=right][data-animation=false].db-tooltip:first-of-type, [data-has-tooltip=true]:focus [data-outside-vx=right][data-animation=false].db-tooltip:first-of-type {
255
+ opacity: 1;
256
+ transform: translate(var(--db-popover-center-x, 0), var(--db-popover-center-y, 0));
257
+ }
258
+ @media screen and (prefers-reduced-motion: no-preference) {
259
+ [data-placement^=left].db-tooltip[data-e2e-hover=true]:not([data-outside-vx])[data-animation=true], [data-has-tooltip=true]:hover [data-placement^=left].db-tooltip:not([data-outside-vx])[data-animation=true]:first-of-type, [data-has-tooltip=true]:focus [data-placement^=left].db-tooltip:not([data-outside-vx])[data-animation=true]:first-of-type, [data-outside-vx=right][data-animation=true].db-tooltip[data-e2e-hover=true], [data-has-tooltip=true]:hover [data-outside-vx=right][data-animation=true].db-tooltip:first-of-type, [data-has-tooltip=true]:focus [data-outside-vx=right][data-animation=true].db-tooltip:first-of-type {
260
+ animation: popover-animation var(--db-transition-straight-emotional) normal both;
261
+ }
262
+ [data-placement^=left].db-tooltip[data-e2e-hover=true]:not([data-outside-vx])[data-animation=true][data-delay=slow], [data-has-tooltip=true]:hover [data-placement^=left].db-tooltip:not([data-outside-vx])[data-animation=true][data-delay=slow]:first-of-type, [data-has-tooltip=true]:focus [data-placement^=left].db-tooltip:not([data-outside-vx])[data-animation=true][data-delay=slow]:first-of-type, [data-outside-vx=right][data-animation=true][data-delay=slow].db-tooltip[data-e2e-hover=true], [data-has-tooltip=true]:hover [data-outside-vx=right][data-animation=true][data-delay=slow].db-tooltip:first-of-type, [data-has-tooltip=true]:focus [data-outside-vx=right][data-animation=true][data-delay=slow].db-tooltip:first-of-type {
263
+ animation-delay: var(--db-transition-duration-fast);
264
+ }
265
+ [data-placement^=left].db-tooltip[data-e2e-hover=true]:not([data-outside-vx])[data-animation=true][data-delay=fast], [data-has-tooltip=true]:hover [data-placement^=left].db-tooltip:not([data-outside-vx])[data-animation=true][data-delay=fast]:first-of-type, [data-has-tooltip=true]:focus [data-placement^=left].db-tooltip:not([data-outside-vx])[data-animation=true][data-delay=fast]:first-of-type, [data-outside-vx=right][data-animation=true][data-delay=fast].db-tooltip[data-e2e-hover=true], [data-has-tooltip=true]:hover [data-outside-vx=right][data-animation=true][data-delay=fast].db-tooltip:first-of-type, [data-has-tooltip=true]:focus [data-outside-vx=right][data-animation=true][data-delay=fast].db-tooltip:first-of-type {
266
+ animation-delay: calc(var(--db-transition-duration-fast) / 2);
267
+ }
268
+ }
269
+
270
+ .db-tooltip {
271
+ position: absolute;
272
+ background-color: var(--db-adaptive-bg-basic-level-1-default);
273
+ box-shadow: var(--db-elevation-md);
274
+ display: none;
275
+ z-index: 1;
276
+ white-space: nowrap;
277
+ }
278
+ [data-width=fixed].db-tooltip {
279
+ inline-size: max-content;
280
+ max-inline-size: var(--db-sizing-3xl);
281
+ white-space: normal;
282
+ text-align: initial;
283
+ }
284
+
285
+ .db-tooltip {
286
+ --default-card-elevation: var(--db-elevation-sm);
287
+ --default-card-border-radius: var(--db-border-radius-xs);
288
+ background-color: var(--db-adaptive-bg-basic-level-1-default);
289
+ color: var(--db-adaptive-on-bg-basic-emphasis-100-default);
290
+ font-style: normal;
291
+ font-weight: initial;
292
+ padding: var(--db-spacing-fixed-2xs) var(--db-spacing-fixed-xs);
293
+ }
294
+ .db-tooltip::after {
295
+ background-color: var(--db-adaptive-bg-basic-level-1-default);
296
+ }
297
+ .db-tooltip[data-show-arrow=true]::after {
298
+ content: "";
299
+ box-shadow: var(--db-elevation-md);
300
+ position: absolute;
301
+ background-color: var(--db-adaptive-bg-basic-level-1-default);
302
+ inline-size: var(--db-sizing-2xs);
303
+ block-size: var(--db-sizing-2xs);
304
+ clip-path: polygon(calc(var(--db-sizing-2xs) * -1) calc(var(--db-sizing-2xs) * -1), calc(100% + var(--db-sizing-2xs)) calc(var(--db-sizing-2xs) * -1), calc(100% + var(--db-sizing-2xs)) calc(100% + var(--db-sizing-2xs)));
305
+ /* stylelint-disable-next-line db-ux/use-border-radius */
306
+ border-radius: 0 2px;
307
+ transform: skew(-8deg, -8deg);
308
+ }
309
+ .db-tooltip:not([data-placement], [data-outside-vy])::after, .db-tooltip[data-placement^=bottom]:not([data-outside-vy])::after, .db-tooltip[data-outside-vy=top]:not([data-outside-vx])::after {
310
+ inset-inline-start: 50%;
311
+ inset-block-start: 0;
312
+ translate: -50% -50%;
313
+ rotate: 315deg;
314
+ }
315
+ .db-tooltip[data-placement^=top]:not([data-outside-vy])::after, .db-tooltip[data-outside-vy=bottom]:not([data-outside-vx])::after {
316
+ inset-inline-start: 50%;
317
+ inset-block-end: 0;
318
+ translate: -50% 50%;
319
+ rotate: 135deg;
320
+ }
321
+ .db-tooltip[data-placement^=right]:not([data-outside-vx])::after, .db-tooltip[data-outside-vx=left]::after {
322
+ inset-block-start: 50%;
323
+ inset-inline-start: 0;
324
+ translate: -50% -50%;
325
+ rotate: 225deg;
326
+ }
327
+ .db-tooltip[data-placement^=left]:not([data-outside-vx])::after, .db-tooltip[data-outside-vx=right]::after {
328
+ inset-block-start: 50%;
329
+ inset-inline-end: 0;
330
+ translate: 50% -50%;
331
+ rotate: 45deg;
332
+ }
333
+ .db-tooltip[data-emphasis=strong] {
334
+ background-color: var(--db-adaptive-bg-inverted-contrast-high-default);
335
+ color: var(--db-adaptive-on-bg-inverted-default);
336
+ }
337
+ .db-tooltip[data-emphasis=strong]::before {
338
+ --db-icon-color: var(--db-adaptive-on-bg-inverted-default);
339
+ }
340
+ .db-tooltip[data-emphasis=strong]::after {
341
+ background-color: var(--db-adaptive-bg-inverted-contrast-high-default);
342
+ }
343
+
344
+ [data-has-tooltip=true] {
345
+ position: relative;
346
+ }
@@ -0,0 +1,137 @@
1
+ @use "@db-ux/core-foundations/build/styles/helpers/functions";
2
+ @use "@db-ux/core-foundations/build/styles/variables";
3
+ @use "@db-ux/core-foundations/build/styles/colors";
4
+ @use "@db-ux/core-foundations/build/styles/fonts";
5
+ @use "../../styles/internal/popover-component";
6
+ @use "../../styles/internal/component";
7
+
8
+ $tooltip-arrow-shadow-size: variables.$db-sizing-2xs;
9
+
10
+ .db-tooltip {
11
+ --default-card-elevation: #{variables.$db-elevation-sm};
12
+ --default-card-border-radius: #{variables.$db-border-radius-xs};
13
+
14
+ @extend %db-overwrite-font-size-sm;
15
+ @extend %popover-center;
16
+ @extend %default-popover;
17
+
18
+ background-color: colors.$db-adaptive-bg-basic-level-1-default;
19
+ color: colors.$db-adaptive-on-bg-basic-emphasis-100-default;
20
+
21
+ // i HTML tags browsers default styling reset
22
+ font-style: normal;
23
+
24
+ // surrounding tags styling reset
25
+ font-weight: initial;
26
+ padding: variables.$db-spacing-fixed-2xs variables.$db-spacing-fixed-xs;
27
+
28
+ &::after {
29
+ background-color: colors.$db-adaptive-bg-basic-level-1-default;
30
+ }
31
+
32
+ // Only for testing
33
+ &[data-e2e-hover="true"] {
34
+ @extend %show-popover;
35
+ }
36
+
37
+ // Arrow
38
+ &[data-show-arrow="true"] {
39
+ &::after {
40
+ @extend %component-border;
41
+
42
+ content: "";
43
+ box-shadow: variables.$db-elevation-md;
44
+ position: absolute;
45
+ background-color: colors.$db-adaptive-bg-basic-level-1-default;
46
+ inline-size: $tooltip-arrow-shadow-size;
47
+ block-size: $tooltip-arrow-shadow-size;
48
+ clip-path: polygon(
49
+ calc(#{$tooltip-arrow-shadow-size} * -1)
50
+ calc(#{$tooltip-arrow-shadow-size} * -1),
51
+ calc(100% + #{$tooltip-arrow-shadow-size})
52
+ calc(#{$tooltip-arrow-shadow-size} * -1),
53
+ calc(100% + #{$tooltip-arrow-shadow-size})
54
+ calc(100% + #{$tooltip-arrow-shadow-size})
55
+ );
56
+ /* stylelint-disable-next-line db-ux/use-border-radius */
57
+ border-radius: 0 2px;
58
+ transform: skew(-8deg, -8deg);
59
+ }
60
+ }
61
+
62
+ &:not([data-placement], [data-outside-vy]),
63
+ &[data-placement^="bottom"]:not([data-outside-vy]),
64
+ &[data-outside-vy="top"]:not([data-outside-vx]) {
65
+ &::after {
66
+ inset-inline-start: 50%;
67
+ inset-block-start: 0;
68
+ translate: -50% -50%;
69
+ rotate: 315deg;
70
+ }
71
+ }
72
+
73
+ &[data-placement^="top"]:not([data-outside-vy]),
74
+ &[data-outside-vy="bottom"]:not([data-outside-vx]) {
75
+ &::after {
76
+ inset-inline-start: 50%;
77
+ inset-block-end: 0;
78
+ translate: -50% 50%;
79
+ rotate: 135deg;
80
+ }
81
+ }
82
+
83
+ &[data-placement^="right"]:not([data-outside-vx]),
84
+ &[data-outside-vx="left"] {
85
+ &::after {
86
+ inset-block-start: 50%;
87
+ inset-inline-start: 0;
88
+ translate: -50% -50%;
89
+ rotate: 225deg;
90
+ }
91
+ }
92
+
93
+ &[data-placement^="left"]:not([data-outside-vx]),
94
+ &[data-outside-vx="right"] {
95
+ &::after {
96
+ inset-block-start: 50%;
97
+ inset-inline-end: 0;
98
+ translate: 50% -50%;
99
+ rotate: 45deg;
100
+ }
101
+ }
102
+
103
+ &[data-emphasis="strong"] {
104
+ background-color: colors.$db-adaptive-bg-inverted-contrast-high-default;
105
+ color: colors.$db-adaptive-on-bg-inverted-default;
106
+
107
+ &::before {
108
+ --db-icon-color: #{colors.$db-adaptive-on-bg-inverted-default};
109
+ }
110
+
111
+ &::after {
112
+ background-color: colors.$db-adaptive-bg-inverted-contrast-high-default;
113
+ }
114
+ }
115
+ }
116
+
117
+ // Global styles
118
+
119
+ @mixin show-popover($state) {
120
+ [data-has-tooltip="true"] {
121
+ &:#{$state} {
122
+ .db-tooltip:first-of-type {
123
+ @extend %show-popover;
124
+ }
125
+ }
126
+ }
127
+ }
128
+
129
+ [data-has-tooltip="true"] {
130
+ position: relative;
131
+ }
132
+
133
+ $popover-states: "hover", "focus";
134
+
135
+ @each $state in $popover-states {
136
+ @include show-popover($state);
137
+ }