@finqu/cool 1.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 (199) hide show
  1. package/README.md +1 -0
  2. package/build/.eslintrc.json +10 -0
  3. package/build/banner.js +14 -0
  4. package/build/build-plugins.js +92 -0
  5. package/build/rollup.config.js +78 -0
  6. package/dist/css/cool-grid.css +3672 -0
  7. package/dist/css/cool-grid.css.map +30 -0
  8. package/dist/css/cool-grid.min.css +7 -0
  9. package/dist/css/cool-grid.min.css.map +1 -0
  10. package/dist/css/cool-reboot.css +281 -0
  11. package/dist/css/cool-reboot.css.map +58 -0
  12. package/dist/css/cool-reboot.min.css +7 -0
  13. package/dist/css/cool-reboot.min.css.map +1 -0
  14. package/dist/css/cool.css +14841 -0
  15. package/dist/css/cool.css.map +144 -0
  16. package/dist/css/cool.min.css +7 -0
  17. package/dist/css/cool.min.css.map +1 -0
  18. package/dist/js/cool.bundle.js +15304 -0
  19. package/dist/js/cool.bundle.js.map +1 -0
  20. package/dist/js/cool.bundle.min.js +45 -0
  21. package/dist/js/cool.bundle.min.js.map +1 -0
  22. package/dist/js/cool.esm.js +4766 -0
  23. package/dist/js/cool.esm.js.map +1 -0
  24. package/dist/js/cool.esm.min.js +7 -0
  25. package/dist/js/cool.esm.min.js.map +1 -0
  26. package/dist/js/cool.js +4948 -0
  27. package/dist/js/cool.js.map +1 -0
  28. package/dist/js/cool.min.js +7 -0
  29. package/dist/js/cool.min.js.map +1 -0
  30. package/html/index.html +892 -0
  31. package/js/dist/collapse.js +321 -0
  32. package/js/dist/collapse.js.map +1 -0
  33. package/js/dist/common.js +1474 -0
  34. package/js/dist/common.js.map +1 -0
  35. package/js/dist/cooldropdown.js +467 -0
  36. package/js/dist/cooldropdown.js.map +1 -0
  37. package/js/dist/coolpopover.js +391 -0
  38. package/js/dist/coolpopover.js.map +1 -0
  39. package/js/dist/coolsectiontabs.js +256 -0
  40. package/js/dist/coolsectiontabs.js.map +1 -0
  41. package/js/dist/coolselect.js +796 -0
  42. package/js/dist/coolselect.js.map +1 -0
  43. package/js/dist/cooltooltip.js +360 -0
  44. package/js/dist/cooltooltip.js.map +1 -0
  45. package/js/dist/coolui.js +73 -0
  46. package/js/dist/coolui.js.map +1 -0
  47. package/js/dist/dropdown.js +1716 -0
  48. package/js/dist/dropdown.js.map +1 -0
  49. package/js/dist/popover.js +587 -0
  50. package/js/dist/popover.js.map +1 -0
  51. package/js/dist/sectiontabs.js +263 -0
  52. package/js/dist/sectiontabs.js.map +1 -0
  53. package/js/dist/select.js +2029 -0
  54. package/js/dist/select.js.map +1 -0
  55. package/js/dist/tooltip.js +555 -0
  56. package/js/dist/tooltip.js.map +1 -0
  57. package/js/index.esm.js +21 -0
  58. package/js/index.umd.js +21 -0
  59. package/js/src/abstract-ui-component.js +70 -0
  60. package/js/src/collapse.js +258 -0
  61. package/js/src/common.js +280 -0
  62. package/js/src/dialog.js +570 -0
  63. package/js/src/dropdown.js +443 -0
  64. package/js/src/popover.js +615 -0
  65. package/js/src/section-tabs.js +204 -0
  66. package/js/src/select.js +832 -0
  67. package/js/src/toast.js +581 -0
  68. package/js/src/tooltip.js +575 -0
  69. package/js/src/util/animate-css.js +22 -0
  70. package/js/src/util/index.js +112 -0
  71. package/js/src/util/perfect-scrollbar.js +1316 -0
  72. package/less/alert.less +345 -0
  73. package/less/badge.less +38 -0
  74. package/less/bootstrap-noconflict.less +23 -0
  75. package/less/bootstrap.less +23 -0
  76. package/less/button-group.less +153 -0
  77. package/less/buttons.less +287 -0
  78. package/less/dialog-noconflict.less +174 -0
  79. package/less/dialog.less +203 -0
  80. package/less/dropdown.less +209 -0
  81. package/less/forms.less +770 -0
  82. package/less/images.less +242 -0
  83. package/less/input-group.less +163 -0
  84. package/less/list-group.less +73 -0
  85. package/less/mixins/aspect-ratio.less +23 -0
  86. package/less/mixins/border-radius.less +24 -0
  87. package/less/mixins/box-shadow.less +4 -0
  88. package/less/mixins/buttons.less +17 -0
  89. package/less/mixins/caret.less +51 -0
  90. package/less/mixins/clearfix.less +10 -0
  91. package/less/mixins/gradients.less +34 -0
  92. package/less/mixins/nav-divider.less +7 -0
  93. package/less/mixins/object-fit.less +13 -0
  94. package/less/mixins/reset-text.less +16 -0
  95. package/less/mixins.less +11 -0
  96. package/less/package.json +11 -0
  97. package/less/pagination.less +69 -0
  98. package/less/popover.less +143 -0
  99. package/less/project.sublime-workspace +774 -0
  100. package/less/reboot.less +235 -0
  101. package/less/section.less +793 -0
  102. package/less/select.less +150 -0
  103. package/less/tables.less +737 -0
  104. package/less/tabs.less +162 -0
  105. package/less/tooltip.less +87 -0
  106. package/less/type.less +71 -0
  107. package/less/utilities/align.less +27 -0
  108. package/less/utilities/animate.less +3512 -0
  109. package/less/utilities/background.less +70 -0
  110. package/less/utilities/borders.less +16 -0
  111. package/less/utilities/color.less +70 -0
  112. package/less/utilities/cursor.less +8 -0
  113. package/less/utilities/display.less +38 -0
  114. package/less/utilities/embed.less +61 -0
  115. package/less/utilities/flex.less +76 -0
  116. package/less/utilities/jquery-ui.less +116 -0
  117. package/less/utilities/lazyload.less +29 -0
  118. package/less/utilities/overflow.less +11 -0
  119. package/less/utilities/pace.less +25 -0
  120. package/less/utilities/placeholder.less +60 -0
  121. package/less/utilities/position.less +42 -0
  122. package/less/utilities/scrollbar.less +152 -0
  123. package/less/utilities/spacing.less +197 -0
  124. package/less/utilities/text.less +68 -0
  125. package/less/utilities/transform.less +7 -0
  126. package/less/utilities.less +21 -0
  127. package/less/variables.less +343 -0
  128. package/package.json +71 -0
  129. package/scss/LISENCE +15 -0
  130. package/scss/_alert.scss +125 -0
  131. package/scss/_badge.scss +58 -0
  132. package/scss/_button-group.scss +124 -0
  133. package/scss/_buttons.scss +206 -0
  134. package/scss/_custom-forms.scss +423 -0
  135. package/scss/_dialog.scss +149 -0
  136. package/scss/_dropdown.scss +234 -0
  137. package/scss/_forms.scss +257 -0
  138. package/scss/_frame.scss +523 -0
  139. package/scss/_functions.scss +114 -0
  140. package/scss/_grid.scss +35 -0
  141. package/scss/_images.scss +312 -0
  142. package/scss/_input-group.scss +245 -0
  143. package/scss/_list-group.scss +82 -0
  144. package/scss/_mixins.scss +32 -0
  145. package/scss/_navbar.scss +214 -0
  146. package/scss/_pagination.scss +79 -0
  147. package/scss/_popover.scss +165 -0
  148. package/scss/_reboot.scss +279 -0
  149. package/scss/_root.scss +15 -0
  150. package/scss/_section.scss +851 -0
  151. package/scss/_select.scss +166 -0
  152. package/scss/_tables.scss +707 -0
  153. package/scss/_tabs.scss +175 -0
  154. package/scss/_toast.scss +182 -0
  155. package/scss/_tooltip.scss +101 -0
  156. package/scss/_type.scss +90 -0
  157. package/scss/_utilities.scss +21 -0
  158. package/scss/_variables.scss +697 -0
  159. package/scss/cool-grid.scss +29 -0
  160. package/scss/cool-reboot.scss +11 -0
  161. package/scss/cool.scss +36 -0
  162. package/scss/mixins/_alert-variant.scss +40 -0
  163. package/scss/mixins/_aspect-ratio.scss +29 -0
  164. package/scss/mixins/_background-variant.scss +25 -0
  165. package/scss/mixins/_badge-variant.scss +13 -0
  166. package/scss/mixins/_breakpoints.scss +102 -0
  167. package/scss/mixins/_buttons.scss +104 -0
  168. package/scss/mixins/_caret.scss +80 -0
  169. package/scss/mixins/_clearfix.scss +10 -0
  170. package/scss/mixins/_float.scss +14 -0
  171. package/scss/mixins/_forms.scss +51 -0
  172. package/scss/mixins/_gradients.scss +40 -0
  173. package/scss/mixins/_grid-framework.scss +72 -0
  174. package/scss/mixins/_grid.scss +60 -0
  175. package/scss/mixins/_nav-divider.scss +9 -0
  176. package/scss/mixins/_object-fit.scss +16 -0
  177. package/scss/mixins/_reset-text.scss +19 -0
  178. package/scss/mixins/_text-emphasis.scss +21 -0
  179. package/scss/mixins/_text-hide.scss +10 -0
  180. package/scss/mixins/_text-truncate.scss +8 -0
  181. package/scss/project.sublime-workspace +491 -0
  182. package/scss/utilities/_align.scss +41 -0
  183. package/scss/utilities/_animate.scss +3512 -0
  184. package/scss/utilities/_background.scss +14 -0
  185. package/scss/utilities/_borders.scss +146 -0
  186. package/scss/utilities/_clearfix.scss +6 -0
  187. package/scss/utilities/_collapse.scss +33 -0
  188. package/scss/utilities/_cursor.scss +10 -0
  189. package/scss/utilities/_display.scss +16 -0
  190. package/scss/utilities/_embed.scss +78 -0
  191. package/scss/utilities/_flex.scss +50 -0
  192. package/scss/utilities/_lazyload.scss +31 -0
  193. package/scss/utilities/_overflow.scss +6 -0
  194. package/scss/utilities/_perfect-scrollbar.scss +154 -0
  195. package/scss/utilities/_placeholder.scss +76 -0
  196. package/scss/utilities/_position.scss +30 -0
  197. package/scss/utilities/_sizing.scss +32 -0
  198. package/scss/utilities/_spacing.scss +92 -0
  199. package/scss/utilities/_text.scss +97 -0
@@ -0,0 +1,770 @@
1
+ // Forms
2
+ // Form control
3
+ .form-control {
4
+ display: block;
5
+ width: 100%;
6
+ padding: @input-padding-y @input-padding-x;
7
+ height: @input-height;
8
+ font-size: @font-size-base;
9
+ line-height: @input-line-height;
10
+ color: @color-text;
11
+ background-color: @color-bg;
12
+ background-image: none;
13
+ background-clip: padding-box;
14
+ border: 1px solid @color-border;
15
+ border-radius: 3px;
16
+ box-sizing: border-box;
17
+ &.input-sm {
18
+ padding: @input-padding-y-sm @input-padding-x-sm;
19
+ font-size: @font-size-small;
20
+ height: @input-height-sm;
21
+ line-height: @line-height-sm;
22
+ }
23
+ &.input-xs {
24
+ padding: @input-padding-y-xs @input-padding-x-xs;
25
+ font-size: @font-size-extra-small;
26
+ height: @input-height-xs;
27
+ line-height: @line-height-xs;
28
+ }
29
+ &.input-lg {
30
+ padding: @input-padding-y-lg @input-padding-x-lg;
31
+ font-size: @font-size-large;
32
+ height: @input-height-lg;
33
+ line-height: @line-height-lg;
34
+ }
35
+ & + .input-validation {
36
+ width: 100%;
37
+ flex: 1;
38
+ }
39
+
40
+ /* Fix crappy Safari styles */
41
+ &[type="search"],
42
+ &[type="date"],
43
+ &[type="datetime"],
44
+ &[type="text"],
45
+ &[type="password"],
46
+ &[type="number"] {
47
+ -webkit-appearance: none;
48
+ }
49
+ &[type="color"] {
50
+ padding: 0;
51
+ width: 100px;
52
+ }
53
+
54
+ &[type=number]::-webkit-inner-spin-button,
55
+ &[type=number]::-webkit-outer-spin-button {
56
+ position: absolute;
57
+ z-index: 3;
58
+ right: 0;
59
+ bottom: 0;
60
+ top: 0;
61
+ }
62
+
63
+ &[type=time]::-webkit-inner-spin-button,
64
+ &[type=time]::-webkit-outer-spin-button {
65
+ position: absolute;
66
+ z-index: 3;
67
+ right: 0;
68
+ bottom: 0;
69
+ top: 0;
70
+ }
71
+
72
+ &[type="date"]::-webkit-calendar-picker-indicator{
73
+ display:inline-block;
74
+ margin-top:2%;
75
+ margin-right: -14px;
76
+ float: right;
77
+ }
78
+ &[type="date"]::-webkit-inner-spin-button {
79
+ -webkit-appearance: none;
80
+ margin: 0;
81
+ }
82
+
83
+ &:focus {
84
+ border: 1px solid darken(@color-border, 20%);
85
+ outline: 0;
86
+ }
87
+
88
+ &::placeholder {
89
+ color: @color-placeholder !important;
90
+ opacity: 1 !important;
91
+ }
92
+
93
+ &[disabled] {
94
+ background: @color-grey-lightest;
95
+ cursor: not-allowed;
96
+ opacity: 1;
97
+ }
98
+ }
99
+
100
+ .needs-validation {
101
+ &.was-validated {
102
+ .form-control:invalid {
103
+ border-color: @color-red;
104
+ }
105
+ }
106
+ }
107
+
108
+ // Label
109
+ label {
110
+ display: inline-block;
111
+ font-size: @font-size-small;
112
+ margin-bottom: @label-margin-bottom;
113
+ }
114
+
115
+ // Form group
116
+ .form-group {
117
+ margin-bottom: @form-group-margin-bottom;
118
+ &.hidden + .radio {
119
+ margin-top: -@form-group-margin-bottom / 2;
120
+ }
121
+ }
122
+
123
+ // Form inline
124
+ .form-inline {
125
+ display: flex;
126
+ flex-direction: row;
127
+ align-items: center;
128
+ flex-wrap: wrap;
129
+ margin-bottom: 10px;
130
+ &.flex-align-top {
131
+ align-items: flex-start;
132
+ }
133
+ &:last-child {
134
+ margin-bottom: 0;
135
+ }
136
+ // Inline-block all the things for "inline"
137
+ > .form-group {
138
+ flex: 1 1 auto;
139
+ display: block;
140
+ padding: 0 5px;
141
+ box-sizing: border-box;
142
+ .input-group {
143
+ flex-wrap: nowrap;
144
+ .form-control {
145
+ flex: 1 1 auto;
146
+ width: auto;
147
+ }
148
+ }
149
+ }
150
+
151
+ // In navbar-form, allow folks to *not* use `.form-group`
152
+ > .form-control {
153
+ flex: 1 1 0%;
154
+ display: inline-block;
155
+ width: auto; // Prevent labels from stacking above inputs in `.form-group`
156
+ vertical-align: middle;
157
+ }
158
+
159
+ > .input-group {
160
+ display: inline-table;
161
+ vertical-align: middle;
162
+ width: auto;
163
+
164
+ .input-group-addon,
165
+ .input-group-btn,
166
+ .form-control {
167
+ width: auto;
168
+ }
169
+
170
+ & + .input-group {
171
+ margin-top: 0;
172
+ padding-left: 10px;
173
+ }
174
+ }
175
+
176
+ // Input groups need that 100% width though
177
+ > .input-group > .form-control {
178
+ width: 100%;
179
+ }
180
+ }
181
+
182
+ // Form horizontal
183
+ .form-horizontal {
184
+ .subtitle {
185
+ margin-top: 20px;
186
+ }
187
+
188
+ .separator {
189
+ height: 20px;
190
+ }
191
+
192
+ @media screen and (min-width: 768px) {
193
+ .separator {
194
+ height: 40px;
195
+ }
196
+ .subtitle {
197
+ margin-top: 0;
198
+ margin-left: 230px;
199
+ }
200
+ }
201
+
202
+ .form-group {
203
+ margin-right: -10px;
204
+ margin-left: -10px;
205
+ overflow: hidden;
206
+ margin: 0;
207
+ display: flex;
208
+ flex-direction: row;
209
+ flex-wrap: wrap;
210
+ align-items: center;
211
+ @media screen and (min-width: 768px) {
212
+ flex-wrap: wrap;
213
+ }
214
+ > .input-group {
215
+ flex: 0 0 100%;
216
+ }
217
+ > label {
218
+ box-sizing: border-box;
219
+ flex: 0 0 100%;
220
+ width: 100%;
221
+ &.align-top {
222
+ align-self: flex-start;
223
+ }
224
+ }
225
+ }
226
+ }
227
+
228
+ // Textarea
229
+ textarea {
230
+ width: 100%;
231
+ max-width: 100%;
232
+ border: 1px solid @color-border;
233
+ border-radius: @border-radius;
234
+ padding: 8px 14px;
235
+ &:focus {
236
+ border: 1px solid @color-primary;
237
+ outline: 0;
238
+ }
239
+ &.form-control {
240
+ -webkit-appearance: none;
241
+ .one-line-style(@input-line-height) {
242
+ line-height: @input-line-height;
243
+ transition: height 0.15s ease, line-height 0s ease 0.15s, padding 0s ease 0.15s;
244
+ resize: none;
245
+ overflow: hidden;
246
+ text-overflow: ellipsis;
247
+ box-sizing: border-box;
248
+ }
249
+ &.one-line {
250
+ .one-line-style(@input-line-height);
251
+ &.input-sm {
252
+ .one-line-style(@line-height-sm);
253
+ }
254
+ &.input-xs {
255
+ .one-line-style(@line-height-xs);
256
+ }
257
+ }
258
+ &:not(.one-line) {
259
+ line-height: 1.42857;
260
+ }
261
+ }
262
+ }
263
+
264
+ // Checkbox
265
+ .checkbox {
266
+ border-collapse: separate;
267
+ display: flex;
268
+ position: relative;
269
+ align-items: center;
270
+ width: 100%;
271
+ padding: 0;
272
+ border-radius: @border-radius;
273
+ box-sizing: border-box;
274
+ &.border {
275
+ padding: 0 10px;
276
+ border: 1px solid @color-border;
277
+ }
278
+ label {
279
+ display: inline-block;
280
+ max-width: 100%;
281
+ min-height: 20px;
282
+ line-height: 20px;
283
+ padding: 0;
284
+ margin-bottom: 0;
285
+ font-weight: 400;
286
+ cursor: pointer;
287
+ }
288
+ img {
289
+ vertical-align: middle;
290
+ }
291
+ input {
292
+ margin: 0 5px 0 0;
293
+ vertical-align: middle;
294
+ }
295
+ & + .checkbox {
296
+ margin-top: 10px;
297
+ }
298
+ }
299
+
300
+ // Styled checkbox
301
+ .styled-checkbox {
302
+ line-height: 0;
303
+ label {
304
+ display: inline-flex;
305
+ align-items: center;
306
+ margin: auto;
307
+ user-select: none;
308
+ cursor: pointer;
309
+ span {
310
+ display: inline-block;
311
+ vertical-align: middle;
312
+ &:first-child {
313
+ position: relative;
314
+ width: 17px;
315
+ height: 17px;
316
+ min-width: 17px;
317
+ min-height: 17px;
318
+ border-radius: @border-radius;
319
+ transform: scale(1);
320
+ vertical-align: middle;
321
+ border: 1px solid #9098A9;
322
+ transition: all .2s ease;
323
+ svg {
324
+ position: absolute;
325
+ top: 4px;
326
+ left: 3px;
327
+ fill: none;
328
+ stroke: @color-white;
329
+ stroke-width: 2;
330
+ stroke-linecap: round;
331
+ stroke-linejoin: round;
332
+ stroke-dasharray: 16px;
333
+ stroke-dashoffset: 16px;
334
+ transition: all .3s ease;
335
+ transition-delay: .1s;
336
+ }
337
+ &:before {
338
+ content: '';
339
+ width: 100%;
340
+ height: 100%;
341
+ background: @color-blue;
342
+ display: block;
343
+ transform: scale(0);
344
+ opacity: 1;
345
+ border-radius: 50%;
346
+ }
347
+ }
348
+ &.checkbox-label {
349
+ padding-left: 8px;
350
+ overflow: hidden;
351
+ text-overflow: ellipsis;
352
+ .reset-text();
353
+ }
354
+ }
355
+ &:hover span:first-child {
356
+ border-color: @color-blue;
357
+ }
358
+ }
359
+
360
+ input[type="checkbox"] {
361
+ display: none;
362
+ }
363
+
364
+ input[type="checkbox"]:checked + label {
365
+ span {
366
+ &:first-child {
367
+ background: @color-blue;
368
+ border-color: @color-blue;
369
+ animation: wave .4s ease;
370
+ svg {
371
+ stroke-dashoffset: 0;
372
+ }
373
+ &:before {
374
+ transform: scale(3.5);
375
+ opacity: 0;
376
+ transition: all .6s ease;
377
+ }
378
+ }
379
+ }
380
+ }
381
+
382
+ input[type="checkbox"]:disabled + label,
383
+ input[type="checkbox"].disabled + label {
384
+ span {
385
+ &:first-child {
386
+ cursor: not-allowed;
387
+ background-color: @color-grey-lighter;
388
+ border: 1px solid #9098A9;
389
+ opacity: 0.35;
390
+ }
391
+ }
392
+ &:hover {
393
+ span {
394
+ &:first-child {
395
+ border: 1px solid #9098A9;
396
+ }
397
+ }
398
+ }
399
+ }
400
+ }
401
+
402
+ @keyframes wave {
403
+ 50% {transform: scale(.9);}
404
+ }
405
+
406
+ // Radio
407
+ .radio {
408
+ position: relative;
409
+ display: block;
410
+ margin-top: 10px;
411
+ margin-bottom: 10px;
412
+ + .radio {
413
+ margin-top: -5px;
414
+ }
415
+ &.disabled {
416
+ label {
417
+ cursor: not-allowed;
418
+ }
419
+ }
420
+ label {
421
+ display: inline-block;
422
+ max-width: 100%;
423
+ min-height: 20px;
424
+ line-height: 20px;
425
+ padding: 0 0 0 20px;
426
+ margin-bottom: 0;
427
+ font-weight: 400;
428
+ cursor: pointer;
429
+ }
430
+ input[type=radio] {
431
+ position: absolute;
432
+ margin: 4px 0 0 -20px;
433
+ line-height: normal;
434
+ &[disabled] {
435
+ cursor: not-allowed;
436
+ }
437
+ }
438
+ }
439
+
440
+ // Styled radio
441
+ .styled-radio {
442
+ line-height: 0;
443
+ label {
444
+ display: inline-flex;
445
+ align-items: center;
446
+ margin: auto;
447
+ user-select: none;
448
+ cursor: pointer;
449
+ span {
450
+ display: inline-block;
451
+ vertical-align: middle;
452
+ &:first-child {
453
+ position: relative;
454
+ width: 17px;
455
+ height: 17px;
456
+ min-width: 17px;
457
+ min-height: 17px;
458
+ border-radius: 50%;
459
+ transform: scale(1);
460
+ vertical-align: middle;
461
+ border: 1px solid #9098A9;
462
+ transition: all .2s ease;
463
+ svg {
464
+ position: absolute;
465
+ top: 4px;
466
+ left: 3px;
467
+ fill: none;
468
+ stroke: @color-white;
469
+ stroke-width: 2;
470
+ stroke-linecap: round;
471
+ stroke-linejoin: round;
472
+ stroke-dasharray: 16px;
473
+ stroke-dashoffset: 16px;
474
+ transition: all .3s ease;
475
+ transition-delay: .1s;
476
+ }
477
+ &:before {
478
+ content: '';
479
+ width: 100%;
480
+ height: 100%;
481
+ background: @color-blue;
482
+ display: block;
483
+ transform: scale(0);
484
+ opacity: 1;
485
+ border-radius: 50%;
486
+ }
487
+ }
488
+ &.radio-label {
489
+ padding-left: 8px;
490
+ overflow: hidden;
491
+ text-overflow: ellipsis;
492
+ .reset-text();
493
+ }
494
+ }
495
+ &:hover span:first-child {
496
+ border-color: @color-blue;
497
+ }
498
+ }
499
+
500
+ input[type="radio"] {
501
+ display: none;
502
+ }
503
+
504
+ input[type="radio"]:checked + label {
505
+ span {
506
+ &:first-child {
507
+ background: @color-blue;
508
+ border-color: @color-blue;
509
+ animation: wave .4s ease;
510
+ svg {
511
+ stroke-dashoffset: 0;
512
+ }
513
+ &:before {
514
+ transform: scale(3.5);
515
+ opacity: 0;
516
+ transition: all .6s ease;
517
+ }
518
+ }
519
+ }
520
+ }
521
+
522
+ input[type="radio"]:disabled + label,
523
+ input[type="radio"].disabled + label {
524
+ span {
525
+ &:first-child {
526
+ cursor: not-allowed;
527
+ background-color: @color-grey-lighter;
528
+ border: 1px solid #9098A9;
529
+ opacity: 0.35;
530
+ }
531
+ }
532
+ &:hover {
533
+ span {
534
+ &:first-child {
535
+ border: 1px solid #9098A9;
536
+ }
537
+ }
538
+ }
539
+ }
540
+ }
541
+
542
+ @keyframes wave {
543
+ 50% {transform: scale(.9);}
544
+ }
545
+
546
+ // ON/OFF Switch
547
+ .onoffswitch {
548
+ display: inline-block;
549
+ vertical-align: middle;
550
+ position: relative;
551
+ width: 35px;
552
+ user-select: none;
553
+ margin: 0 auto;
554
+ &.inline-switch {
555
+ margin-left: 0;
556
+ margin-right: 10px;
557
+ }
558
+ .onoffswitch-checkbox {
559
+ display: none;
560
+ background: red;
561
+ &:disabled {
562
+ cursor: not-allowed;
563
+ pointer-events: none;
564
+ & + .onoffswitch-label {
565
+ opacity: 0.4;
566
+ &:hover {
567
+ cursor: not-allowed;
568
+ }
569
+ }
570
+ }
571
+ }
572
+ .onoffswitch-label {
573
+ display: block;
574
+ overflow: hidden;
575
+ cursor: pointer;
576
+ height: 15px;
577
+ padding: 0;
578
+ line-height: 15px;
579
+ border: 2px solid #79868C;
580
+ border-radius: 15px;
581
+ background-color: #79868C;
582
+ margin-bottom: 0;
583
+ transition: all 0.3s ease-in;
584
+ &:before {
585
+ content: '';
586
+ display: block;
587
+ width: 15px;
588
+ margin: 0px;
589
+ background: @color-white;
590
+ position: absolute;
591
+ top: 0;
592
+ right: 16px;
593
+ bottom: 0;
594
+ border: 2px solid #79868C;
595
+ border-radius: 15px;
596
+ transition: all 0.3s ease-in 0s;
597
+ }
598
+ }
599
+ .onoffswitch-checkbox:checked + .onoffswitch-label {
600
+ background-color: @color-green;
601
+ }
602
+ .onoffswitch-checkbox:checked + .onoffswitch-label,
603
+ .onoffswitch-checkbox:checked + .onoffswitch-label:before {
604
+ border-color: @color-green;
605
+ }
606
+ .onoffswitch-checkbox:checked + .onoffswitch-label:before {
607
+ right: 0px;
608
+ }
609
+ }
610
+
611
+ // Misc
612
+ .fake-input {
613
+ background: @color-grey-lightest;
614
+ border: 1px solid @color-border;
615
+ line-height: @input-line-height;
616
+ border-radius: 3px;
617
+ height: @input-height;
618
+ padding: @input-padding-y @input-padding-x;
619
+ font-family: inherit;
620
+ font-size: @font-size-base;
621
+ box-sizing: border-box;
622
+ }
623
+
624
+ .form-control-placeholder {
625
+ display: block;
626
+ width: 100%;
627
+ padding: @input-padding-y @input-padding-x;
628
+ height: @input-height;
629
+ font-size: @font-size-base;
630
+ line-height: @input-line-height;
631
+ color: @color-text;
632
+ box-sizing: border-box;
633
+ &.input-sm {
634
+ padding: @input-padding-y-sm @input-padding-x-sm;
635
+ font-size: @font-size-small;
636
+ height: @input-height-sm;
637
+ line-height: @line-height-sm;
638
+ }
639
+ &.input-xs {
640
+ padding: @input-padding-y-xs @input-padding-x-xs;
641
+ font-size: @font-size-extra-small;
642
+ height: @input-height-xs;
643
+ line-height: @line-height-xs;
644
+ }
645
+ & + .input-validation {
646
+ width: 100%;
647
+ flex: 1;
648
+ }
649
+ }
650
+
651
+ .form-label-group {
652
+ position: relative;
653
+ margin-bottom: 1rem;
654
+
655
+ & > input, label {
656
+ padding: @input-padding-y @input-padding-x;
657
+ }
658
+
659
+ & > label {
660
+ position: absolute;
661
+ top: 0;
662
+ left: 0;
663
+ display: block;
664
+ width: 100%;
665
+ margin-bottom: 0; /* Override default `<label>` margin */
666
+ line-height: @input-line-height;
667
+ color: #76848F;
668
+ border: 1px solid transparent;
669
+ border-radius: @border-radius;
670
+ transition: all .1s ease-in-out;
671
+ pointer-events: none;
672
+ font-size: @font-size-base;
673
+ }
674
+
675
+ input::-webkit-input-placeholder,
676
+ input:-ms-input-placeholder,
677
+ input::-ms-input-placeholder,
678
+ input::-moz-placeholder,
679
+ input::placeholder {
680
+ color: transparent;
681
+ }
682
+
683
+ &.label-on-top {
684
+ input {
685
+ padding-top: ~"calc(@{input-padding-y} + @{input-padding-y} * (2 / 3))";
686
+ padding-bottom: ~"calc(@{input-padding-y} / 3)";
687
+
688
+ & ~ label {
689
+ padding-top: ~"calc(@{input-padding-y} / 3)";
690
+ padding-bottom: ~"calc(@{input-padding-y} / 3)";
691
+ font-size: @font-size-extra-small;
692
+ color: #76848F;
693
+ }
694
+ }
695
+ }
696
+ input:-webkit-autofill {
697
+ padding-top: ~"calc(@{input-padding-y} + @{input-padding-y} * (2 / 3))";
698
+ padding-bottom: ~"calc(@{input-padding-y} / 3)";
699
+
700
+ & ~ label {
701
+ padding-top: ~"calc(@{input-padding-y} / 3)";
702
+ padding-bottom: ~"calc(@{input-padding-y} / 3)";
703
+ font-size: @font-size-extra-small;
704
+ color: #76848F;
705
+ }
706
+ }
707
+ }
708
+
709
+ .form-label-group-lg {
710
+ position: relative;
711
+ margin-bottom: 1rem;
712
+ height: auto;
713
+
714
+ & > .form-control, label {
715
+ padding: @input-padding-y-lg @input-padding-x-lg;
716
+ }
717
+
718
+ & > label {
719
+ position: absolute;
720
+ top: 0;
721
+ left: 0;
722
+ display: block;
723
+ width: 100%;
724
+ margin-bottom: 0; /* Override default `<label>` margin */
725
+ line-height: @line-height-lg;
726
+ color: #76848F;
727
+ border: 1px solid transparent;
728
+ border-radius: @border-radius;
729
+ transition: all .1s ease-in-out;
730
+ pointer-events: none;
731
+ font-size: @font-size-large;
732
+ }
733
+
734
+ input::-webkit-input-placeholder,
735
+ input:-ms-input-placeholder,
736
+ input::-ms-input-placeholder,
737
+ input::-moz-placeholder,
738
+ input::placeholder {
739
+ color: transparent;
740
+ }
741
+
742
+ select {
743
+ -webkit-appearance: none;
744
+ }
745
+
746
+ &.label-on-top {
747
+ .form-control {
748
+ padding-top: ~"calc(@{input-padding-y-lg} + @{input-padding-y-lg} * (2 / 3))";
749
+ padding-bottom: ~"calc(@{input-padding-y-lg} / 3)";
750
+
751
+ & ~ label {
752
+ padding-top: ~"calc(@{input-padding-y-lg} / 3)";
753
+ padding-bottom: ~"calc(@{input-padding-y-lg} / 3)";
754
+ font-size: @font-size-small;
755
+ color: #76848F;
756
+ }
757
+ }
758
+ }
759
+ input:-webkit-autofill {
760
+ padding-top: ~"calc(@{input-padding-y-lg} + @{input-padding-y-lg} * (2 / 3))";
761
+ padding-bottom: ~"calc(@{input-padding-y-lg} / 3)";
762
+
763
+ & ~ label {
764
+ padding-top: ~"calc(@{input-padding-y-lg} / 3)";
765
+ padding-bottom: ~"calc(@{input-padding-y-lg} / 3)";
766
+ font-size: @font-size-small;
767
+ color: #76848F;
768
+ }
769
+ }
770
+ }