@inspark/components-web 14.0.14 → 19.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +54 -0
  3. package/assets/fonts/fontawesome/FontAwesome.otf +0 -0
  4. package/assets/fonts/fontawesome/fontawesome-webfont.eot +0 -0
  5. package/assets/fonts/fontawesome/fontawesome-webfont.svg +2671 -0
  6. package/assets/fonts/fontawesome/fontawesome-webfont.ttf +0 -0
  7. package/assets/fonts/fontawesome/fontawesome-webfont.woff +0 -0
  8. package/assets/fonts/fontawesome/fontawesome-webfont.woff2 +0 -0
  9. package/assets/fonts/lato/Lato-Bold.ttf +0 -0
  10. package/assets/fonts/lato/Lato-BoldItalic.ttf +0 -0
  11. package/assets/fonts/lato/Lato-Italic.ttf +0 -0
  12. package/assets/fonts/lato/Lato-Regular.ttf +0 -0
  13. package/assets/fonts/open-sans/BoldItalic/OpenSans-BoldItalic.eot +0 -0
  14. package/assets/fonts/open-sans/BoldItalic/OpenSans-BoldItalic.svg +21121 -0
  15. package/assets/fonts/open-sans/BoldItalic/OpenSans-BoldItalic.ttf +0 -0
  16. package/assets/fonts/open-sans/BoldItalic/OpenSans-BoldItalic.woff +0 -0
  17. package/assets/fonts/open-sans/BoldItalic/OpenSans-BoldItalic.woff2 +0 -0
  18. package/assets/fonts/open-sans/ExtraBoldItalic/OpenSans-ExtraboldItalic.eot +0 -0
  19. package/assets/fonts/open-sans/ExtraBoldItalic/OpenSans-ExtraboldItalic.svg +21120 -0
  20. package/assets/fonts/open-sans/ExtraBoldItalic/OpenSans-ExtraboldItalic.ttf +0 -0
  21. package/assets/fonts/open-sans/ExtraBoldItalic/OpenSans-ExtraboldItalic.woff +0 -0
  22. package/assets/fonts/open-sans/ExtraBoldItalic/OpenSans-ExtraboldItalic.woff2 +0 -0
  23. package/assets/fonts/open-sans/SemiboldItalic/OpenSans-SemiboldItalic.eot +0 -0
  24. package/assets/fonts/open-sans/SemiboldItalic/OpenSans-SemiboldItalic.svg +21154 -0
  25. package/assets/fonts/open-sans/SemiboldItalic/OpenSans-SemiboldItalic.ttf +0 -0
  26. package/assets/fonts/open-sans/SemiboldItalic/OpenSans-SemiboldItalic.woff +0 -0
  27. package/assets/fonts/open-sans/SemiboldItalic/OpenSans-SemiboldItalic.woff2 +0 -0
  28. package/assets/fonts/primeicons/primeicons.woff2 +0 -0
  29. package/copy.json +12 -0
  30. package/design-tokens/colors.yml +34 -0
  31. package/migrate-sass-imports.js +87 -0
  32. package/package.json +46 -1
  33. package/src/_mixins.scss +39 -40
  34. package/src/_variables.scss +32 -33
  35. package/src/badge/_mixins.scss +5 -5
  36. package/src/badge/_variables.scss +2 -2
  37. package/src/badge/ids-badge.scss +1 -1
  38. package/src/base/_functions.scss +1 -1
  39. package/src/base/_mixins.scss +6 -6
  40. package/src/base/_variables.scss +1 -1
  41. package/src/base/ids-base.scss +3 -3
  42. package/src/box-shadow/_mixins.scss +1 -1
  43. package/src/box-shadow/_variables.scss +2 -0
  44. package/src/box-shadow/ids-box-shadow.scss +1 -1
  45. package/src/button/_mixins.scss +779 -775
  46. package/src/button/_variables.scss +3 -0
  47. package/src/button/ids-button.scss +1 -1
  48. package/src/button-group/_mixins.scss +3 -3
  49. package/src/button-group/ids-button-group.scss +1 -1
  50. package/src/card/_mixins.scss +382 -376
  51. package/src/card/_variables.scss +3 -1
  52. package/src/card/ids-card.scss +1 -1
  53. package/src/checkbox/_mixins.scss +430 -428
  54. package/src/checkbox/_variables.scss +2 -0
  55. package/src/checkbox/ids-checkbox.scss +1 -1
  56. package/src/common.scss +44 -45
  57. package/src/container/_mixins.scss +3 -2
  58. package/src/container/_variables.scss +3 -1
  59. package/src/container/ids-container.scss +1 -1
  60. package/src/crop/_mixins.scss +1 -1
  61. package/src/crop/_variables.scss +2 -0
  62. package/src/crop/ids-crop.scss +1 -1
  63. package/src/crumb/_mixins.scss +37 -36
  64. package/src/crumb/_variables.scss +2 -0
  65. package/src/crumb/ids-crumb.scss +1 -1
  66. package/src/flex/ids-flex.scss +1 -1
  67. package/src/form/_mixins.scss +3 -3
  68. package/src/form/_variables.scss +2 -2
  69. package/src/form/ids-form.scss +1 -1
  70. package/src/form-group/_mixins.scss +1 -1
  71. package/src/form-group/ids-form-group.scss +1 -1
  72. package/src/grid/_mixins.scss +3 -3
  73. package/src/grid/_variables.scss +3 -1
  74. package/src/grid/ids-grid.scss +1 -1
  75. package/src/helpers/helpers.scss +1 -1
  76. package/src/icon/_mixins.scss +397 -395
  77. package/src/icon/_variables.scss +2 -2
  78. package/src/icon/ids-icon.scss +1 -1
  79. package/src/image/_mixins.scss +1 -1
  80. package/src/image/_variables.scss +2 -0
  81. package/src/image/ids-image.scss +1 -1
  82. package/src/input/_mixins.scss +418 -415
  83. package/src/input/_variables.scss +4 -2
  84. package/src/input/ids-input.scss +2 -2
  85. package/src/input-group/_mixins.scss +108 -104
  86. package/src/input-group/_variables.scss +2 -2
  87. package/src/input-group/ids-input-group.scss +1 -1
  88. package/src/inspark.scss +2 -2
  89. package/src/label/_mixins.scss +5 -5
  90. package/src/label/_variables.scss +2 -0
  91. package/src/label/ids-label.scss +1 -1
  92. package/src/list/_mixins.scss +288 -287
  93. package/src/list/_variables.scss +2 -0
  94. package/src/list/ids-list.scss +1 -1
  95. package/src/list-group/_mixins.scss +282 -278
  96. package/src/list-group/_variables.scss +2 -0
  97. package/src/list-group/ids-list-group.scss +1 -1
  98. package/src/mediaqueries/_mixins.scss +1 -1
  99. package/src/mediaqueries/_variables.scss +2 -0
  100. package/src/mediaqueries/ids-mediaqueries.scss +1 -1
  101. package/src/nav/_mixins.scss +92 -89
  102. package/src/nav/_variables.scss +2 -0
  103. package/src/nav/ids-nav.scss +1 -1
  104. package/src/navbar/_mixins.scss +653 -650
  105. package/src/navbar/_variables.scss +3 -2
  106. package/src/navbar/ids-navbar.scss +1 -1
  107. package/src/new-component-template/_mixins.scss +2 -2
  108. package/src/new-component-template/_variables.scss +2 -2
  109. package/src/new-component-template/ids-new-component-template.scss +1 -1
  110. package/src/overlay/_mixins.scss +2 -2
  111. package/src/overlay/ids-overlay.scss +1 -1
  112. package/src/pallete/blue.scss +1 -1
  113. package/src/pallete/contrast.scss +1 -1
  114. package/src/pallete/pallete.scss +5 -5
  115. package/src/panel/_mixins.scss +765 -763
  116. package/src/panel/_variables.scss +3 -2
  117. package/src/panel/ids-panel.scss +1 -1
  118. package/src/particles/_mixins.scss +65 -64
  119. package/src/particles/ids-particles.scss +1 -1
  120. package/src/radio/_mixins.scss +212 -210
  121. package/src/radio/_variables.scss +2 -0
  122. package/src/radio/ids-radio.scss +1 -1
  123. package/src/ratio/_mixins.scss +1 -1
  124. package/src/ratio/_variables.scss +2 -0
  125. package/src/ratio/ids-ratio.scss +1 -1
  126. package/src/sass-mq/_mixins.scss +1 -1
  127. package/src/sass-mq/_variables.scss +2 -0
  128. package/src/sass-mq/ids-sass-mq.scss +1 -1
  129. package/src/select/_mixins.scss +269 -267
  130. package/src/select/_variables.scss +3 -0
  131. package/src/select/ids-select.scss +1 -1
  132. package/src/sidebar/_mixins.scss +3 -3
  133. package/src/sidebar/_variables.scss +2 -2
  134. package/src/sidebar/ids-sidebar.scss +1 -1
  135. package/src/static/_mixins.scss +1 -1
  136. package/src/static/ids-static.scss +1 -1
  137. package/src/table/_mixins.scss +522 -518
  138. package/src/table/_variables.scss +2 -0
  139. package/src/table/ids-table.scss +1 -1
  140. package/src/textarea/_mixins.scss +39 -39
  141. package/src/textarea/_variables.scss +2 -0
  142. package/src/textarea/ids-textarea.scss +1 -1
  143. package/src/theme/_mixins.scss +4 -3
  144. package/src/theme/_variables.scss +5 -4
  145. package/src/theme/blue.scss +440 -448
  146. package/src/theme/contrast.scss +398 -406
  147. package/src/theme/green.scss +432 -440
  148. package/src/theme/ids-theme.scss +5 -5
  149. package/src/theme/light.scss +398 -406
  150. package/src/tools/_tools.border-radius.scss +1 -0
  151. package/src/tools/_tools.rem.scss +1 -0
  152. package/src/tools/ids-tools.scss +9 -9
  153. package/src/tooltip/_mixins.scss +820 -817
  154. package/src/tooltip/_variables.scss +2 -2
  155. package/src/tooltip/ids-tooltip.scss +1 -1
  156. package/src/tree-table/_mixins.scss +335 -331
  157. package/src/tree-table/_variables.scss +2 -2
  158. package/src/tree-table/ids-tree-table.scss +1 -1
  159. package/src/typography/_mixins.scss +6 -1
  160. package/src/typography/_variables.scss +2 -2
  161. package/src/typography/ids-typography.scss +2 -2
  162. package/src/utilities/_loader.utilities.scss +17 -20
  163. package/src/utilities/_utilities.border.scss +2 -0
  164. package/src/utilities/_utilities.clearfix.scss +1 -0
  165. package/src/utilities/_utilities.headings.scss +2 -0
  166. package/src/utilities/_utilities.hide.scss +58 -56
  167. package/src/utilities/_utilities.lineheight.scss +2 -0
  168. package/src/utilities/_utilities.overflow.scss +1 -1
  169. package/src/utilities/_utilities.position.scss +3 -0
  170. package/src/utilities/_utilities.spacing.scss +77 -75
  171. package/src/utilities/_utilities.themes.scss +3 -0
  172. package/src/utilities/_utilities.typography.scss +179 -177
  173. package/src/utilities/_utilities.widths.scss +2 -2
  174. package/src/widgets/_components.widget.scss +3 -0
  175. package/src/widgets/_components.widget.themes.scss +3 -0
  176. package/src/widgets/_components.widgetStatus.scss +2 -0
  177. package/src/widgets/_components.widgetStatus.themes.scss +2 -0
  178. package/src/widgets/_components.widgetValue.scss +2 -0
  179. package/src/widgets/ids-widgets.scss +5 -5
  180. package/update_full.js +14 -0
  181. package/webpack.config.js +51 -0
  182. package/index.css +0 -24206
  183. package/index.js +0 -125
  184. package/src/nvd3/_components.charts-nvd3.scss +0 -182
  185. package/src/nvd3/_components.charts-nvd3.themes.scss +0 -179
  186. package/src/nvd3/_variables-theme-contrast.scss +0 -123
  187. package/src/nvd3/_variables-theme-green.scss +0 -123
  188. package/src/nvd3/_variables-theme-light.scss +0 -123
  189. package/src/nvd3/_variables.scss +0 -123
  190. package/src/nvd3/angular-nvd3.js +0 -719
  191. package/src/nvd3/bars/_components.bars.scss +0 -47
  192. package/src/nvd3/bars/_components.bars.themes.scss +0 -47
  193. package/src/nvd3/boxplot/_components.boxplot.scss +0 -23
  194. package/src/nvd3/boxplot/_components.boxplot.themes.scss +0 -21
  195. package/src/nvd3/bullet/_components.bullet.scss +0 -66
  196. package/src/nvd3/bullet/_components.bullet.themes.scss +0 -66
  197. package/src/nvd3/candlestick/_components.candlestick.scss +0 -31
  198. package/src/nvd3/candlestick/_components.candlestick.themes.scss +0 -31
  199. package/src/nvd3/force-directed-graph/_components.force-directed-graph.scss +0 -16
  200. package/src/nvd3/force-directed-graph/_components.force-directed-graph.themes.scss +0 -16
  201. package/src/nvd3/furious-legend/_components.furious-legend.scss +0 -27
  202. package/src/nvd3/furious-legend/_components.furious-legend.themes.scss +0 -27
  203. package/src/nvd3/lineplusbar/_components.lineplusbar.scss +0 -12
  204. package/src/nvd3/lineplusbar/_components.lineplusbar.themes.scss +0 -12
  205. package/src/nvd3/lines/_components.lines.scss +0 -172
  206. package/src/nvd3/lines/_components.lines.themes.scss +0 -170
  207. package/src/nvd3/ohlc/_components.ohlc.scss +0 -18
  208. package/src/nvd3/ohlc/_components.ohlc.themes.scss +0 -18
  209. package/src/nvd3/parallelcoordinates/_components.parallelcoordinates.scss +0 -35
  210. package/src/nvd3/parallelcoordinates/_components.parallelcoordinates.themes.scss +0 -35
  211. package/src/nvd3/pie/_components.pie.scss +0 -99
  212. package/src/nvd3/pie/_components.pie.themes.scss +0 -97
  213. package/src/nvd3/scatter/_components.scatter.scss +0 -21
  214. package/src/nvd3/scatter/_components.scatter.themes.scss +0 -21
  215. package/src/nvd3/sparkline/_components.sparkline.scss +0 -54
  216. package/src/nvd3/sparkline/_components.sparkline.themes.scss +0 -54
  217. package/src/nvd3/stackedarea/_components.stackedarea.scss +0 -146
  218. package/src/nvd3/stackedarea/_components.stackedarea.themes.scss +0 -145
  219. package/src/nvd3/tooltip/_components.tooltip.scss +0 -186
  220. package/src/nvd3/tooltip/_components.tooltip.themes.scss +0 -186
  221. /package/{fonts → assets/fonts/lato}/lato-bold.woff +0 -0
  222. /package/{fonts → assets/fonts/lato}/lato-bold.woff2 +0 -0
  223. /package/{fonts → assets/fonts/lato}/lato-bolditalic.woff +0 -0
  224. /package/{fonts → assets/fonts/lato}/lato-bolditalic.woff2 +0 -0
  225. /package/{fonts → assets/fonts/lato}/lato-italic.woff +0 -0
  226. /package/{fonts → assets/fonts/lato}/lato-italic.woff2 +0 -0
  227. /package/{fonts → assets/fonts/lato}/lato-regular.woff +0 -0
  228. /package/{fonts → assets/fonts/lato}/lato-regular.woff2 +0 -0
  229. /package/{fonts → assets/fonts/material-design-icons}/MaterialIcons-Regular.ttf +0 -0
  230. /package/{fonts → assets/fonts/material-design-icons}/MaterialIcons-Regular.woff +0 -0
  231. /package/{fonts → assets/fonts/material-design-icons}/MaterialIcons-Regular.woff2 +0 -0
  232. /package/{fonts → assets/fonts/open-sans/Bold}/OpenSans-Bold.eot +0 -0
  233. /package/{fonts → assets/fonts/open-sans/Bold}/OpenSans-Bold.svg +0 -0
  234. /package/{fonts → assets/fonts/open-sans/Bold}/OpenSans-Bold.ttf +0 -0
  235. /package/{fonts → assets/fonts/open-sans/Bold}/OpenSans-Bold.woff +0 -0
  236. /package/{fonts → assets/fonts/open-sans/Bold}/OpenSans-Bold.woff2 +0 -0
  237. /package/{fonts → assets/fonts/open-sans/ExtraBold}/OpenSans-Extrabold.eot +0 -0
  238. /package/{fonts → assets/fonts/open-sans/ExtraBold}/OpenSans-Extrabold.svg +0 -0
  239. /package/{fonts → assets/fonts/open-sans/ExtraBold}/OpenSans-Extrabold.ttf +0 -0
  240. /package/{fonts → assets/fonts/open-sans/ExtraBold}/OpenSans-Extrabold.woff +0 -0
  241. /package/{fonts → assets/fonts/open-sans/ExtraBold}/OpenSans-Extrabold.woff2 +0 -0
  242. /package/{fonts → assets/fonts/open-sans/Italic}/OpenSans-Italic.eot +0 -0
  243. /package/{fonts → assets/fonts/open-sans/Italic}/OpenSans-Italic.svg +0 -0
  244. /package/{fonts → assets/fonts/open-sans/Italic}/OpenSans-Italic.ttf +0 -0
  245. /package/{fonts → assets/fonts/open-sans/Italic}/OpenSans-Italic.woff +0 -0
  246. /package/{fonts → assets/fonts/open-sans/Italic}/OpenSans-Italic.woff2 +0 -0
  247. /package/{fonts → assets/fonts/open-sans/Light}/OpenSans-Light.eot +0 -0
  248. /package/{fonts → assets/fonts/open-sans/Light}/OpenSans-Light.svg +0 -0
  249. /package/{fonts → assets/fonts/open-sans/Light}/OpenSans-Light.ttf +0 -0
  250. /package/{fonts → assets/fonts/open-sans/Light}/OpenSans-Light.woff +0 -0
  251. /package/{fonts → assets/fonts/open-sans/Light}/OpenSans-Light.woff2 +0 -0
  252. /package/{fonts → assets/fonts/open-sans/LightItalic}/OpenSansLight-Italic.eot +0 -0
  253. /package/{fonts → assets/fonts/open-sans/LightItalic}/OpenSansLight-Italic.svg +0 -0
  254. /package/{fonts → assets/fonts/open-sans/LightItalic}/OpenSansLight-Italic.ttf +0 -0
  255. /package/{fonts → assets/fonts/open-sans/LightItalic}/OpenSansLight-Italic.woff +0 -0
  256. /package/{fonts → assets/fonts/open-sans/LightItalic}/OpenSansLight-Italic.woff2 +0 -0
  257. /package/{fonts → assets/fonts/open-sans/Regular}/OpenSans.eot +0 -0
  258. /package/{fonts → assets/fonts/open-sans/Regular}/OpenSans.svg +0 -0
  259. /package/{fonts → assets/fonts/open-sans/Regular}/OpenSans.ttf +0 -0
  260. /package/{fonts → assets/fonts/open-sans/Regular}/OpenSans.woff +0 -0
  261. /package/{fonts → assets/fonts/open-sans/Regular}/OpenSans.woff2 +0 -0
  262. /package/{fonts → assets/fonts/open-sans/Semibold}/OpenSans-Semibold.eot +0 -0
  263. /package/{fonts → assets/fonts/open-sans/Semibold}/OpenSans-Semibold.svg +0 -0
  264. /package/{fonts → assets/fonts/open-sans/Semibold}/OpenSans-Semibold.ttf +0 -0
  265. /package/{fonts → assets/fonts/open-sans/Semibold}/OpenSans-Semibold.woff +0 -0
  266. /package/{fonts → assets/fonts/open-sans/Semibold}/OpenSans-Semibold.woff2 +0 -0
  267. /package/{fonts → assets/fonts/primeicons}/primeicons.eot +0 -0
  268. /package/{fonts → assets/fonts/primeicons}/primeicons.svg +0 -0
  269. /package/{fonts → assets/fonts/primeicons}/primeicons.ttf +0 -0
  270. /package/{fonts → assets/fonts/primeicons}/primeicons.woff +0 -0
@@ -1,817 +1,820 @@
1
- @import "../base/variables";
2
- @import "./variables";
3
- @import "../typography/variables";
4
-
5
- @mixin ids-tooltip-core-styles {
6
- @include ids-tooltip;
7
- @include ids-tooltip-directions;
8
- @include ids-tooltip-sizes;
9
- @include ids-tooltip-validation;
10
- }
11
-
12
- /*
13
- Tooltip
14
-
15
- A tooltip provides a short description of a UI element.
16
-
17
- `.c-tooltip`
18
-
19
- This class wraps an actionable icon followed by the .c-tooltip__content to be shown on the icon. The content appears when the user hovers over the icon.
20
-
21
- `.c-tooltip__content`
22
-
23
- This class contains the text that will be shown when the tooltip is visible.
24
-
25
- - Use a verb phrase to describe the action on the icon, for example, “Edit settings.”
26
- - Use only plain text and be concise. Tooltips can be a sentence fragment.
27
- - If more detailed information is required, use another form of help.
28
- - Use sentence-style caps and no ending punctuation.
29
-
30
- markup:
31
- <div class="o-box o-box_large">
32
- <a href="#" role="tooltip" aria-haspopup="true" class="c-tooltip">
33
- <span class="fa fa-calendar"></span>
34
- <span class="c-tooltip__content">Tooltip content</span>
35
- </a>
36
- </div>
37
-
38
- */
39
-
40
- @mixin ids-tooltip {
41
- .c-tooltip {
42
- display: block;
43
- position: relative;
44
- text-align: left;
45
- overflow: visible;
46
-
47
- &:hover,
48
- &:focus {
49
- .c-tooltip__content {
50
- visibility: visible;
51
- opacity: 1;
52
- }
53
- }
54
-
55
- &:focus {
56
- outline: 0;
57
-
58
- &:first-child {
59
- outline-offset: 1px;
60
- outline-width: 1px;
61
- outline-color: #3b99fc;
62
- outline-style: solid;
63
- }
64
- }
65
- }
66
-
67
- .c-tooltip__content {
68
- position: absolute;
69
- width: auto;
70
- margin: 0;
71
- margin-bottom: $unit-small;
72
- padding: 9px 12px;
73
- font-size: 13px;
74
- font-weight: 400;
75
- letter-spacing: normal;
76
- border-radius: 3px;
77
- line-height: $line-height-computed;
78
- visibility: hidden;
79
- opacity: 0;
80
- transition: opacity 0.3s linear;
81
- z-index: 1070;
82
- background: $tooltip-bg;
83
- @include ids-box-shadow-core-styles;
84
- color: $tooltip-color;
85
- white-space: normal;
86
- text-transform: none;
87
- }
88
- }
89
-
90
- /*
91
- Tooltip directions
92
-
93
- Tooltips support six directions, defined by using one of the following classes with the `.c-tooltip` class:
94
- - `.c-tooltip_top-right`
95
- - `.c-tooltip_top-left`
96
- - `.c-tooltip_bottom-right`
97
- - `.c-tooltip_bottom-left`
98
- - `.c-tooltip_right`
99
- - `.c-tooltip_left`
100
-
101
- markup:
102
- <div class="o-grid o-grid_wrap">
103
- <div class="o-grid__cell o-grid__cell_width-33 o-box">
104
- <a href="#" role="tooltip" aria-haspopup="true" class="c-tooltip c-tooltip_bottom-right">
105
- Bottom-right
106
- <span class="c-tooltip__content">Tooltip content</span>
107
- </a>
108
- </div>
109
- <div class="o-grid__cell o-grid__cell_width-33 o-box">
110
- <a href="#" role="tooltip" aria-haspopup="true" class="c-tooltip c-tooltip_bottom">
111
- Bottom
112
- <span class="c-tooltip__content">Tooltip content</span>
113
- </a>
114
- </div>
115
- <div class="o-grid__cell o-grid__cell_width-33 o-box">
116
- <a href="#" role="tooltip" aria-haspopup="true" class="c-tooltip c-tooltip_bottom-left">
117
- Bottom-left
118
- <span class="c-tooltip__content">Tooltip content</span>
119
- </a>
120
- </div>
121
- <div class="o-grid__cell o-grid__cell_width-33 o-box">
122
- <a href="#" role="tooltip" aria-haspopup="true" class="c-tooltip c-tooltip_right">
123
- Right
124
- <span class="c-tooltip__content">Tooltip content</span>
125
- </a>
126
- </div>
127
- <div class="o-grid__cell o-grid__cell_width-33 o-box">
128
- <div>
129
- No tooltip
130
- </div>
131
- </div>
132
- <div class="o-grid__cell o-grid__cell_width-33 o-box">
133
- <a href="#" role="tooltip" aria-haspopup="true" class="c-tooltip c-tooltip_left">
134
- Left
135
- <span class="c-tooltip__content">Tooltip content</span>
136
- </a>
137
- </div>
138
- <div class="o-grid__cell o-grid__cell_width-33 o-box">
139
- <a href="#" role="tooltip" aria-haspopup="true" class="c-tooltip c-tooltip_top-right">
140
- Top-right
141
- <span class="c-tooltip__content">Tooltip content</span>
142
- </a>
143
- </div>
144
- <div class="o-grid__cell o-grid__cell_width-33 o-box">
145
- <a href="#" role="tooltip" aria-haspopup="true" class="c-tooltip c-tooltip_top">
146
- Top
147
- <span class="c-tooltip__content">Tooltip content</span>
148
- </a>
149
- </div>
150
- <div class="o-grid__cell o-grid__cell_width-33 o-box">
151
- <a href="#" role="tooltip" aria-haspopup="true" class="c-tooltip c-tooltip_top-left">
152
- Top-left
153
- <span class="c-tooltip__content">Tooltip content</span>
154
- </a>
155
- </div>
156
- </div>
157
-
158
- */
159
-
160
- @mixin ids-tooltip-directions {
161
- .c-tooltip,
162
- .c-tooltip_top-right {
163
- > .c-tooltip__content {
164
- top: auto;
165
- bottom: 0%;
166
- left: 10%;
167
- right: auto;
168
- border-bottom-left-radius: 0;
169
-
170
- &::before {
171
- position: absolute;
172
- bottom: -9px;
173
- left: 0;
174
- top: auto;
175
- right: auto;
176
- content: "";
177
- border-left: 6px solid $tooltip-bg;
178
- border-top: 5px solid $tooltip-bg;
179
- border-right: 6px solid transparent;
180
- border-bottom: 5px solid transparent;
181
- }
182
- }
183
- }
184
-
185
- .c-tooltip_top-left > .c-tooltip__content {
186
- top: auto;
187
- bottom: 100%;
188
- right: 50%;
189
- left: auto;
190
- border-bottom-right-radius: 0;
191
-
192
- &::before {
193
- bottom: -9px;
194
- right: 0;
195
- top: auto;
196
- left: auto;
197
- content: "";
198
- border-right: 6px solid $tooltip-bg;
199
- border-top: 5px solid $tooltip-bg;
200
- border-left: 6px solid transparent;
201
- border-bottom: 5px solid transparent;
202
- }
203
- }
204
-
205
- .c-tooltip_bottom-right > .c-tooltip__content {
206
- bottom: auto;
207
- top: 100%;
208
- left: 50%;
209
- right: auto;
210
- margin-top: $unit-small;
211
- border-top-left-radius: 0;
212
-
213
- &::before {
214
- top: -9px;
215
- left: 0;
216
- bottom: auto;
217
- right: auto;
218
- content: "";
219
- border-left: 6px solid $tooltip-bg;
220
- border-bottom: 5px solid $tooltip-bg;
221
- border-right: 6px solid transparent;
222
- border-top: 5px solid transparent;
223
- }
224
- }
225
-
226
- .c-tooltip_bottom-left > .c-tooltip__content {
227
- bottom: auto;
228
- top: 100%;
229
- right: 50%;
230
- left: auto;
231
- margin-top: $unit-small;
232
- border-top-right-radius: 0;
233
-
234
- &::before {
235
- top: -9px;
236
- right: 0;
237
- bottom: auto;
238
- left: auto;
239
- content: "";
240
- border-right: 6px solid $tooltip-bg;
241
- border-bottom: 5px solid $tooltip-bg;
242
- border-left: 6px solid transparent;
243
- border-top: 5px solid transparent;
244
- }
245
- }
246
-
247
- .c-tooltip_bottom > .c-tooltip__content {
248
- bottom: auto;
249
- top: 100%;
250
- transform: translateX(-50%) translateY(8px);
251
-
252
- &::before {
253
- position: absolute;
254
- top: -10px;
255
- right: calc(50% - 6px);
256
- bottom: auto;
257
- left: auto;
258
- content: "";
259
- border-right: 6px solid transparent;
260
- border-bottom: 5px solid $tooltip-bg;
261
- border-left: 6px solid transparent;
262
- border-top: 5px solid transparent;
263
- }
264
- }
265
-
266
- .c-tooltip_right > .c-tooltip__content {
267
- right: auto;
268
- left: 100%;
269
- top: 50%;
270
- bottom: auto;
271
- margin-left: $unit-small;
272
- border-top-left-radius: 0;
273
-
274
- &::before {
275
- top: 0;
276
- left: -9px;
277
- bottom: auto;
278
- right: auto;
279
- content: "";
280
- border-top: 6px solid $tooltip-bg;
281
- border-right: 5px solid $tooltip-bg;
282
- border-bottom: 6px solid transparent;
283
- border-left: 5px solid transparent;
284
- }
285
- }
286
-
287
- .c-tooltip_left > .c-tooltip__content {
288
- left: auto;
289
- right: 100%;
290
- top: 50%;
291
- bottom: auto;
292
- margin-right: $unit-small;
293
- border-top-right-radius: 0;
294
-
295
- &::before {
296
- top: 0;
297
- right: -9px;
298
- bottom: auto;
299
- left: auto;
300
- content: "";
301
- border-top: 6px solid $tooltip-bg;
302
- border-left: 5px solid $tooltip-bg;
303
- border-bottom: 6px solid transparent;
304
- border-right: 5px solid transparent;
305
- }
306
- }
307
-
308
- .c-tooltip_top > .c-tooltip__content {
309
- top: auto;
310
- bottom: 100%;
311
- transform: translateX(-50%) translateY(8px);
312
-
313
- &::before {
314
- position: absolute;
315
- bottom: -10px;
316
- right: calc(50% - 6px);
317
- top: auto;
318
- left: auto;
319
- content: "";
320
- border-right: 6px solid transparent;
321
- border-top: 5px solid $tooltip-bg;
322
- border-left: 6px solid transparent;
323
- border-bottom: 5px solid transparent;
324
- }
325
- }
326
- }
327
-
328
- /*
329
- Tooltip sizes
330
-
331
- Set a width that accommodates the text string. The default is 240 px. Other choices are 72 px, 120 px, and 360 px.
332
- - `.c-tooltip_xs` - 72px,
333
- - `.c-tooltip_sm` - 120px,
334
- - `.c-tooltip_lg` - 360px
335
-
336
- markup:
337
- <div class="o-box o-box_large">
338
- <button class="c-btn c-tooltip c-tooltip_xs" role="tooltip" aria-haspopup="true">
339
- xsmall
340
- <span class="c-tooltip__content">width = 72px</span>
341
- </button>
342
- <button class="c-btn c-tooltip c-tooltip_sm" role="tooltip" aria-haspopup="true">
343
- small
344
- <span class="c-tooltip__content">width = 120px</span>
345
- </button>
346
- <button class="c-btn c-tooltip" role="tooltip" aria-haspopup="true">
347
- default
348
- <span class="c-tooltip__content">width = 240px</span>
349
- </button>
350
- <button class="c-btn c-tooltip c-tooltip_lg" role="tooltip" aria-haspopup="true">
351
- large
352
- <span class="c-tooltip__content">width = 360px</span>
353
- </button>
354
- </div>
355
-
356
- */
357
-
358
- @mixin ids-tooltip-sizes {
359
- .c-tooltip_xs > .c-tooltip__content {
360
- width: 72px;
361
- }
362
-
363
- .c-tooltip_sm > .c-tooltip__content {
364
- width: 120px;
365
- }
366
-
367
- .c-tooltip_md > .c-tooltip__content {
368
- width: 240px;
369
- }
370
-
371
- .c-tooltip_lg > .c-tooltip__content {
372
- width: 360px;
373
- }
374
-
375
- .c-tooltip,
376
- .c-tooltip_top-left,
377
- .c-tooltip_top-right {
378
- > .c-btn + .c-tooltip__content {
379
- margin-bottom: 10px;
380
- }
381
- }
382
-
383
- .c-tooltip_bottom-left,
384
- .c-tooltip_bottom-right {
385
- > .c-btn + .c-tooltip__content {
386
- margin-top: 10px;
387
- }
388
- }
389
-
390
- .c-tooltip_right > .c-btn + .c-tooltip__content {
391
- margin-left: 4px;
392
- }
393
- }
394
-
395
- /*
396
- Tooltip-based validation messages
397
-
398
- Works on both field layouts. Instead of default tooltip validation tooltip fires on `:focus` event.
399
-
400
- Top, top-left and top-right tooltip variants are preferred.
401
-
402
- markup:
403
- <form class="c-form c-form_compact">
404
- <div class="c-form-group">
405
- <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_top-right is-tooltip-validation_invalid">
406
- <label class="c-label" for="inputflc12" >Input-label siblings layout</label>
407
- <input class="c-input c-input_is-error" id="inputflc12" placeholder="Type something..." type="text">
408
- <span class="c-tooltip__content">Invalid content in field</span>
409
- </div>
410
- </div>
411
- <div class="c-form-group">
412
- <label class="c-label c-tooltip c-tooltip_validation c-tooltip_top-right is-tooltip-validation_invalid">
413
- <span class="c-label__content">Input wrapped with label layout</span>
414
- <input class="c-input c-input_is-error c-input_block" type="text" placeholder="Type something...">
415
- <span class="c-tooltip__content">Invalid content in field</span>
416
- </label>
417
- </div>
418
- <div class="c-form-group">
419
- <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_bottom-right is-tooltip-validation_invalid">
420
- <label class="c-label" for="inputflc12" >Input-label siblings layout</label>
421
- <input class="c-input c-input_is-error" id="inputflc12" placeholder="Type something..." type="text">
422
- <span class="c-tooltip__content">Invalid content in field</span>
423
- </div>
424
- </div>
425
- <div class="c-form-group">
426
- <label class="c-label c-tooltip c-tooltip_validation c-tooltip_bottom-right is-tooltip-validation_invalid">
427
- <span class="c-label__content">Input wrapped with label layout</span>
428
- <input class="c-input c-input_is-error c-input_block" type="text" placeholder="Type something...">
429
- <span class="c-tooltip__content">Invalid content in field</span>
430
- </label>
431
- </div>
432
- <div class="c-form-group">
433
- <label class="c-checkbox c-checkbox_inline">
434
- <input type="checkbox" class="c-checkbox__input">
435
- <i class="c-checkbox__icon"></i>
436
- <span class="c-checkbox__label">Check this</span>
437
- </label>
438
- <label class="c-checkbox c-checkbox_inline">
439
- <input type="checkbox" class="c-checkbox__input">
440
- <i class="c-checkbox__icon"></i>
441
- <span class="c-checkbox__label">Check this</span>
442
- </label>
443
- </div>
444
- <div class="o-grid o-grid_wrap">
445
- <div class="o-grid__cell o-grid__cell_width-33 o-box">
446
- <div class="c-form-group">
447
- <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_bottom-right is-tooltip-validation_invalid">
448
- <label class="c-label" for="inputflc1233" >Tooltip at</label>
449
- <input class="c-input c-input_is-error" id="inputflc1233" placeholder="bottom-right" type="text">
450
- <span class="c-tooltip__content">Invalid content in field</span>
451
- </div>
452
- </div>
453
- <div class="c-form-group">
454
- <label class="c-label c-tooltip c-tooltip_validation c-tooltip_bottom-right is-tooltip-validation_invalid">
455
- <span class="c-label__content">Tooltip at</span>
456
- <input class="c-input c-input_is-error c-input_small" type="text" placeholder="bottom-right">
457
- <span class="c-tooltip__content">Invalid content in field</span>
458
- </label>
459
- </div>
460
- </div>
461
- <div class="o-grid__cell o-grid__cell_width-33 o-box">
462
- <div class="c-form-group">
463
- <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_bottom is-tooltip-validation_invalid">
464
- <label class="c-label" for="inputflc1234" >Tooltip at</label>
465
- <input class="c-input c-input_is-error" id="inputflc1234" placeholder="bottom" type="text">
466
- <span class="c-tooltip__content">Invalid content in field</span>
467
- </div>
468
- </div>
469
- <div class="c-form-group">
470
- <label class="c-label c-tooltip c-tooltip_validation c-tooltip_bottom is-tooltip-validation_invalid">
471
- <span class="c-label__content">Tooltip at</span>
472
- <input class="c-input c-input_is-error c-input_small" type="text" placeholder="bottom">
473
- <span class="c-tooltip__content">Invalid content in field</span>
474
- </label>
475
- </div>
476
- </div>
477
- <div class="o-grid__cell o-grid__cell_width-33 o-box">
478
- <div class="c-form-group">
479
- <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_bottom-left is-tooltip-validation_invalid">
480
- <label class="c-label" for="inputflc1235" >Tooltip at</label>
481
- <input class="c-input c-input_is-error" id="inputflc1235" placeholder="bottom-left" type="text">
482
- <span class="c-tooltip__content">Invalid content in field</span>
483
- </div>
484
- </div>
485
- <div class="c-form-group">
486
- <label class="c-label c-tooltip c-tooltip_validation c-tooltip_bottom-left is-tooltip-validation_invalid">
487
- <span class="c-label__content">Tooltip at</span>
488
- <input class="c-input c-input_is-error c-input_small" type="text" placeholder="bottom-left">
489
- <span class="c-tooltip__content">Invalid content in field</span>
490
- </label>
491
- </div>
492
- </div>
493
- <div class="o-grid__cell o-grid__cell_width-33 o-box">
494
- <div class="c-form-group">
495
- <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_right is-tooltip-validation_invalid">
496
- <label class="c-label" for="inputflc1236" >Tooltip at</label>
497
- <input class="c-input c-input_is-error" id="inputflc1236" placeholder="right" type="text">
498
- <span class="c-tooltip__content">Invalid content in field</span>
499
- </div>
500
- </div>
501
- <div class="c-form-group">
502
- <label class="c-label c-tooltip c-tooltip_validation c-tooltip_right is-tooltip-validation_invalid">
503
- <span class="c-label__content">Tooltip at</span>
504
- <input class="c-input c-input_is-error c-input_small" type="text" placeholder="right">
505
- <span class="c-tooltip__content">Invalid content in field</span>
506
- </label>
507
- </div>
508
- </div>
509
- <div class="o-grid__cell o-grid__cell_width-33 o-box">
510
- <div>
511
- No tooltip
512
- </div>
513
- </div>
514
- <div class="o-grid__cell o-grid__cell_width-33 o-box">
515
- <div class="c-form-group">
516
- <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_left is-tooltip-validation_invalid">
517
- <label class="c-label" for="inputflc1237" >Tooltip at</label>
518
- <input class="c-input c-input_is-error" id="inputflc1237" placeholder="left" type="text">
519
- <span class="c-tooltip__content">Invalid content in field</span>
520
- </div>
521
- </div>
522
- <div class="c-form-group">
523
- <label class="c-label c-tooltip c-tooltip_validation c-tooltip_left is-tooltip-validation_invalid">
524
- <span class="c-label__content">Tooltip at</span>
525
- <input class="c-input c-input_is-error c-input_small" type="text" placeholder="left">
526
- <span class="c-tooltip__content">Invalid content in field</span>
527
- </label>
528
- </div>
529
- </div>
530
- <div class="o-grid__cell o-grid__cell_width-33 o-box">
531
- <div class="c-form-group">
532
- <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_top-right is-tooltip-validation_invalid">
533
- <label class="c-label" for="inputflc1238" >Tooltip at</label>
534
- <input class="c-input c-input_is-error" id="inputflc1238" placeholder="top-right" type="text">
535
- <span class="c-tooltip__content">Invalid content in field</span>
536
- </div>
537
- </div>
538
- <div class="c-form-group">
539
- <label class="c-label c-tooltip c-tooltip_validation c-tooltip_top-right is-tooltip-validation_invalid">
540
- <span class="c-label__content">Tooltip at</span>
541
- <input class="c-input c-input_is-error c-input_small" type="text" placeholder="top-right">
542
- <span class="c-tooltip__content">Invalid content in field</span>
543
- </label>
544
- </div>
545
- </div>
546
- <div class="o-grid__cell o-grid__cell_width-33 o-box">
547
- <div class="c-form-group">
548
- <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_top is-tooltip-validation_invalid">
549
- <label class="c-label" for="inputflc1239" >Tooltip at</label>
550
- <input class="c-input c-input_is-error" id="inputflc1239" placeholder="top" type="text">
551
- <span class="c-tooltip__content">Invalid content in field</span>
552
- </div>
553
- </div>
554
- <div class="c-form-group">
555
- <label class="c-label c-tooltip c-tooltip_validation c-tooltip_top is-tooltip-validation_invalid">
556
- <span class="c-label__content">Tooltip at</span>
557
- <input class="c-input c-input_is-error c-input_small" type="text" placeholder="top">
558
- <span class="c-tooltip__content">Invalid content in field</span>
559
- </label>
560
- </div>
561
- </div>
562
- <div class="o-grid__cell o-grid__cell_width-33 o-box">
563
- <div class="c-form-group">
564
- <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_top-left is-tooltip-validation_invalid">
565
- <label class="c-label" for="inputflc1240" >Tooltip at</label>
566
- <input class="c-input c-input_is-error" id="inputflc1240" placeholder="top-left" type="text">
567
- <span class="c-tooltip__content">Invalid content in field</span>
568
- </div>
569
- </div>
570
- <div class="c-form-group">
571
- <label class="c-label c-tooltip c-tooltip_validation c-tooltip_top-left is-tooltip-validation_invalid">
572
- <span class="c-label__content">Tooltip at</span>
573
- <input class="c-input c-input_is-error c-input_small" type="text" placeholder="top-left">
574
- <span class="c-tooltip__content">Invalid content in field</span>
575
- </label>
576
- </div>
577
- </div>
578
- </div>
579
- </form>
580
-
581
- */
582
-
583
- @mixin ids-tooltip-validation {
584
- .c-tooltip_validation {
585
- .c-input {
586
- margin: 0;
587
- }
588
-
589
- > .c-input {
590
- padding-right: 28px;
591
- }
592
-
593
- &:hover .c-tooltip__content {
594
- visibility: hidden;
595
- opacity: 0;
596
- }
597
- }
598
-
599
- .is-tooltip-validation_invalid {
600
- > .c-input,
601
- .c-label + .c-input {
602
- //border-bottom: 1px solid $ids-theme-status-error;
603
- transition: none;
604
-
605
- &:focus {
606
- + .c-tooltip__content {
607
- background: $ids-theme-status-error;
608
- color: $color-base-white;
609
- visibility: visible;
610
- opacity: 1;
611
- }
612
- }
613
- }
614
-
615
- &,
616
- &.c-tooltip_top-right {
617
- > .c-input,
618
- .c-label + .c-input {
619
- &:focus {
620
- + .c-tooltip__content {
621
- left: 100%;
622
- bottom: 36px;
623
- right: auto;
624
- margin-left: -14px;
625
- }
626
- }
627
- }
628
- }
629
-
630
- &.c-tooltip_bottom-right {
631
- > .c-input,
632
- .c-label + .c-input {
633
- &:focus {
634
- + .c-tooltip__content {
635
- left: 100%;
636
- bottom: auto;
637
- right: auto;
638
- margin-left: -14px;
639
- }
640
- }
641
- }
642
- }
643
-
644
- &.c-tooltip_right {
645
- > .c-input,
646
- .c-label + .c-input {
647
- &:focus {
648
- + .c-tooltip__content {
649
- left: 100%;
650
- bottom: auto;
651
- right: auto;
652
- }
653
- }
654
- }
655
- }
656
-
657
- &.c-tooltip_top-left {
658
- > .c-input,
659
- .c-label + .c-input {
660
- &:focus {
661
- + .c-tooltip__content {
662
- right: 0;
663
- bottom: 36px;
664
- left: auto;
665
- margin-right: 14px;
666
- }
667
- }
668
- }
669
- }
670
-
671
- &.c-tooltip_left {
672
- > .c-input,
673
- .c-label + .c-input {
674
- &:focus {
675
- + .c-tooltip__content {
676
- right: 100%;
677
- bottom: auto;
678
- left: auto;
679
- margin-right: 14px;
680
- }
681
- }
682
- }
683
- }
684
-
685
- &.c-tooltip_bottom-left {
686
- > .c-input,
687
- .c-label + .c-input {
688
- &:focus {
689
- + .c-tooltip__content {
690
- right: 0;
691
- bottom: auto;
692
- left: auto;
693
- margin-right: 14px;
694
- }
695
- }
696
- }
697
- }
698
-
699
- &.c-tooltip_bottom {
700
- > .c-input,
701
- .c-label + .c-input {
702
- &:focus {
703
- + .c-tooltip__content {
704
- right: 0;
705
- bottom: auto;
706
- margin-top: auto;
707
- //left: auto;
708
- margin-right: 14px;
709
- }
710
- }
711
- }
712
- }
713
-
714
- /* stylelint-disable declaration-block-no-redundant-longhand-properties, declaration-no-important */
715
- &,
716
- &.c-tooltip_top-right {
717
- .c-tooltip__content::before {
718
- border-left-color: $ids-theme-status-error;
719
- border-top-color: $ids-theme-status-error;
720
- border-right-color: transparent;
721
- border-bottom-color: transparent;
722
- }
723
- }
724
-
725
- &.c-tooltip_top-left {
726
- .c-tooltip__content::before {
727
- border-right-color: $ids-theme-status-error;
728
- border-top-color: $ids-theme-status-error;
729
- border-left-color: transparent;
730
- border-bottom-color: transparent;
731
- }
732
- }
733
-
734
- &.c-tooltip_top {
735
- .c-tooltip__content::before {
736
- border-right-color: transparent;
737
- border-top-color: $ids-theme-status-error;
738
- border-left-color: transparent;
739
- border-bottom-color: transparent;
740
- }
741
- }
742
-
743
- &.c-tooltip_bottom-right {
744
- .c-tooltip__content::before {
745
- border-left-color: $ids-theme-status-error;
746
- border-bottom-color: $ids-theme-status-error;
747
- border-right-color: transparent;
748
- border-top-color: transparent;
749
- }
750
- }
751
-
752
- &.c-tooltip_bottom {
753
- .c-tooltip__content::before {
754
- border-left-color: transparent;
755
- border-bottom-color: $ids-theme-status-error;
756
- border-right-color: transparent;
757
- border-top-color: transparent;
758
- }
759
- }
760
-
761
- &.c-tooltip_bottom-left {
762
- .c-tooltip__content::before {
763
- border-right-color: $ids-theme-status-error;
764
- border-bottom-color: $ids-theme-status-error;
765
- border-left-color: transparent;
766
- border-top-color: transparent;
767
- }
768
- }
769
-
770
- &.c-tooltip_left > .c-input:focus + .c-tooltip__content,
771
- &.c-tooltip_left + .c-label + .c-input:focus + .c-tooltip__content {
772
- right: 100%;
773
- left: auto;
774
- margin: 0 14px 0 0;
775
-
776
- &::before {
777
- border-top-color: $ids-theme-status-error;
778
- border-left-color: $ids-theme-status-error;
779
- border-bottom-color: transparent;
780
- border-right-color: transparent;
781
- }
782
- }
783
-
784
- &.c-tooltip_right > .c-input:focus + .c-tooltip__content,
785
- &.c-tooltip_right + .c-label + .c-input:focus + .c-tooltip__content {
786
- left: 100%;
787
- right: auto;
788
- margin: 0 0 0 14px;
789
-
790
- &::before {
791
- border-top-color: $ids-theme-status-error;
792
- border-right-color: $ids-theme-status-error;
793
- border-bottom-color: transparent;
794
- border-left-color: transparent;
795
- }
796
- }
797
-
798
- /* stylelint-enable */
799
-
800
- &::before {
801
- position: absolute;
802
- content: "";
803
- height: 16px;
804
- width: 16px;
805
- top: 35px;
806
- right: 6px;
807
- background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20version%3D%221.1%22%20viewBox%3D%225%205%2026%2026%22%20preserveAspectRatio%3D%22xMidYMid%20meet%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%3Cdefs%3E%3Cstyle%3E.clr-i-outline%7Bfill%3A%23a32100%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctitle%3Eexclamation-circle-line%3C%2Ftitle%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20class%3D%22clr-i-outline%20clr-i-outline-path-1%22%20d%3D%22M18%2C6A12%2C12%2C0%2C1%2C0%2C30%2C18%2C12%2C12%2C0%2C0%2C0%2C18%2C6Zm0%2C22A10%2C10%2C0%2C1%2C1%2C28%2C18%2C10%2C10%2C0%2C0%2C1%2C18%2C28Z%22%3E%3C%2Fpath%3E%3Cpath%20class%3D%22clr-i-outline%20clr-i-outline-path-2%22%20d%3D%22M18%2C20.07a1.3%2C1.3%2C0%2C0%2C1-1.3-1.3v-6a1.3%2C1.3%2C0%2C1%2C1%2C2.6%2C0v6A1.3%2C1.3%2C0%2C0%2C1%2C18%2C20.07Z%22%3E%3C%2Fpath%3E%3Ccircle%20class%3D%22clr-i-outline%20clr-i-outline-path-3%22%20cx%3D%2217.95%22%20cy%3D%2223.02%22%20r%3D%221.5%22%3E%3C%2Fcircle%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fsvg%3E");
808
- background-repeat: no-repeat;
809
- background-size: contain;
810
- vertical-align: middle;
811
- margin: 0;
812
- }
813
- }
814
- }
815
-
816
-
817
-
1
+ @use "../base/variables" as *;
2
+ @use "../theme/variables" as *;
3
+ @use "./variables" as *;
4
+ @use "../typography/variables" as *;
5
+ @use "../tools/tools.border-radius" as *;
6
+ @use "../box-shadow/mixins" as *;
7
+
8
+ @mixin ids-tooltip-core-styles {
9
+ @include ids-tooltip;
10
+ @include ids-tooltip-directions;
11
+ @include ids-tooltip-sizes;
12
+ @include ids-tooltip-validation;
13
+ }
14
+
15
+ /*
16
+ Tooltip
17
+
18
+ A tooltip provides a short description of a UI element.
19
+
20
+ `.c-tooltip`
21
+
22
+ This class wraps an actionable icon followed by the .c-tooltip__content to be shown on the icon. The content appears when the user hovers over the icon.
23
+
24
+ `.c-tooltip__content`
25
+
26
+ This class contains the text that will be shown when the tooltip is visible.
27
+
28
+ - Use a verb phrase to describe the action on the icon, for example, “Edit settings.”
29
+ - Use only plain text and be concise. Tooltips can be a sentence fragment.
30
+ - If more detailed information is required, use another form of help.
31
+ - Use sentence-style caps and no ending punctuation.
32
+
33
+ markup:
34
+ <div class="o-box o-box_large">
35
+ <a href="#" role="tooltip" aria-haspopup="true" class="c-tooltip">
36
+ <span class="fa fa-calendar"></span>
37
+ <span class="c-tooltip__content">Tooltip content</span>
38
+ </a>
39
+ </div>
40
+
41
+ */
42
+
43
+ @mixin ids-tooltip {
44
+ .c-tooltip {
45
+ display: block;
46
+ position: relative;
47
+ text-align: left;
48
+ overflow: visible;
49
+
50
+ &:hover,
51
+ &:focus {
52
+ .c-tooltip__content {
53
+ visibility: visible;
54
+ opacity: 1;
55
+ }
56
+ }
57
+
58
+ &:focus {
59
+ outline: 0;
60
+
61
+ &:first-child {
62
+ outline-offset: 1px;
63
+ outline-width: 1px;
64
+ outline-color: #3b99fc;
65
+ outline-style: solid;
66
+ }
67
+ }
68
+ }
69
+
70
+ .c-tooltip__content {
71
+ position: absolute;
72
+ width: auto;
73
+ margin: 0;
74
+ margin-bottom: $unit-small;
75
+ padding: 9px 12px;
76
+ font-size: 13px;
77
+ font-weight: 400;
78
+ letter-spacing: normal;
79
+ border-radius: 3px;
80
+ line-height: $line-height-computed;
81
+ visibility: hidden;
82
+ opacity: 0;
83
+ transition: opacity 0.3s linear;
84
+ z-index: 1070;
85
+ background: $tooltip-bg;
86
+ @include ids-box-shadow-core-styles;
87
+ color: $tooltip-color;
88
+ white-space: normal;
89
+ text-transform: none;
90
+ }
91
+ }
92
+
93
+ /*
94
+ Tooltip directions
95
+
96
+ Tooltips support six directions, defined by using one of the following classes with the `.c-tooltip` class:
97
+ - `.c-tooltip_top-right`
98
+ - `.c-tooltip_top-left`
99
+ - `.c-tooltip_bottom-right`
100
+ - `.c-tooltip_bottom-left`
101
+ - `.c-tooltip_right`
102
+ - `.c-tooltip_left`
103
+
104
+ markup:
105
+ <div class="o-grid o-grid_wrap">
106
+ <div class="o-grid__cell o-grid__cell_width-33 o-box">
107
+ <a href="#" role="tooltip" aria-haspopup="true" class="c-tooltip c-tooltip_bottom-right">
108
+ Bottom-right
109
+ <span class="c-tooltip__content">Tooltip content</span>
110
+ </a>
111
+ </div>
112
+ <div class="o-grid__cell o-grid__cell_width-33 o-box">
113
+ <a href="#" role="tooltip" aria-haspopup="true" class="c-tooltip c-tooltip_bottom">
114
+ Bottom
115
+ <span class="c-tooltip__content">Tooltip content</span>
116
+ </a>
117
+ </div>
118
+ <div class="o-grid__cell o-grid__cell_width-33 o-box">
119
+ <a href="#" role="tooltip" aria-haspopup="true" class="c-tooltip c-tooltip_bottom-left">
120
+ Bottom-left
121
+ <span class="c-tooltip__content">Tooltip content</span>
122
+ </a>
123
+ </div>
124
+ <div class="o-grid__cell o-grid__cell_width-33 o-box">
125
+ <a href="#" role="tooltip" aria-haspopup="true" class="c-tooltip c-tooltip_right">
126
+ Right
127
+ <span class="c-tooltip__content">Tooltip content</span>
128
+ </a>
129
+ </div>
130
+ <div class="o-grid__cell o-grid__cell_width-33 o-box">
131
+ <div>
132
+ No tooltip
133
+ </div>
134
+ </div>
135
+ <div class="o-grid__cell o-grid__cell_width-33 o-box">
136
+ <a href="#" role="tooltip" aria-haspopup="true" class="c-tooltip c-tooltip_left">
137
+ Left
138
+ <span class="c-tooltip__content">Tooltip content</span>
139
+ </a>
140
+ </div>
141
+ <div class="o-grid__cell o-grid__cell_width-33 o-box">
142
+ <a href="#" role="tooltip" aria-haspopup="true" class="c-tooltip c-tooltip_top-right">
143
+ Top-right
144
+ <span class="c-tooltip__content">Tooltip content</span>
145
+ </a>
146
+ </div>
147
+ <div class="o-grid__cell o-grid__cell_width-33 o-box">
148
+ <a href="#" role="tooltip" aria-haspopup="true" class="c-tooltip c-tooltip_top">
149
+ Top
150
+ <span class="c-tooltip__content">Tooltip content</span>
151
+ </a>
152
+ </div>
153
+ <div class="o-grid__cell o-grid__cell_width-33 o-box">
154
+ <a href="#" role="tooltip" aria-haspopup="true" class="c-tooltip c-tooltip_top-left">
155
+ Top-left
156
+ <span class="c-tooltip__content">Tooltip content</span>
157
+ </a>
158
+ </div>
159
+ </div>
160
+
161
+ */
162
+
163
+ @mixin ids-tooltip-directions {
164
+ .c-tooltip,
165
+ .c-tooltip_top-right {
166
+ > .c-tooltip__content {
167
+ top: auto;
168
+ bottom: 0%;
169
+ left: 10%;
170
+ right: auto;
171
+ border-bottom-left-radius: 0;
172
+
173
+ &::before {
174
+ position: absolute;
175
+ bottom: -9px;
176
+ left: 0;
177
+ top: auto;
178
+ right: auto;
179
+ content: "";
180
+ border-left: 6px solid $tooltip-bg;
181
+ border-top: 5px solid $tooltip-bg;
182
+ border-right: 6px solid transparent;
183
+ border-bottom: 5px solid transparent;
184
+ }
185
+ }
186
+ }
187
+
188
+ .c-tooltip_top-left > .c-tooltip__content {
189
+ top: auto;
190
+ bottom: 100%;
191
+ right: 50%;
192
+ left: auto;
193
+ border-bottom-right-radius: 0;
194
+
195
+ &::before {
196
+ bottom: -9px;
197
+ right: 0;
198
+ top: auto;
199
+ left: auto;
200
+ content: "";
201
+ border-right: 6px solid $tooltip-bg;
202
+ border-top: 5px solid $tooltip-bg;
203
+ border-left: 6px solid transparent;
204
+ border-bottom: 5px solid transparent;
205
+ }
206
+ }
207
+
208
+ .c-tooltip_bottom-right > .c-tooltip__content {
209
+ bottom: auto;
210
+ top: 100%;
211
+ left: 50%;
212
+ right: auto;
213
+ margin-top: $unit-small;
214
+ border-top-left-radius: 0;
215
+
216
+ &::before {
217
+ top: -9px;
218
+ left: 0;
219
+ bottom: auto;
220
+ right: auto;
221
+ content: "";
222
+ border-left: 6px solid $tooltip-bg;
223
+ border-bottom: 5px solid $tooltip-bg;
224
+ border-right: 6px solid transparent;
225
+ border-top: 5px solid transparent;
226
+ }
227
+ }
228
+
229
+ .c-tooltip_bottom-left > .c-tooltip__content {
230
+ bottom: auto;
231
+ top: 100%;
232
+ right: 50%;
233
+ left: auto;
234
+ margin-top: $unit-small;
235
+ border-top-right-radius: 0;
236
+
237
+ &::before {
238
+ top: -9px;
239
+ right: 0;
240
+ bottom: auto;
241
+ left: auto;
242
+ content: "";
243
+ border-right: 6px solid $tooltip-bg;
244
+ border-bottom: 5px solid $tooltip-bg;
245
+ border-left: 6px solid transparent;
246
+ border-top: 5px solid transparent;
247
+ }
248
+ }
249
+
250
+ .c-tooltip_bottom > .c-tooltip__content {
251
+ bottom: auto;
252
+ top: 100%;
253
+ transform: translateX(-50%) translateY(8px);
254
+
255
+ &::before {
256
+ position: absolute;
257
+ top: -10px;
258
+ right: calc(50% - 6px);
259
+ bottom: auto;
260
+ left: auto;
261
+ content: "";
262
+ border-right: 6px solid transparent;
263
+ border-bottom: 5px solid $tooltip-bg;
264
+ border-left: 6px solid transparent;
265
+ border-top: 5px solid transparent;
266
+ }
267
+ }
268
+
269
+ .c-tooltip_right > .c-tooltip__content {
270
+ right: auto;
271
+ left: 100%;
272
+ top: 50%;
273
+ bottom: auto;
274
+ margin-left: $unit-small;
275
+ border-top-left-radius: 0;
276
+
277
+ &::before {
278
+ top: 0;
279
+ left: -9px;
280
+ bottom: auto;
281
+ right: auto;
282
+ content: "";
283
+ border-top: 6px solid $tooltip-bg;
284
+ border-right: 5px solid $tooltip-bg;
285
+ border-bottom: 6px solid transparent;
286
+ border-left: 5px solid transparent;
287
+ }
288
+ }
289
+
290
+ .c-tooltip_left > .c-tooltip__content {
291
+ left: auto;
292
+ right: 100%;
293
+ top: 50%;
294
+ bottom: auto;
295
+ margin-right: $unit-small;
296
+ border-top-right-radius: 0;
297
+
298
+ &::before {
299
+ top: 0;
300
+ right: -9px;
301
+ bottom: auto;
302
+ left: auto;
303
+ content: "";
304
+ border-top: 6px solid $tooltip-bg;
305
+ border-left: 5px solid $tooltip-bg;
306
+ border-bottom: 6px solid transparent;
307
+ border-right: 5px solid transparent;
308
+ }
309
+ }
310
+
311
+ .c-tooltip_top > .c-tooltip__content {
312
+ top: auto;
313
+ bottom: 100%;
314
+ transform: translateX(-50%) translateY(8px);
315
+
316
+ &::before {
317
+ position: absolute;
318
+ bottom: -10px;
319
+ right: calc(50% - 6px);
320
+ top: auto;
321
+ left: auto;
322
+ content: "";
323
+ border-right: 6px solid transparent;
324
+ border-top: 5px solid $tooltip-bg;
325
+ border-left: 6px solid transparent;
326
+ border-bottom: 5px solid transparent;
327
+ }
328
+ }
329
+ }
330
+
331
+ /*
332
+ Tooltip sizes
333
+
334
+ Set a width that accommodates the text string. The default is 240 px. Other choices are 72 px, 120 px, and 360 px.
335
+ - `.c-tooltip_xs` - 72px,
336
+ - `.c-tooltip_sm` - 120px,
337
+ - `.c-tooltip_lg` - 360px
338
+
339
+ markup:
340
+ <div class="o-box o-box_large">
341
+ <button class="c-btn c-tooltip c-tooltip_xs" role="tooltip" aria-haspopup="true">
342
+ xsmall
343
+ <span class="c-tooltip__content">width = 72px</span>
344
+ </button>
345
+ <button class="c-btn c-tooltip c-tooltip_sm" role="tooltip" aria-haspopup="true">
346
+ small
347
+ <span class="c-tooltip__content">width = 120px</span>
348
+ </button>
349
+ <button class="c-btn c-tooltip" role="tooltip" aria-haspopup="true">
350
+ default
351
+ <span class="c-tooltip__content">width = 240px</span>
352
+ </button>
353
+ <button class="c-btn c-tooltip c-tooltip_lg" role="tooltip" aria-haspopup="true">
354
+ large
355
+ <span class="c-tooltip__content">width = 360px</span>
356
+ </button>
357
+ </div>
358
+
359
+ */
360
+
361
+ @mixin ids-tooltip-sizes {
362
+ .c-tooltip_xs > .c-tooltip__content {
363
+ width: 72px;
364
+ }
365
+
366
+ .c-tooltip_sm > .c-tooltip__content {
367
+ width: 120px;
368
+ }
369
+
370
+ .c-tooltip_md > .c-tooltip__content {
371
+ width: 240px;
372
+ }
373
+
374
+ .c-tooltip_lg > .c-tooltip__content {
375
+ width: 360px;
376
+ }
377
+
378
+ .c-tooltip,
379
+ .c-tooltip_top-left,
380
+ .c-tooltip_top-right {
381
+ > .c-btn + .c-tooltip__content {
382
+ margin-bottom: 10px;
383
+ }
384
+ }
385
+
386
+ .c-tooltip_bottom-left,
387
+ .c-tooltip_bottom-right {
388
+ > .c-btn + .c-tooltip__content {
389
+ margin-top: 10px;
390
+ }
391
+ }
392
+
393
+ .c-tooltip_right > .c-btn + .c-tooltip__content {
394
+ margin-left: 4px;
395
+ }
396
+ }
397
+
398
+ /*
399
+ Tooltip-based validation messages
400
+
401
+ Works on both field layouts. Instead of default tooltip validation tooltip fires on `:focus` event.
402
+
403
+ Top, top-left and top-right tooltip variants are preferred.
404
+
405
+ markup:
406
+ <form class="c-form c-form_compact">
407
+ <div class="c-form-group">
408
+ <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_top-right is-tooltip-validation_invalid">
409
+ <label class="c-label" for="inputflc12" >Input-label siblings layout</label>
410
+ <input class="c-input c-input_is-error" id="inputflc12" placeholder="Type something..." type="text">
411
+ <span class="c-tooltip__content">Invalid content in field</span>
412
+ </div>
413
+ </div>
414
+ <div class="c-form-group">
415
+ <label class="c-label c-tooltip c-tooltip_validation c-tooltip_top-right is-tooltip-validation_invalid">
416
+ <span class="c-label__content">Input wrapped with label layout</span>
417
+ <input class="c-input c-input_is-error c-input_block" type="text" placeholder="Type something...">
418
+ <span class="c-tooltip__content">Invalid content in field</span>
419
+ </label>
420
+ </div>
421
+ <div class="c-form-group">
422
+ <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_bottom-right is-tooltip-validation_invalid">
423
+ <label class="c-label" for="inputflc12" >Input-label siblings layout</label>
424
+ <input class="c-input c-input_is-error" id="inputflc12" placeholder="Type something..." type="text">
425
+ <span class="c-tooltip__content">Invalid content in field</span>
426
+ </div>
427
+ </div>
428
+ <div class="c-form-group">
429
+ <label class="c-label c-tooltip c-tooltip_validation c-tooltip_bottom-right is-tooltip-validation_invalid">
430
+ <span class="c-label__content">Input wrapped with label layout</span>
431
+ <input class="c-input c-input_is-error c-input_block" type="text" placeholder="Type something...">
432
+ <span class="c-tooltip__content">Invalid content in field</span>
433
+ </label>
434
+ </div>
435
+ <div class="c-form-group">
436
+ <label class="c-checkbox c-checkbox_inline">
437
+ <input type="checkbox" class="c-checkbox__input">
438
+ <i class="c-checkbox__icon"></i>
439
+ <span class="c-checkbox__label">Check this</span>
440
+ </label>
441
+ <label class="c-checkbox c-checkbox_inline">
442
+ <input type="checkbox" class="c-checkbox__input">
443
+ <i class="c-checkbox__icon"></i>
444
+ <span class="c-checkbox__label">Check this</span>
445
+ </label>
446
+ </div>
447
+ <div class="o-grid o-grid_wrap">
448
+ <div class="o-grid__cell o-grid__cell_width-33 o-box">
449
+ <div class="c-form-group">
450
+ <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_bottom-right is-tooltip-validation_invalid">
451
+ <label class="c-label" for="inputflc1233" >Tooltip at</label>
452
+ <input class="c-input c-input_is-error" id="inputflc1233" placeholder="bottom-right" type="text">
453
+ <span class="c-tooltip__content">Invalid content in field</span>
454
+ </div>
455
+ </div>
456
+ <div class="c-form-group">
457
+ <label class="c-label c-tooltip c-tooltip_validation c-tooltip_bottom-right is-tooltip-validation_invalid">
458
+ <span class="c-label__content">Tooltip at</span>
459
+ <input class="c-input c-input_is-error c-input_small" type="text" placeholder="bottom-right">
460
+ <span class="c-tooltip__content">Invalid content in field</span>
461
+ </label>
462
+ </div>
463
+ </div>
464
+ <div class="o-grid__cell o-grid__cell_width-33 o-box">
465
+ <div class="c-form-group">
466
+ <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_bottom is-tooltip-validation_invalid">
467
+ <label class="c-label" for="inputflc1234" >Tooltip at</label>
468
+ <input class="c-input c-input_is-error" id="inputflc1234" placeholder="bottom" type="text">
469
+ <span class="c-tooltip__content">Invalid content in field</span>
470
+ </div>
471
+ </div>
472
+ <div class="c-form-group">
473
+ <label class="c-label c-tooltip c-tooltip_validation c-tooltip_bottom is-tooltip-validation_invalid">
474
+ <span class="c-label__content">Tooltip at</span>
475
+ <input class="c-input c-input_is-error c-input_small" type="text" placeholder="bottom">
476
+ <span class="c-tooltip__content">Invalid content in field</span>
477
+ </label>
478
+ </div>
479
+ </div>
480
+ <div class="o-grid__cell o-grid__cell_width-33 o-box">
481
+ <div class="c-form-group">
482
+ <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_bottom-left is-tooltip-validation_invalid">
483
+ <label class="c-label" for="inputflc1235" >Tooltip at</label>
484
+ <input class="c-input c-input_is-error" id="inputflc1235" placeholder="bottom-left" type="text">
485
+ <span class="c-tooltip__content">Invalid content in field</span>
486
+ </div>
487
+ </div>
488
+ <div class="c-form-group">
489
+ <label class="c-label c-tooltip c-tooltip_validation c-tooltip_bottom-left is-tooltip-validation_invalid">
490
+ <span class="c-label__content">Tooltip at</span>
491
+ <input class="c-input c-input_is-error c-input_small" type="text" placeholder="bottom-left">
492
+ <span class="c-tooltip__content">Invalid content in field</span>
493
+ </label>
494
+ </div>
495
+ </div>
496
+ <div class="o-grid__cell o-grid__cell_width-33 o-box">
497
+ <div class="c-form-group">
498
+ <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_right is-tooltip-validation_invalid">
499
+ <label class="c-label" for="inputflc1236" >Tooltip at</label>
500
+ <input class="c-input c-input_is-error" id="inputflc1236" placeholder="right" type="text">
501
+ <span class="c-tooltip__content">Invalid content in field</span>
502
+ </div>
503
+ </div>
504
+ <div class="c-form-group">
505
+ <label class="c-label c-tooltip c-tooltip_validation c-tooltip_right is-tooltip-validation_invalid">
506
+ <span class="c-label__content">Tooltip at</span>
507
+ <input class="c-input c-input_is-error c-input_small" type="text" placeholder="right">
508
+ <span class="c-tooltip__content">Invalid content in field</span>
509
+ </label>
510
+ </div>
511
+ </div>
512
+ <div class="o-grid__cell o-grid__cell_width-33 o-box">
513
+ <div>
514
+ No tooltip
515
+ </div>
516
+ </div>
517
+ <div class="o-grid__cell o-grid__cell_width-33 o-box">
518
+ <div class="c-form-group">
519
+ <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_left is-tooltip-validation_invalid">
520
+ <label class="c-label" for="inputflc1237" >Tooltip at</label>
521
+ <input class="c-input c-input_is-error" id="inputflc1237" placeholder="left" type="text">
522
+ <span class="c-tooltip__content">Invalid content in field</span>
523
+ </div>
524
+ </div>
525
+ <div class="c-form-group">
526
+ <label class="c-label c-tooltip c-tooltip_validation c-tooltip_left is-tooltip-validation_invalid">
527
+ <span class="c-label__content">Tooltip at</span>
528
+ <input class="c-input c-input_is-error c-input_small" type="text" placeholder="left">
529
+ <span class="c-tooltip__content">Invalid content in field</span>
530
+ </label>
531
+ </div>
532
+ </div>
533
+ <div class="o-grid__cell o-grid__cell_width-33 o-box">
534
+ <div class="c-form-group">
535
+ <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_top-right is-tooltip-validation_invalid">
536
+ <label class="c-label" for="inputflc1238" >Tooltip at</label>
537
+ <input class="c-input c-input_is-error" id="inputflc1238" placeholder="top-right" type="text">
538
+ <span class="c-tooltip__content">Invalid content in field</span>
539
+ </div>
540
+ </div>
541
+ <div class="c-form-group">
542
+ <label class="c-label c-tooltip c-tooltip_validation c-tooltip_top-right is-tooltip-validation_invalid">
543
+ <span class="c-label__content">Tooltip at</span>
544
+ <input class="c-input c-input_is-error c-input_small" type="text" placeholder="top-right">
545
+ <span class="c-tooltip__content">Invalid content in field</span>
546
+ </label>
547
+ </div>
548
+ </div>
549
+ <div class="o-grid__cell o-grid__cell_width-33 o-box">
550
+ <div class="c-form-group">
551
+ <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_top is-tooltip-validation_invalid">
552
+ <label class="c-label" for="inputflc1239" >Tooltip at</label>
553
+ <input class="c-input c-input_is-error" id="inputflc1239" placeholder="top" type="text">
554
+ <span class="c-tooltip__content">Invalid content in field</span>
555
+ </div>
556
+ </div>
557
+ <div class="c-form-group">
558
+ <label class="c-label c-tooltip c-tooltip_validation c-tooltip_top is-tooltip-validation_invalid">
559
+ <span class="c-label__content">Tooltip at</span>
560
+ <input class="c-input c-input_is-error c-input_small" type="text" placeholder="top">
561
+ <span class="c-tooltip__content">Invalid content in field</span>
562
+ </label>
563
+ </div>
564
+ </div>
565
+ <div class="o-grid__cell o-grid__cell_width-33 o-box">
566
+ <div class="c-form-group">
567
+ <div class="c-form-field c-tooltip c-tooltip_validation c-tooltip_top-left is-tooltip-validation_invalid">
568
+ <label class="c-label" for="inputflc1240" >Tooltip at</label>
569
+ <input class="c-input c-input_is-error" id="inputflc1240" placeholder="top-left" type="text">
570
+ <span class="c-tooltip__content">Invalid content in field</span>
571
+ </div>
572
+ </div>
573
+ <div class="c-form-group">
574
+ <label class="c-label c-tooltip c-tooltip_validation c-tooltip_top-left is-tooltip-validation_invalid">
575
+ <span class="c-label__content">Tooltip at</span>
576
+ <input class="c-input c-input_is-error c-input_small" type="text" placeholder="top-left">
577
+ <span class="c-tooltip__content">Invalid content in field</span>
578
+ </label>
579
+ </div>
580
+ </div>
581
+ </div>
582
+ </form>
583
+
584
+ */
585
+
586
+ @mixin ids-tooltip-validation {
587
+ .c-tooltip_validation {
588
+ .c-input {
589
+ margin: 0;
590
+ }
591
+
592
+ > .c-input {
593
+ padding-right: 28px;
594
+ }
595
+
596
+ &:hover .c-tooltip__content {
597
+ visibility: hidden;
598
+ opacity: 0;
599
+ }
600
+ }
601
+
602
+ .is-tooltip-validation_invalid {
603
+ > .c-input,
604
+ .c-label + .c-input {
605
+ //border-bottom: 1px solid $ids-theme-status-error;
606
+ transition: none;
607
+
608
+ &:focus {
609
+ + .c-tooltip__content {
610
+ background: $ids-theme-status-error;
611
+ color: $color-base-white;
612
+ visibility: visible;
613
+ opacity: 1;
614
+ }
615
+ }
616
+ }
617
+
618
+ &,
619
+ &.c-tooltip_top-right {
620
+ > .c-input,
621
+ .c-label + .c-input {
622
+ &:focus {
623
+ + .c-tooltip__content {
624
+ left: 100%;
625
+ bottom: 36px;
626
+ right: auto;
627
+ margin-left: -14px;
628
+ }
629
+ }
630
+ }
631
+ }
632
+
633
+ &.c-tooltip_bottom-right {
634
+ > .c-input,
635
+ .c-label + .c-input {
636
+ &:focus {
637
+ + .c-tooltip__content {
638
+ left: 100%;
639
+ bottom: auto;
640
+ right: auto;
641
+ margin-left: -14px;
642
+ }
643
+ }
644
+ }
645
+ }
646
+
647
+ &.c-tooltip_right {
648
+ > .c-input,
649
+ .c-label + .c-input {
650
+ &:focus {
651
+ + .c-tooltip__content {
652
+ left: 100%;
653
+ bottom: auto;
654
+ right: auto;
655
+ }
656
+ }
657
+ }
658
+ }
659
+
660
+ &.c-tooltip_top-left {
661
+ > .c-input,
662
+ .c-label + .c-input {
663
+ &:focus {
664
+ + .c-tooltip__content {
665
+ right: 0;
666
+ bottom: 36px;
667
+ left: auto;
668
+ margin-right: 14px;
669
+ }
670
+ }
671
+ }
672
+ }
673
+
674
+ &.c-tooltip_left {
675
+ > .c-input,
676
+ .c-label + .c-input {
677
+ &:focus {
678
+ + .c-tooltip__content {
679
+ right: 100%;
680
+ bottom: auto;
681
+ left: auto;
682
+ margin-right: 14px;
683
+ }
684
+ }
685
+ }
686
+ }
687
+
688
+ &.c-tooltip_bottom-left {
689
+ > .c-input,
690
+ .c-label + .c-input {
691
+ &:focus {
692
+ + .c-tooltip__content {
693
+ right: 0;
694
+ bottom: auto;
695
+ left: auto;
696
+ margin-right: 14px;
697
+ }
698
+ }
699
+ }
700
+ }
701
+
702
+ &.c-tooltip_bottom {
703
+ > .c-input,
704
+ .c-label + .c-input {
705
+ &:focus {
706
+ + .c-tooltip__content {
707
+ right: 0;
708
+ bottom: auto;
709
+ margin-top: auto;
710
+ //left: auto;
711
+ margin-right: 14px;
712
+ }
713
+ }
714
+ }
715
+ }
716
+
717
+ /* stylelint-disable declaration-block-no-redundant-longhand-properties, declaration-no-important */
718
+ &,
719
+ &.c-tooltip_top-right {
720
+ .c-tooltip__content::before {
721
+ border-left-color: $ids-theme-status-error;
722
+ border-top-color: $ids-theme-status-error;
723
+ border-right-color: transparent;
724
+ border-bottom-color: transparent;
725
+ }
726
+ }
727
+
728
+ &.c-tooltip_top-left {
729
+ .c-tooltip__content::before {
730
+ border-right-color: $ids-theme-status-error;
731
+ border-top-color: $ids-theme-status-error;
732
+ border-left-color: transparent;
733
+ border-bottom-color: transparent;
734
+ }
735
+ }
736
+
737
+ &.c-tooltip_top {
738
+ .c-tooltip__content::before {
739
+ border-right-color: transparent;
740
+ border-top-color: $ids-theme-status-error;
741
+ border-left-color: transparent;
742
+ border-bottom-color: transparent;
743
+ }
744
+ }
745
+
746
+ &.c-tooltip_bottom-right {
747
+ .c-tooltip__content::before {
748
+ border-left-color: $ids-theme-status-error;
749
+ border-bottom-color: $ids-theme-status-error;
750
+ border-right-color: transparent;
751
+ border-top-color: transparent;
752
+ }
753
+ }
754
+
755
+ &.c-tooltip_bottom {
756
+ .c-tooltip__content::before {
757
+ border-left-color: transparent;
758
+ border-bottom-color: $ids-theme-status-error;
759
+ border-right-color: transparent;
760
+ border-top-color: transparent;
761
+ }
762
+ }
763
+
764
+ &.c-tooltip_bottom-left {
765
+ .c-tooltip__content::before {
766
+ border-right-color: $ids-theme-status-error;
767
+ border-bottom-color: $ids-theme-status-error;
768
+ border-left-color: transparent;
769
+ border-top-color: transparent;
770
+ }
771
+ }
772
+
773
+ &.c-tooltip_left > .c-input:focus + .c-tooltip__content,
774
+ &.c-tooltip_left + .c-label + .c-input:focus + .c-tooltip__content {
775
+ right: 100%;
776
+ left: auto;
777
+ margin: 0 14px 0 0;
778
+
779
+ &::before {
780
+ border-top-color: $ids-theme-status-error;
781
+ border-left-color: $ids-theme-status-error;
782
+ border-bottom-color: transparent;
783
+ border-right-color: transparent;
784
+ }
785
+ }
786
+
787
+ &.c-tooltip_right > .c-input:focus + .c-tooltip__content,
788
+ &.c-tooltip_right + .c-label + .c-input:focus + .c-tooltip__content {
789
+ left: 100%;
790
+ right: auto;
791
+ margin: 0 0 0 14px;
792
+
793
+ &::before {
794
+ border-top-color: $ids-theme-status-error;
795
+ border-right-color: $ids-theme-status-error;
796
+ border-bottom-color: transparent;
797
+ border-left-color: transparent;
798
+ }
799
+ }
800
+
801
+ /* stylelint-enable */
802
+
803
+ &::before {
804
+ position: absolute;
805
+ content: "";
806
+ height: 16px;
807
+ width: 16px;
808
+ top: 35px;
809
+ right: 6px;
810
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20version%3D%221.1%22%20viewBox%3D%225%205%2026%2026%22%20preserveAspectRatio%3D%22xMidYMid%20meet%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%3Cdefs%3E%3Cstyle%3E.clr-i-outline%7Bfill%3A%23a32100%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctitle%3Eexclamation-circle-line%3C%2Ftitle%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20class%3D%22clr-i-outline%20clr-i-outline-path-1%22%20d%3D%22M18%2C6A12%2C12%2C0%2C1%2C0%2C30%2C18%2C12%2C12%2C0%2C0%2C0%2C18%2C6Zm0%2C22A10%2C10%2C0%2C1%2C1%2C28%2C18%2C10%2C10%2C0%2C0%2C1%2C18%2C28Z%22%3E%3C%2Fpath%3E%3Cpath%20class%3D%22clr-i-outline%20clr-i-outline-path-2%22%20d%3D%22M18%2C20.07a1.3%2C1.3%2C0%2C0%2C1-1.3-1.3v-6a1.3%2C1.3%2C0%2C1%2C1%2C2.6%2C0v6A1.3%2C1.3%2C0%2C0%2C1%2C18%2C20.07Z%22%3E%3C%2Fpath%3E%3Ccircle%20class%3D%22clr-i-outline%20clr-i-outline-path-3%22%20cx%3D%2217.95%22%20cy%3D%2223.02%22%20r%3D%221.5%22%3E%3C%2Fcircle%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fsvg%3E");
811
+ background-repeat: no-repeat;
812
+ background-size: contain;
813
+ vertical-align: middle;
814
+ margin: 0;
815
+ }
816
+ }
817
+ }
818
+
819
+
820
+