@vgip/meta-ui 2.0.0 → 2.1.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 (206) hide show
  1. package/fesm2022/vgip-meta-ui.mjs +5614 -78
  2. package/fesm2022/vgip-meta-ui.mjs.map +1 -1
  3. package/index.d.ts +709 -5
  4. package/package.json +5 -8
  5. package/vendor/volta3/README.md +1 -0
  6. package/vendor/volta3/fonts/Spezia-Regular.eot +0 -0
  7. package/vendor/volta3/fonts/Spezia-Regular.ttf +0 -0
  8. package/vendor/volta3/fonts/Spezia-Regular.woff +0 -0
  9. package/vendor/volta3/fonts/Spezia-Regular.woff2 +0 -0
  10. package/vendor/volta3/fonts/Spezia-SemiBold.eot +0 -0
  11. package/vendor/volta3/fonts/Spezia-SemiBold.ttf +0 -0
  12. package/vendor/volta3/fonts/Spezia-SemiBold.woff +0 -0
  13. package/vendor/volta3/fonts/Spezia-SemiBold.woff2 +0 -0
  14. package/vendor/volta3/fonts/Spezia-SemiMonoSemiBold.eot +0 -0
  15. package/vendor/volta3/fonts/Spezia-SemiMonoSemiBold.ttf +0 -0
  16. package/vendor/volta3/fonts/Spezia-SemiMonoSemiBold.woff +0 -0
  17. package/vendor/volta3/fonts/Spezia-SemiMonoSemiBold.woff2 +0 -0
  18. package/vendor/volta3/fonts/Spezia-WideMedium.eot +0 -0
  19. package/vendor/volta3/fonts/Spezia-WideMedium.ttf +0 -0
  20. package/vendor/volta3/fonts/Spezia-WideMedium.woff +0 -0
  21. package/vendor/volta3/fonts/Spezia-WideMedium.woff2 +0 -0
  22. package/vendor/volta3/scss/components/_accordions.scss +165 -0
  23. package/vendor/volta3/scss/components/_badge.scss +325 -0
  24. package/vendor/volta3/scss/components/_blockquote.scss +35 -0
  25. package/vendor/volta3/scss/components/_boxes.scss +113 -0
  26. package/vendor/volta3/scss/components/_buttons.scss +794 -0
  27. package/vendor/volta3/scss/components/_callouts.scss +427 -0
  28. package/vendor/volta3/scss/components/_card.scss +421 -0
  29. package/vendor/volta3/scss/components/_color-classes.scss +186 -0
  30. package/vendor/volta3/scss/components/_dialpad.scss +224 -0
  31. package/vendor/volta3/scss/components/_dropdowns.scss +495 -0
  32. package/vendor/volta3/scss/components/_empties.scss +77 -0
  33. package/vendor/volta3/scss/components/_flash-messages.scss +39 -0
  34. package/vendor/volta3/scss/components/_form-elements.scss +879 -0
  35. package/vendor/volta3/scss/components/_lists.scss +427 -0
  36. package/vendor/volta3/scss/components/_modals.scss +227 -0
  37. package/vendor/volta3/scss/components/_popups.scss +173 -0
  38. package/vendor/volta3/scss/components/_progress.scss +28 -0
  39. package/vendor/volta3/scss/components/_spinner.scss +105 -0
  40. package/vendor/volta3/scss/components/_steps.scss +242 -0
  41. package/vendor/volta3/scss/components/_switch.scss +353 -0
  42. package/vendor/volta3/scss/components/_tables.scss +739 -0
  43. package/vendor/volta3/scss/components/_tabs.scss +296 -0
  44. package/vendor/volta3/scss/components/_text-separator.scss +61 -0
  45. package/vendor/volta3/scss/components/_tooltips.scss +152 -0
  46. package/vendor/volta3/scss/components/side-navigation/_side-nav--aqua.scss +179 -0
  47. package/vendor/volta3/scss/components/side-navigation/_side-nav--collapsible.scss +381 -0
  48. package/vendor/volta3/scss/components/side-navigation/_side-nav--dark.scss +196 -0
  49. package/vendor/volta3/scss/components/side-navigation/_side-nav--light.scss +174 -0
  50. package/vendor/volta3/scss/components/side-navigation/_side-nav--structure.scss +631 -0
  51. package/vendor/volta3/scss/components/side-navigation/_side-nav--tabs.scss +88 -0
  52. package/vendor/volta3/scss/flatpickr/_flatpickr-volta.scss +407 -0
  53. package/vendor/volta3/scss/flatpickr/_flatpickr.css +785 -0
  54. package/vendor/volta3/scss/layout/_article.scss +119 -0
  55. package/vendor/volta3/scss/layout/_utils.scss +174 -0
  56. package/vendor/volta3/scss/lib/_grid.scss +374 -0
  57. package/vendor/volta3/scss/lib/_mediaqueries.scss +52 -0
  58. package/vendor/volta3/scss/lib/_reset.scss +110 -0
  59. package/vendor/volta3/scss/lib/_type.scss +345 -0
  60. package/vendor/volta3/scss/lib/_utils.scss +26 -0
  61. package/vendor/volta3/scss/lib/_variables.scss +115 -0
  62. package/vendor/volta3/scss/prism/_prism-volta.scss +390 -0
  63. package/vendor/volta3/scss/prism/_prism.css +326 -0
  64. package/vendor/volta3/scss/templates/volta-error-page.scss +57 -0
  65. package/vendor/volta3/scss/templates/volta-templates.scss +114 -0
  66. package/vendor/volta3/scss/volta-flatpickr.scss +10 -0
  67. package/vendor/volta3/scss/volta-prism.scss +7 -0
  68. package/vendor/volta3/scss/volta.scss +39 -0
  69. package/vendor/volta3/symbol/volta-brand-icons.svg +1 -0
  70. package/vendor/volta3/symbol/volta-flag-icons.svg +1 -0
  71. package/vendor/volta3/symbol/volta-icons.svg +1 -0
  72. package/esm2022/lib/common/fieldNormalizer/boolean.mjs +0 -12
  73. package/esm2022/lib/common/fieldNormalizer/datetime.mjs +0 -9
  74. package/esm2022/lib/common/fieldNormalizer/index.mjs +0 -183
  75. package/esm2022/lib/common/fieldNormalizer/number.mjs +0 -14
  76. package/esm2022/lib/common/fieldNormalizer/options.mjs +0 -50
  77. package/esm2022/lib/common/fieldNormalizer/radio.mjs +0 -30
  78. package/esm2022/lib/common/fieldNormalizer/reference.mjs +0 -36
  79. package/esm2022/lib/common/fieldNormalizer/richtext.mjs +0 -15
  80. package/esm2022/lib/common/fieldNormalizer/string.mjs +0 -24
  81. package/esm2022/lib/common/fieldNormalizer/text.mjs +0 -18
  82. package/esm2022/lib/common/fieldNormalizer/uniqueNameFilter.mjs +0 -23
  83. package/esm2022/lib/common/metaAutofocus.directive.mjs +0 -35
  84. package/esm2022/lib/common/metaIcons.pipe.mjs +0 -29
  85. package/esm2022/lib/common/metaModel.pipe.mjs +0 -23
  86. package/esm2022/lib/common/metaNormalizer.mjs +0 -375
  87. package/esm2022/lib/common/metaStripHtml.pipe.mjs +0 -22
  88. package/esm2022/lib/common/utils/colorThemes.mjs +0 -77
  89. package/esm2022/lib/common/utils/indexedDbStore/index.mjs +0 -228
  90. package/esm2022/lib/common/utils/relativeTimeBuilder.mjs +0 -49
  91. package/esm2022/lib/common/utils/resourceCardLabel.mjs +0 -24
  92. package/esm2022/lib/common/utils/smartProp.mjs +0 -31
  93. package/esm2022/lib/common/utils/templateBuilder.mjs +0 -103
  94. package/esm2022/lib/fieldAbstract.mjs +0 -291
  95. package/esm2022/lib/fieldBoolean/index.mjs +0 -53
  96. package/esm2022/lib/fieldComposite/index.mjs +0 -82
  97. package/esm2022/lib/fieldDatetime/index.mjs +0 -365
  98. package/esm2022/lib/fieldHidden/index.mjs +0 -18
  99. package/esm2022/lib/fieldInput/index.mjs +0 -475
  100. package/esm2022/lib/fieldList/index.mjs +0 -74
  101. package/esm2022/lib/fieldRadio/index.mjs +0 -88
  102. package/esm2022/lib/fieldReference/index.mjs +0 -836
  103. package/esm2022/lib/fieldRichtext/index.mjs +0 -93
  104. package/esm2022/lib/fieldSelect/index.mjs +0 -569
  105. package/esm2022/lib/fieldText/index.mjs +0 -83
  106. package/esm2022/lib/fieldUnknown/index.mjs +0 -19
  107. package/esm2022/lib/index.mjs +0 -163
  108. package/esm2022/lib/layout/index.mjs +0 -214
  109. package/esm2022/lib/metaField/index.mjs +0 -151
  110. package/esm2022/lib/refDialog/index.mjs +0 -135
  111. package/esm2022/lib/resource/index.mjs +0 -525
  112. package/esm2022/lib/resourceCard/index.mjs +0 -40
  113. package/esm2022/lib/services/metaContext/index.mjs +0 -52
  114. package/esm2022/lib/services/metaMsg/index.mjs +0 -84
  115. package/esm2022/lib/services/metaReference/index.mjs +0 -94
  116. package/esm2022/lib/services/metaResource/index.mjs +0 -141
  117. package/esm2022/lib/services/metaResource/metaHttpClient.mjs +0 -64
  118. package/esm2022/lib/services/metaTracker/index.mjs +0 -31
  119. package/esm2022/lib/services/resourceDrafts/index.mjs +0 -69
  120. package/esm2022/public-api.mjs +0 -5
  121. package/esm2022/vgip-meta-ui.mjs +0 -5
  122. package/fesm2022/vgip-meta-ui-fieldAbstract-baeaf24d.mjs +0 -399
  123. package/fesm2022/vgip-meta-ui-fieldAbstract-baeaf24d.mjs.map +0 -1
  124. package/fesm2022/vgip-meta-ui-index-0184d5ec.mjs +0 -478
  125. package/fesm2022/vgip-meta-ui-index-0184d5ec.mjs.map +0 -1
  126. package/fesm2022/vgip-meta-ui-index-1ddfcce0.mjs +0 -86
  127. package/fesm2022/vgip-meta-ui-index-1ddfcce0.mjs.map +0 -1
  128. package/fesm2022/vgip-meta-ui-index-37358620.mjs +0 -158
  129. package/fesm2022/vgip-meta-ui-index-37358620.mjs.map +0 -1
  130. package/fesm2022/vgip-meta-ui-index-4e9c383f.mjs +0 -95
  131. package/fesm2022/vgip-meta-ui-index-4e9c383f.mjs.map +0 -1
  132. package/fesm2022/vgip-meta-ui-index-4fa919c0.mjs +0 -79
  133. package/fesm2022/vgip-meta-ui-index-4fa919c0.mjs.map +0 -1
  134. package/fesm2022/vgip-meta-ui-index-5f68724c.mjs +0 -576
  135. package/fesm2022/vgip-meta-ui-index-5f68724c.mjs.map +0 -1
  136. package/fesm2022/vgip-meta-ui-index-6d502a71.mjs +0 -869
  137. package/fesm2022/vgip-meta-ui-index-6d502a71.mjs.map +0 -1
  138. package/fesm2022/vgip-meta-ui-index-7741951a.mjs +0 -23
  139. package/fesm2022/vgip-meta-ui-index-7741951a.mjs.map +0 -1
  140. package/fesm2022/vgip-meta-ui-index-80ab405f.mjs +0 -93
  141. package/fesm2022/vgip-meta-ui-index-80ab405f.mjs.map +0 -1
  142. package/fesm2022/vgip-meta-ui-index-926ae006.mjs +0 -58
  143. package/fesm2022/vgip-meta-ui-index-926ae006.mjs.map +0 -1
  144. package/fesm2022/vgip-meta-ui-index-b979685f.mjs +0 -87
  145. package/fesm2022/vgip-meta-ui-index-b979685f.mjs.map +0 -1
  146. package/fesm2022/vgip-meta-ui-index-c943b7c0.mjs +0 -24
  147. package/fesm2022/vgip-meta-ui-index-c943b7c0.mjs.map +0 -1
  148. package/fesm2022/vgip-meta-ui-index-ce185ca2.mjs +0 -2062
  149. package/fesm2022/vgip-meta-ui-index-ce185ca2.mjs.map +0 -1
  150. package/fesm2022/vgip-meta-ui-index-f8b00f06.mjs +0 -370
  151. package/fesm2022/vgip-meta-ui-index-f8b00f06.mjs.map +0 -1
  152. package/fesm2022/vgip-meta-ui-index-fb7f54f5.mjs +0 -154
  153. package/fesm2022/vgip-meta-ui-index-fb7f54f5.mjs.map +0 -1
  154. package/fesm2022/vgip-meta-ui-metaModel.pipe-6b803e66.mjs +0 -26
  155. package/fesm2022/vgip-meta-ui-metaModel.pipe-6b803e66.mjs.map +0 -1
  156. package/fesm2022/vgip-meta-ui-relativeTimeBuilder-31791ce4.mjs +0 -51
  157. package/fesm2022/vgip-meta-ui-relativeTimeBuilder-31791ce4.mjs.map +0 -1
  158. package/lib/common/fieldNormalizer/boolean.d.ts +0 -1
  159. package/lib/common/fieldNormalizer/datetime.d.ts +0 -1
  160. package/lib/common/fieldNormalizer/index.d.ts +0 -1
  161. package/lib/common/fieldNormalizer/number.d.ts +0 -1
  162. package/lib/common/fieldNormalizer/options.d.ts +0 -1
  163. package/lib/common/fieldNormalizer/radio.d.ts +0 -1
  164. package/lib/common/fieldNormalizer/reference.d.ts +0 -1
  165. package/lib/common/fieldNormalizer/richtext.d.ts +0 -1
  166. package/lib/common/fieldNormalizer/string.d.ts +0 -1
  167. package/lib/common/fieldNormalizer/text.d.ts +0 -1
  168. package/lib/common/fieldNormalizer/uniqueNameFilter.d.ts +0 -1
  169. package/lib/common/metaAutofocus.directive.d.ts +0 -10
  170. package/lib/common/metaIcons.pipe.d.ts +0 -10
  171. package/lib/common/metaModel.pipe.d.ts +0 -7
  172. package/lib/common/metaNormalizer.d.ts +0 -1
  173. package/lib/common/metaStripHtml.pipe.d.ts +0 -7
  174. package/lib/common/utils/colorThemes.d.ts +0 -8
  175. package/lib/common/utils/indexedDbStore/index.d.ts +0 -25
  176. package/lib/common/utils/relativeTimeBuilder.d.ts +0 -1
  177. package/lib/common/utils/resourceCardLabel.d.ts +0 -1
  178. package/lib/common/utils/smartProp.d.ts +0 -2
  179. package/lib/common/utils/templateBuilder.d.ts +0 -1
  180. package/lib/fieldAbstract.d.ts +0 -61
  181. package/lib/fieldBoolean/index.d.ts +0 -10
  182. package/lib/fieldComposite/index.d.ts +0 -14
  183. package/lib/fieldDatetime/index.d.ts +0 -26
  184. package/lib/fieldHidden/index.d.ts +0 -6
  185. package/lib/fieldInput/index.d.ts +0 -35
  186. package/lib/fieldList/index.d.ts +0 -15
  187. package/lib/fieldRadio/index.d.ts +0 -14
  188. package/lib/fieldReference/index.d.ts +0 -73
  189. package/lib/fieldRichtext/index.d.ts +0 -27
  190. package/lib/fieldSelect/index.d.ts +0 -49
  191. package/lib/fieldText/index.d.ts +0 -15
  192. package/lib/fieldUnknown/index.d.ts +0 -6
  193. package/lib/index.d.ts +0 -65
  194. package/lib/layout/index.d.ts +0 -47
  195. package/lib/metaField/index.d.ts +0 -29
  196. package/lib/refDialog/index.d.ts +0 -33
  197. package/lib/resource/index.d.ts +0 -68
  198. package/lib/resourceCard/index.d.ts +0 -17
  199. package/lib/services/metaContext/index.d.ts +0 -32
  200. package/lib/services/metaMsg/index.d.ts +0 -14
  201. package/lib/services/metaReference/index.d.ts +0 -11
  202. package/lib/services/metaResource/index.d.ts +0 -31
  203. package/lib/services/metaResource/metaHttpClient.d.ts +0 -15
  204. package/lib/services/metaTracker/index.d.ts +0 -19
  205. package/lib/services/resourceDrafts/index.d.ts +0 -26
  206. package/public-api.d.ts +0 -1
@@ -0,0 +1,879 @@
1
+ @use "../lib/mediaqueries";
2
+ @use "../lib/utils";
3
+ @use "../lib/variables";
4
+
5
+ //
6
+ // Copyright (c) 2018-present, Vonage. All rights reserved.
7
+ //
8
+
9
+ %select-arrow {
10
+ $fill-color: utils.encode-hex-code(variables.$black);
11
+ background-image: url('data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0D%0A%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%0D%0A%09%20viewBox%3D%220%200%2020%2020%22%20style%3D%22enable-background%3Anew%200%200%2020%2020%3B%22%20xml%3Aspace%3D%22preserve%22%3E%0D%0A%3Cpath%20style%3D%22fill%3A#{$fill-color}%3B%22%20d%3D%22M7%2C7.8C6.7%2C7.5%2C6.2%2C7.6%2C5.9%2C7.9S5.7%2C8.7%2C6%2C9l4%2C3.4l4-3.4c0.3-0.3%2C0.3-0.8%2C0-1.1%0D%0A%09c-0.3-0.3-0.7-0.3-1-0.1l-3%2C2.6L7%2C7.8L7%2C7.8z%22%2F%3E%0D%0A%3C%2Fsvg%3E');
12
+ background-position: center center;
13
+ background-repeat: no-repeat;
14
+ background-size: contain;
15
+ content: '';
16
+ height: 20px;
17
+ margin-top: -10px;
18
+ pointer-events: none;
19
+ position: absolute;
20
+ right: 14px;
21
+ top: 50%;
22
+ width: 20px;
23
+ }
24
+
25
+ .Vlt-label {
26
+ display: block;
27
+ font-size: 1.4rem;
28
+ line-height: 1.5;
29
+ margin-bottom: variables.$unit0;
30
+ text-align: left;
31
+
32
+ label {
33
+ font-size: 1.4rem;
34
+ }
35
+
36
+ & + .Vlt-radio,
37
+ & + .Vlt-checkbox,
38
+ & + .Vlt-form__element {
39
+ margin-top: variables.$unit0;
40
+ }
41
+ }
42
+
43
+ // autofill background for Chrome
44
+ .Vlt-input {
45
+ input:-webkit-autofill,
46
+ input:-webkit-autofill:hover,
47
+ input:-webkit-autofill:focus {
48
+ box-shadow: 0 0 0px 1000px variables.$purple-lighter inset;
49
+ }
50
+
51
+ &.Vlt-input--round {
52
+ input {
53
+ border-radius: 46px;
54
+ }
55
+ }
56
+ }
57
+
58
+ .Vlt-select {
59
+ &.Vlt-select--round {
60
+ select {
61
+ border-radius: 46px;
62
+ }
63
+ }
64
+ }
65
+
66
+ .Vlt-input,
67
+ .Vlt-select,
68
+ .Vlt-custom-select,
69
+ .Vlt-textarea {
70
+ max-width: 100%;
71
+ position: relative;
72
+ }
73
+
74
+ .Vlt-input input,
75
+ .Vlt-select select,
76
+ .Vlt-textarea textarea,
77
+ .Vlt-custom-select__input {
78
+ appearance: none; // prevents box shadow on iOS
79
+ background: variables.$white;
80
+ border: 1px solid variables.$grey;
81
+ border-radius: 5px;
82
+ box-shadow: none;
83
+ color: variables.$black;
84
+ display: block;
85
+ font-size: 1.4rem;
86
+ height: 40px;
87
+ padding-left: 12px;
88
+ transition: background-color .5s, border-color .5s;
89
+ width: 100%;
90
+
91
+ &:hover {
92
+ border-color: variables.$black;
93
+ }
94
+
95
+ &:focus {
96
+ @extend .Vlt-form-focus-style;
97
+ }
98
+
99
+ &:invalid {
100
+ @extend .Vlt-form-error-style;
101
+ }
102
+
103
+ &:disabled {
104
+ @extend .Vlt-form-disabled-readonly-style;
105
+ color: variables.$grey-dark;
106
+ cursor: default;
107
+ }
108
+
109
+ &[readonly] {
110
+ @extend .Vlt-form-disabled-readonly-style;
111
+ }
112
+ }
113
+
114
+ .Vlt-composite {
115
+ display: flex !important;
116
+ flex-flow: row;
117
+ position: relative;
118
+
119
+ .Vlt-composite {
120
+ flex: 1;
121
+ }
122
+
123
+ .Vlt-input,
124
+ .Vlt-select {
125
+ flex: 1;
126
+ position: relative;
127
+
128
+ .Vlt-form__element--elastic & {
129
+ flex: 0;
130
+ flex-basis: auto;
131
+ }
132
+ }
133
+
134
+ &--appendedicon {
135
+ .Vlt-input input,
136
+ .Vlt-select select {
137
+ padding-right: 40px;
138
+ }
139
+ }
140
+
141
+ .Vlt-composite:first-child .Vlt-input input,
142
+ &:not(.Vlt-composite--appendedicon) .Vlt-input:first-child input,
143
+ &:not(.Vlt-composite--appendedicon) .Vlt-select:first-child select {
144
+ border-bottom-right-radius: 0;
145
+ border-right: 0;
146
+ border-top-right-radius: 0;
147
+ }
148
+
149
+ &__append,
150
+ &__prepend {
151
+ .Vlt-btn,
152
+ .Vlt-dropdown__btn,
153
+ .Vlt-native-dropdown select {
154
+ @extend %Vlt-btn--app !optional;
155
+ border: 1px solid variables.$grey;
156
+ margin: 0 !important;
157
+ padding-bottom: 7px;
158
+ padding-top: 7px;
159
+
160
+ &:hover {
161
+ transform: scale(1);
162
+ }
163
+
164
+ .Vlt-form__element--big & {
165
+ @extend %Vlt-btn--large !optional;
166
+ padding: 10px 24px;
167
+
168
+ &.Vlt-btn--icon {
169
+ @extend %Vlt-btn--icon !optional;
170
+ }
171
+ }
172
+ }
173
+
174
+ .Vlt-dropdown__btn,
175
+ .Vlt-native-dropdown select,
176
+ .Vlt-btn:not(.Vlt-btn--primary):not(.Vlt-btn--secondary):not(.Vlt-btn--quaternary):not(.Vlt-btn--destructive):not(.Vlt-btn--indigo):not(.Vlt-btn--orange):not(.Vlt-btn--white) {
177
+ @extend %Vlt-btn--tertiary !optional;
178
+ }
179
+
180
+ .Vlt-btn {
181
+ &--primary,
182
+ &--secondary,
183
+ &--quaternary,
184
+ &--destructive,
185
+ &--indigo,
186
+ &--orange {
187
+ border: 0;
188
+ }
189
+ }
190
+
191
+ .Vlt-dropdown__btn,
192
+ .Vlt-native-dropdown {
193
+ &:after {
194
+ $fill-color: utils.encode-hex-code(variables.$black);
195
+ background-image: url('data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0D%0A%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%0D%0A%09%20viewBox%3D%220%200%2020%2020%22%20style%3D%22enable-background%3Anew%200%200%2020%2020%3B%22%20xml%3Aspace%3D%22preserve%22%3E%0D%0A%3Cpath%20style%3D%22fill%3A#{$fill-color}%3B%22%20d%3D%22M7%2C7.8C6.7%2C7.5%2C6.2%2C7.6%2C5.9%2C7.9S5.7%2C8.7%2C6%2C9l4%2C3.4l4-3.4c0.3-0.3%2C0.3-0.8%2C0-1.1%0D%0A%09c-0.3-0.3-0.7-0.3-1-0.1l-3%2C2.6L7%2C7.8L7%2C7.8z%22%2F%3E%0D%0A%3C%2Fsvg%3E');
196
+ }
197
+ }
198
+ }
199
+
200
+ &__append {
201
+ position: relative;
202
+ z-index: 2;
203
+
204
+ .Vlt-btn,
205
+ .Vlt-dropdown__btn,
206
+ .Vlt-native-dropdown select {
207
+ border-bottom-left-radius: 0;
208
+ border-top-left-radius: 0;
209
+ }
210
+
211
+ &--icon {
212
+ height: 100%;
213
+ padding: 11px 12px;
214
+ position: absolute;
215
+ right: 0;
216
+ width: 42px;
217
+
218
+ svg {
219
+ fill: variables.$grey-dark;
220
+ height: 18px;
221
+ position: relative;
222
+ width: 18px;
223
+ }
224
+ }
225
+ }
226
+
227
+ &__prepend {
228
+ position: relative;
229
+ z-index: 2;
230
+
231
+ .Vlt-btn,
232
+ .Vlt-dropdown__btn,
233
+ .Vlt-native-dropdown select {
234
+ border-bottom-right-radius: 0;
235
+ border-top-right-radius: 0;
236
+ }
237
+
238
+ &:not(.Vlt-composite__prepend--icon) + .Vlt-input input,
239
+ &:not(.Vlt-composite__prepend--icon) + .Vlt-select select {
240
+ border-bottom-left-radius: 0;
241
+ border-left: 0;
242
+ border-top-left-radius: 0;
243
+ }
244
+
245
+ &--icon {
246
+ height: 100%;
247
+ padding: 11px 12px;
248
+ position: absolute;
249
+ width: 42px;
250
+
251
+ svg {
252
+ fill: variables.$black;
253
+ height: 18px;
254
+ width: 18px;
255
+ }
256
+
257
+ & + .Vlt-input input,
258
+ & + .Vlt-select select {
259
+ padding-left: 42px;
260
+ }
261
+ }
262
+ }
263
+
264
+ .Vlt-btn,
265
+ .Vlt-dropdown__btn
266
+ .Vlt-native-dropdown select {
267
+ margin: 0;
268
+ }
269
+
270
+ .Vlt-input {
271
+ input {
272
+ &[readonly],
273
+ &:disabled {
274
+ border-color: variables.$grey;
275
+ }
276
+ }
277
+ }
278
+ }
279
+
280
+ .Vlt-textarea {
281
+ textarea {
282
+ height: auto;
283
+ padding-bottom: variables.$unit1;
284
+ padding-top: variables.$unit1;
285
+ resize: vertical;
286
+ }
287
+ }
288
+
289
+ .Vlt-select,
290
+ .Vlt-custom-select {
291
+
292
+ &:after {
293
+ @extend %select-arrow;
294
+ }
295
+ }
296
+
297
+ .Vlt-select select,
298
+ .Vlt-custom-select__input {
299
+ appearance: none;
300
+ cursor: pointer;
301
+ padding-right: 42px;
302
+ text-indent: 1px;
303
+ text-overflow: '';
304
+
305
+ &::-ms-expand {
306
+ display: none;
307
+ }
308
+ }
309
+
310
+ .Vlt-form__group {
311
+ align-items: flex-end;
312
+ display: flex;
313
+ flex-flow: row wrap;
314
+
315
+ .Vlt-form__element {
316
+ margin-right: variables.$unit2;
317
+
318
+ &:last-child {
319
+ margin-right: 0;
320
+ }
321
+ }
322
+
323
+ > .Vlt-btn {
324
+ margin-bottom: variables.$unit1;
325
+ }
326
+
327
+ > .Vlt-form__element__error,
328
+ > .Vlt-form__element__hint {
329
+ flex: 0 0 100%;
330
+ margin-bottom: variables.$unit0;
331
+ }
332
+
333
+ & + .Vlt-form__group,
334
+ & + .Vlt-form__element {
335
+ margin-top: 0; // This ensures vertical spacing consistency
336
+ }
337
+
338
+ &--M-plus {
339
+ @media #{mediaqueries.$S-only} {
340
+ display: block;
341
+ }
342
+ }
343
+
344
+ &--inline {
345
+ display: inline-flex;
346
+ }
347
+
348
+ &--stretch {
349
+ .Vlt-form__element {
350
+ flex: auto;
351
+ }
352
+ }
353
+ }
354
+
355
+ .Vlt-form__element {
356
+ padding: variables.$unit1 0;
357
+
358
+ h1,
359
+ h2,
360
+ h3,
361
+ h4 {
362
+ margin: 0;
363
+ }
364
+
365
+ &__hint,
366
+ &__error {
367
+ display: block;
368
+ flex: 0 0 100%;
369
+ font-size: 1.2rem;
370
+ line-height: 1.33;
371
+ margin-top: 6px;
372
+ text-align: left;
373
+ }
374
+
375
+ &__hint {
376
+ color: variables.$grey-darker;
377
+ }
378
+
379
+ &__error {
380
+ color: variables.$red;
381
+
382
+ &:before {
383
+ $fill-color: utils.encode-hex-code(variables.$red);
384
+ background-image: url('data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20style%3D%22fill%3A#{$fill-color}%3B%22%20d%3D%22M8%200C3.6%200%200%203.6%200%208C0%2012.4%203.6%2016%208%2016C12.4%2016%2016%2012.4%2016%208C16%203.6%2012.4%200%208%200ZM8%2012C7.4%2012%207%2011.6%207%2011C7%2010.4%207.4%2010%208%2010C8.6%2010%209%2010.4%209%2011C9%2011.6%208.6%2012%208%2012ZM9%209H7V4H9V9Z%22%2F%3E%0A%3C%2Fsvg%3E');
385
+ background-position: center center;
386
+ background-repeat: no-repeat;
387
+ background-size: contain;
388
+ content: '';
389
+ display: inline-block;
390
+ height: 16px;
391
+ margin-right: 6px;
392
+ vertical-align: bottom;
393
+ width: 16px;
394
+ }
395
+ }
396
+
397
+ &--error {
398
+ input,
399
+ select,
400
+ textarea,
401
+ .Vlt-radio input:not(:checked) + .Vlt-radio__icon,
402
+ .Vlt-checkbox input:not(:checked) + .Vlt-checkbox__icon {
403
+ @extend .Vlt-form-error-style;
404
+ }
405
+
406
+ .Vlt-checkbox {
407
+ color: variables.$red;
408
+
409
+ input:not(:checked) + .Vlt-checkbox__icon {
410
+ background: variables.$white !important;
411
+ }
412
+ }
413
+
414
+ &.Vlt-form__element--big {
415
+ label {
416
+ color: variables.$red;
417
+ }
418
+
419
+ .Vlt-textarea {
420
+ textarea:not(:focus) + * {
421
+ background-color: variables.$red-lighter;
422
+ }
423
+ }
424
+ }
425
+ }
426
+
427
+ &--valid {
428
+ input,
429
+ select,
430
+ textarea {
431
+ @extend .Vlt-form-valid-style;
432
+ }
433
+ }
434
+
435
+ &--elastic {
436
+ input,
437
+ select,
438
+ .Vlt-input,
439
+ .Vlt-select {
440
+ display: inline-block;
441
+ margin-left: 0;
442
+ margin-right: 0;
443
+ width: auto;
444
+
445
+ & + input,
446
+ & + select,
447
+ & + .Vlt-input,
448
+ & + .Vlt-select {
449
+ margin-left: variables.$unit2;
450
+ }
451
+ }
452
+
453
+ textarea,
454
+ .Vlt-textarea {
455
+ display: inline-block;
456
+ width: auto;
457
+ }
458
+ }
459
+
460
+ &--inline-content {
461
+ .Vlt-radio,
462
+ .Vlt-checkbox {
463
+ display: inline-block;
464
+ margin-bottom: variables.$unit2;
465
+ margin-right: variables.$unit2;
466
+ margin-top: variables.$unit0 !important;
467
+ }
468
+ }
469
+
470
+ .Vlt-dropdown__btn {
471
+ margin: 0;
472
+ }
473
+ }
474
+
475
+ .Vlt-radio,
476
+ .Vlt-checkbox {
477
+ position: relative;
478
+
479
+ input {
480
+ appearance: none;
481
+ height: 0px;
482
+ opacity: 0;
483
+ overflow: hidden;
484
+ position: absolute;
485
+ width: 0px;
486
+
487
+ &:focus,
488
+ &:active {
489
+ box-shadow: none;
490
+ outline: none;
491
+
492
+ & + .Vlt-radio__icon {
493
+ @extend .Vlt-form-focus-style;
494
+ }
495
+ }
496
+
497
+ &:disabled {
498
+ & + .Vlt-radio__icon {
499
+ @extend .Vlt-form-disabled-readonly-style;
500
+ }
501
+
502
+ &:active {
503
+ & + .Vlt-radio__icon,
504
+ & + .Vlt-checkbox__icon {
505
+ box-shadow: none;
506
+ }
507
+ }
508
+ }
509
+
510
+ &:invalid {
511
+ & + .Vlt-radio__icon,
512
+ & + .Vlt-checkbox__icon {
513
+ @extend .Vlt-form-error-style;
514
+ }
515
+
516
+ &:focus {
517
+ & + .Vlt-radio__icon,
518
+ & + .Vlt-checkbox__icon {
519
+ box-shadow: 0 0 5px rgba(variables.$red, 0.5);
520
+ }
521
+ }
522
+ }
523
+ }
524
+
525
+ label {
526
+ // We removed cursor: pointer because it would add complications in case it's disabled
527
+ align-items: flex-start;
528
+ display: flex;
529
+ text-align: left;
530
+ }
531
+
532
+ &__button {
533
+ display: block;
534
+ flex: 0 0 22px;
535
+ height: 22px;
536
+ margin-right: 10px;
537
+ margin-top: -1px;
538
+ position: relative;
539
+ width: 22px;
540
+ }
541
+
542
+ &__icon {
543
+ border: 2px solid variables.$grey;
544
+ display: block;
545
+ height: 100%;
546
+ transition: all 0.2s;
547
+ width: 100%;
548
+
549
+ &:after {
550
+ content: '';
551
+ display: block;
552
+ position: absolute;
553
+ transform: scale(0.1, 0.1);
554
+ transition: transform 0.2s ease-out;
555
+ }
556
+ }
557
+
558
+ &:hover {
559
+ .Vlt-radio__icon,
560
+ .Vlt-checkbox__icon {
561
+ border-color: variables.$black;
562
+ }
563
+ }
564
+
565
+ & + .Vlt-radio,
566
+ & + .Vlt-checkbox,
567
+ & + .Vlt-form__element__error,
568
+ & + .Vlt-form__element__hint {
569
+ margin-top: variables.$unit2;
570
+ }
571
+
572
+ &--inline {
573
+ display: inline-block;
574
+ margin-bottom: variables.$unit2;
575
+ margin-right: variables.$unit2;
576
+ margin-top: variables.$unit0 !important;
577
+ }
578
+ }
579
+
580
+ .Vlt-radio {
581
+ &__icon {
582
+ border-radius: 100%;
583
+ transition: all 0.2s;
584
+
585
+ &:after {
586
+ border-radius: 100%;
587
+ height: 10px;
588
+ left: 50%;
589
+ margin-left: -5px;
590
+ margin-top: -5px;
591
+ top: 50%;
592
+ width: 10px;
593
+ }
594
+ }
595
+
596
+ &__button {
597
+
598
+ input {
599
+ &:checked ~ .Vlt-radio__icon {
600
+ &:after {
601
+ background: variables.$black;
602
+ transform: scale(1, 1);
603
+ }
604
+ }
605
+ }
606
+ }
607
+ }
608
+
609
+ .Vlt-checkbox {
610
+
611
+ &--error {
612
+ .Vlt-checkbox input:not(:checked) + .Vlt-checkbox__icon {
613
+ background-color: variables.$white;
614
+ }
615
+ }
616
+
617
+ &__icon {
618
+ background-color: variables.$white;
619
+ border: 1px solid variables.$grey;
620
+ border-radius: 4px;
621
+
622
+ &:after {
623
+ background-position: center center;
624
+ background-repeat: no-repeat;
625
+ background-size: 14px 14px;
626
+ content: '';
627
+ height: 100%;
628
+ left: 0;
629
+ top: 0;
630
+ transform: scale(1, 1);
631
+ width: 100%;
632
+ }
633
+ }
634
+
635
+ &__button {
636
+ input {
637
+ &:hover:not(:checked) ~ .Vlt-checkbox__icon {
638
+ border-color: variables.$grey-dark;
639
+ }
640
+
641
+ &:focus ~ .Vlt-checkbox__icon {
642
+ border-color: variables.$black;
643
+ }
644
+
645
+ &:checked ~ .Vlt-checkbox__icon,
646
+ &:checked:disabled ~ .Vlt-checkbox__icon {
647
+ background-color: variables.$black;
648
+ border-color: variables.$black;
649
+
650
+ &:after {
651
+ $fill-color: utils.encode-hex-code(variables.$white);
652
+ background-image: url('data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20style%3D%22fill%3A#{$fill-color}%3B%22%20d%3D%22M21.45%203.45L7.5%2017.4L2.55%2012.45C1.95%2011.85%201.05%2011.85%200.45%2012.45C-0.15%2013.05%20-0.15%2013.95%200.45%2014.55L6.45%2020.55C6.75%2020.85%207.05%2021%207.5%2021C7.95%2021%208.25%2020.85%208.55%2020.55L23.55%205.55C24.15%204.95%2024.15%204.05%2023.55%203.45C22.95%202.85%2022.05%202.85%2021.45%203.45Z%22%2F%3E%0A%3C%2Fsvg%3E%0A');
653
+ }
654
+ }
655
+
656
+ &:hover:not(:checked):disabled ~ .Vlt-checkbox__icon,
657
+ &:not(:checked):disabled ~ .Vlt-checkbox__icon {
658
+ background-color: variables.$grey-lighter;
659
+ border-color: variables.$grey-light;
660
+ }
661
+
662
+ &:hover:checked:disabled ~ .Vlt-checkbox__icon,
663
+ &:checked:disabled ~ .Vlt-checkbox__icon {
664
+ opacity: 0.3;
665
+ }
666
+ }
667
+ }
668
+
669
+ &--partial {
670
+ .Vlt-checkbox__button {
671
+ input {
672
+ ~ .Vlt-checkbox__icon,
673
+ &:hover ~ .Vlt-checkbox__icon,
674
+ &:checked ~ .Vlt-checkbox__icon,
675
+ &:disabled ~ .Vlt-checkbox__icon,
676
+ &:hover:disabled ~ .Vlt-checkbox__icon {
677
+ background-color: variables.$black;
678
+ border-color: variables.$black;
679
+ }
680
+
681
+ &:hover:disabled ~ .Vlt-checkbox__icon,
682
+ &:disabled ~ .Vlt-checkbox__icon {
683
+ opacity: 0.3;
684
+ }
685
+ }
686
+ }
687
+
688
+ .Vlt-checkbox__icon {
689
+ &:after {
690
+ $fill-color: utils.encode-hex-code(variables.$white);
691
+ background-image: url('data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20style%3D%22fill%3A#{$fill-color}%3B%22%20d%3D%22M15%207H1C0.4%207%200%207.4%200%208C0%208.6%200.4%209%201%209H15C15.6%209%2016%208.6%2016%208C16%207.4%2015.6%207%2015%207Z%22%2F%3E%0A%3C%2Fsvg%3E%0A');
692
+ }
693
+ }
694
+ }
695
+ }
696
+
697
+ .Vlt-form-error-style {
698
+ background: variables.$red-lighter;
699
+ border-color: variables.$red;
700
+
701
+ &:hover {
702
+ border-color: variables.$red;
703
+ }
704
+ }
705
+
706
+ .Vlt-form-valid-style {
707
+ border-color: variables.$green;
708
+
709
+ &:hover {
710
+ border-color: variables.$green;
711
+ }
712
+ }
713
+
714
+ .Vlt-form-focus-style {
715
+ background: variables.$white;
716
+ border-color: variables.$black;
717
+ outline: none;
718
+
719
+ &:hover {
720
+ border-color: variables.$black;
721
+ }
722
+ }
723
+
724
+ .Vlt-form-disabled-readonly-style {
725
+ background: variables.$grey-lighter;
726
+ border-color: variables.$grey-light;
727
+ box-shadow: none;
728
+
729
+ &:hover {
730
+ border-color: variables.$grey-light;
731
+ }
732
+ }
733
+
734
+ // Inspired from https://github.com/tonystar/float-label-css
735
+ // by Tony Star
736
+ // Compatibility https://caniuse.com/#feat=css-placeholder-shown
737
+
738
+ .Vlt-form__element--big {
739
+ display: block;
740
+ position: relative;
741
+
742
+ label {
743
+ color: variables.$grey-darker;
744
+ cursor: text;
745
+ font-size: 1.2rem;
746
+ left: 14px;
747
+ line-height: 1.6rem;
748
+ opacity: 1;
749
+ pointer-events: none;
750
+ position: absolute;
751
+ top: 7px;
752
+ transition: all 0.2s, background-color 0.5s;
753
+ }
754
+
755
+ textarea {
756
+ width: 100%;
757
+ }
758
+
759
+ .Vlt-input,
760
+ .Vlt-select,
761
+ .Vlt-custom-select,
762
+ .Vlt-textarea {
763
+ input,
764
+ select,
765
+ textarea,
766
+ .Vlt-custom-select__input {
767
+ border-radius: 6px;
768
+ height: 4.8rem;
769
+ padding: 20px 14px 6px;
770
+
771
+ &::placeholder {
772
+ color: variables.$grey;
773
+ opacity: 1;
774
+ transition: all 0.2s;
775
+ }
776
+
777
+ &:placeholder-shown:not(:focus)::placeholder {
778
+ opacity: 0;
779
+ }
780
+
781
+ &:placeholder-shown:not(:focus) + * {
782
+ font-size: 1.6rem;
783
+ margin-top: -0.8rem;
784
+ top: 50%;
785
+ }
786
+ }
787
+
788
+ select {
789
+ padding-right: 50px;
790
+ }
791
+
792
+ textarea {
793
+ height: auto;
794
+ min-height: 4.8rem;
795
+
796
+ + * {
797
+ background-color: variables.$white;
798
+ border-top-right-radius: 6px;
799
+ padding-top: 6px;
800
+ right: 14px;
801
+ top: 1px;
802
+ }
803
+
804
+ &:placeholder-shown:not(:focus) + * {
805
+ margin-top: 0;
806
+ top: 1rem;
807
+ }
808
+
809
+ &[readonly] + *,
810
+ &:disabled + * {
811
+ background-color: variables.$grey-lighter;
812
+ }
813
+ }
814
+ }
815
+
816
+ .Vlt-select,
817
+ .Vlt-custom-select {
818
+ &:after {
819
+ height: 24px;
820
+ margin-top: -12px;
821
+ width: 24px;
822
+ }
823
+ }
824
+
825
+ .Vlt-custom-select__input {
826
+ @extend .Vlt-truncate !optional;
827
+ text-align: left;
828
+ }
829
+
830
+ .Vlt-form__element__error,
831
+ .Vlt-form__element__hint {
832
+ margin-top: 8px;
833
+ }
834
+ }
835
+
836
+ .Vlt-dropdown {
837
+ .Vlt-composite {
838
+ flex: 1;
839
+ z-index: 2;
840
+
841
+ &:first-child {
842
+ margin-bottom: -1px;
843
+ }
844
+
845
+ .Vlt-composite__append {
846
+ .Vlt-btn {
847
+ transition: border-bottom-right-radius 0s;
848
+ }
849
+ }
850
+
851
+ + .Vlt-dropdown__panel {
852
+ z-index: 1;
853
+
854
+ .Vlt-dropdown__panel__content {
855
+ border: 1px solid variables.$grey;
856
+ border-top-left-radius: 0;
857
+ border-top-right-radius: 0;
858
+ box-shadow: 0px 4px 8px rgba(variables.$black, 0.15);
859
+ }
860
+ }
861
+ }
862
+
863
+ &--expanded {
864
+ .Vlt-composite {
865
+ .Vlt-input {
866
+ input {
867
+ border-bottom-left-radius: 0;
868
+ transition: border-bottom-left-radius 0s;
869
+ }
870
+ }
871
+
872
+ .Vlt-composite__append {
873
+ .Vlt-btn {
874
+ border-bottom-right-radius: 0;
875
+ }
876
+ }
877
+ }
878
+ }
879
+ }