fomantic-ui 2.9.0-beta.28 → 2.9.0-beta.282

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 (313) hide show
  1. package/.all-contributorsrc +224 -3
  2. package/.github/workflows/ci.yml +7 -6
  3. package/.github/workflows/nightly.yml +13 -8
  4. package/.github/workflows/release.yml +31 -0
  5. package/CONTRIBUTORS.md +77 -37
  6. package/README.md +8 -8
  7. package/dist/components/accordion.css +175 -35
  8. package/dist/components/accordion.js +6 -3
  9. package/dist/components/accordion.min.css +2 -2
  10. package/dist/components/accordion.min.js +3 -3
  11. package/dist/components/ad.css +4 -4
  12. package/dist/components/ad.min.css +2 -2
  13. package/dist/components/api.js +88 -29
  14. package/dist/components/api.min.js +3 -3
  15. package/dist/components/breadcrumb.css +1 -1
  16. package/dist/components/breadcrumb.min.css +1 -1
  17. package/dist/components/button.css +195 -148
  18. package/dist/components/button.min.css +2 -2
  19. package/dist/components/calendar.css +18 -1
  20. package/dist/components/calendar.js +84 -67
  21. package/dist/components/calendar.min.css +2 -2
  22. package/dist/components/calendar.min.js +3 -3
  23. package/dist/components/card.css +753 -116
  24. package/dist/components/card.min.css +2 -2
  25. package/dist/components/checkbox.css +92 -91
  26. package/dist/components/checkbox.js +17 -11
  27. package/dist/components/checkbox.min.css +2 -2
  28. package/dist/components/checkbox.min.js +3 -3
  29. package/dist/components/comment.css +12 -12
  30. package/dist/components/comment.min.css +2 -2
  31. package/dist/components/container.css +97 -3
  32. package/dist/components/container.min.css +2 -2
  33. package/dist/components/dimmer.css +29 -14
  34. package/dist/components/dimmer.js +11 -5
  35. package/dist/components/dimmer.min.css +2 -2
  36. package/dist/components/dimmer.min.js +3 -3
  37. package/dist/components/divider.css +31 -31
  38. package/dist/components/divider.min.css +2 -2
  39. package/dist/components/dropdown.css +89 -49
  40. package/dist/components/dropdown.js +95 -49
  41. package/dist/components/dropdown.min.css +2 -2
  42. package/dist/components/dropdown.min.js +3 -3
  43. package/dist/components/embed.css +5 -5
  44. package/dist/components/embed.js +1 -1
  45. package/dist/components/embed.min.css +2 -2
  46. package/dist/components/embed.min.js +3 -3
  47. package/dist/components/emoji.css +10840 -8832
  48. package/dist/components/emoji.min.css +1 -1
  49. package/dist/components/feed.css +29 -29
  50. package/dist/components/feed.min.css +2 -2
  51. package/dist/components/flag.css +1001 -892
  52. package/dist/components/flag.min.css +2 -2
  53. package/dist/components/form.css +158 -81
  54. package/dist/components/form.js +38 -29
  55. package/dist/components/form.min.css +2 -2
  56. package/dist/components/form.min.js +3 -3
  57. package/dist/components/grid.css +25 -21
  58. package/dist/components/grid.min.css +2 -2
  59. package/dist/components/header.css +5 -3
  60. package/dist/components/header.min.css +2 -2
  61. package/dist/components/icon.css +2063 -1984
  62. package/dist/components/icon.min.css +2 -2
  63. package/dist/components/image.css +1 -1
  64. package/dist/components/image.min.css +1 -1
  65. package/dist/components/input.css +758 -21
  66. package/dist/components/input.min.css +2 -2
  67. package/dist/components/item.css +16 -16
  68. package/dist/components/item.min.css +2 -2
  69. package/dist/components/label.css +64 -64
  70. package/dist/components/label.min.css +2 -2
  71. package/dist/components/list.css +30 -30
  72. package/dist/components/list.min.css +2 -2
  73. package/dist/components/loader.css +352 -352
  74. package/dist/components/loader.min.css +2 -2
  75. package/dist/components/menu.css +107 -75
  76. package/dist/components/menu.min.css +1 -1
  77. package/dist/components/message.css +42 -42
  78. package/dist/components/message.min.css +2 -2
  79. package/dist/components/modal.css +13 -1
  80. package/dist/components/modal.js +127 -49
  81. package/dist/components/modal.min.css +2 -2
  82. package/dist/components/modal.min.js +3 -3
  83. package/dist/components/nag.css +1 -1
  84. package/dist/components/nag.js +1 -1
  85. package/dist/components/nag.min.css +1 -1
  86. package/dist/components/nag.min.js +3 -3
  87. package/dist/components/placeholder.css +33 -33
  88. package/dist/components/placeholder.min.css +2 -2
  89. package/dist/components/popup.css +99 -103
  90. package/dist/components/popup.js +2 -2
  91. package/dist/components/popup.min.css +2 -2
  92. package/dist/components/popup.min.js +3 -3
  93. package/dist/components/progress.css +1 -1
  94. package/dist/components/progress.js +4 -1
  95. package/dist/components/progress.min.css +1 -1
  96. package/dist/components/progress.min.js +3 -3
  97. package/dist/components/rail.css +1 -1
  98. package/dist/components/rail.min.css +1 -1
  99. package/dist/components/rating.css +1 -1
  100. package/dist/components/rating.js +1 -1
  101. package/dist/components/rating.min.css +1 -1
  102. package/dist/components/rating.min.js +3 -3
  103. package/dist/components/reset.css +5 -4
  104. package/dist/components/reset.min.css +2 -2
  105. package/dist/components/reveal.css +1 -1
  106. package/dist/components/reveal.min.css +1 -1
  107. package/dist/components/search.css +3 -3
  108. package/dist/components/search.js +2 -2
  109. package/dist/components/search.min.css +2 -2
  110. package/dist/components/search.min.js +3 -3
  111. package/dist/components/segment.css +118 -34
  112. package/dist/components/segment.min.css +2 -2
  113. package/dist/components/shape.css +1 -1
  114. package/dist/components/shape.js +3 -3
  115. package/dist/components/shape.min.css +1 -1
  116. package/dist/components/shape.min.js +3 -3
  117. package/dist/components/sidebar.css +7 -5
  118. package/dist/components/sidebar.js +12 -10
  119. package/dist/components/sidebar.min.css +2 -2
  120. package/dist/components/sidebar.min.js +3 -3
  121. package/dist/components/site.css +65 -39
  122. package/dist/components/site.js +1 -1
  123. package/dist/components/site.min.css +2 -2
  124. package/dist/components/site.min.js +3 -3
  125. package/dist/components/slider.css +17 -17
  126. package/dist/components/slider.js +68 -51
  127. package/dist/components/slider.min.css +1 -1
  128. package/dist/components/slider.min.js +3 -3
  129. package/dist/components/state.js +1 -1
  130. package/dist/components/state.min.js +3 -3
  131. package/dist/components/statistic.css +2 -2
  132. package/dist/components/statistic.min.css +2 -2
  133. package/dist/components/step.css +30 -30
  134. package/dist/components/step.min.css +2 -2
  135. package/dist/components/sticky.css +1 -1
  136. package/dist/components/sticky.js +1 -1
  137. package/dist/components/sticky.min.css +1 -1
  138. package/dist/components/sticky.min.js +3 -3
  139. package/dist/components/tab.css +5 -5
  140. package/dist/components/tab.js +23 -5
  141. package/dist/components/tab.min.css +2 -2
  142. package/dist/components/tab.min.js +3 -3
  143. package/dist/components/table.css +1174 -32
  144. package/dist/components/table.min.css +2 -2
  145. package/dist/components/text.css +1 -1
  146. package/dist/components/text.min.css +1 -1
  147. package/dist/components/toast.css +39 -1
  148. package/dist/components/toast.js +56 -28
  149. package/dist/components/toast.min.css +2 -2
  150. package/dist/components/toast.min.js +3 -3
  151. package/dist/components/transition.css +1 -1
  152. package/dist/components/transition.js +21 -16
  153. package/dist/components/transition.min.css +1 -1
  154. package/dist/components/transition.min.js +3 -3
  155. package/dist/components/visibility.js +1 -1
  156. package/dist/components/visibility.min.js +3 -3
  157. package/dist/semantic.css +19523 -13089
  158. package/dist/semantic.js +666 -369
  159. package/dist/semantic.min.css +3 -3
  160. package/dist/semantic.min.js +3 -3
  161. package/dist/themes/default/assets/fonts/brand-icons.eot +0 -0
  162. package/dist/themes/default/assets/fonts/brand-icons.svg +801 -654
  163. package/dist/themes/default/assets/fonts/brand-icons.ttf +0 -0
  164. package/dist/themes/default/assets/fonts/brand-icons.woff +0 -0
  165. package/dist/themes/default/assets/fonts/brand-icons.woff2 +0 -0
  166. package/dist/themes/default/assets/fonts/icons.eot +0 -0
  167. package/dist/themes/default/assets/fonts/icons.svg +1175 -1079
  168. package/dist/themes/default/assets/fonts/icons.ttf +0 -0
  169. package/dist/themes/default/assets/fonts/icons.woff +0 -0
  170. package/dist/themes/default/assets/fonts/icons.woff2 +0 -0
  171. package/dist/themes/default/assets/fonts/outline-icons.eot +0 -0
  172. package/dist/themes/default/assets/fonts/outline-icons.svg +93 -95
  173. package/dist/themes/default/assets/fonts/outline-icons.ttf +0 -0
  174. package/dist/themes/default/assets/fonts/outline-icons.woff +0 -0
  175. package/dist/themes/default/assets/fonts/outline-icons.woff2 +0 -0
  176. package/examples/assets/library/iframe-content.js +8 -8
  177. package/examples/assets/library/iframe.js +3 -3
  178. package/package.json +18 -16
  179. package/scripts/nightly-version.js +47 -38
  180. package/src/definitions/behaviors/api.js +87 -28
  181. package/src/definitions/behaviors/form.js +37 -28
  182. package/src/definitions/collections/form.less +225 -161
  183. package/src/definitions/collections/grid.less +723 -687
  184. package/src/definitions/collections/menu.less +224 -166
  185. package/src/definitions/collections/message.less +49 -47
  186. package/src/definitions/collections/table.less +855 -268
  187. package/src/definitions/elements/button.less +611 -469
  188. package/src/definitions/elements/container.less +145 -8
  189. package/src/definitions/elements/divider.less +24 -24
  190. package/src/definitions/elements/emoji.less +16 -10
  191. package/src/definitions/elements/flag.less +8 -18
  192. package/src/definitions/elements/header.less +46 -37
  193. package/src/definitions/elements/icon.less +39 -32
  194. package/src/definitions/elements/input.less +268 -26
  195. package/src/definitions/elements/label.less +125 -124
  196. package/src/definitions/elements/list.less +84 -75
  197. package/src/definitions/elements/loader.less +99 -98
  198. package/src/definitions/elements/placeholder.less +32 -32
  199. package/src/definitions/elements/segment.less +174 -55
  200. package/src/definitions/elements/step.less +76 -72
  201. package/src/definitions/elements/text.less +17 -15
  202. package/src/definitions/globals/reset.less +2 -2
  203. package/src/definitions/globals/site.less +23 -2
  204. package/src/definitions/modules/accordion.js +5 -2
  205. package/src/definitions/modules/accordion.less +181 -29
  206. package/src/definitions/modules/calendar.js +83 -66
  207. package/src/definitions/modules/calendar.less +20 -0
  208. package/src/definitions/modules/checkbox.js +16 -10
  209. package/src/definitions/modules/checkbox.less +83 -227
  210. package/src/definitions/modules/dimmer.js +10 -4
  211. package/src/definitions/modules/dimmer.less +21 -8
  212. package/src/definitions/modules/dropdown.js +94 -48
  213. package/src/definitions/modules/dropdown.less +178 -127
  214. package/src/definitions/modules/embed.less +4 -4
  215. package/src/definitions/modules/modal.js +126 -48
  216. package/src/definitions/modules/modal.less +12 -0
  217. package/src/definitions/modules/nag.less +20 -19
  218. package/src/definitions/modules/popup.js +1 -1
  219. package/src/definitions/modules/popup.less +86 -90
  220. package/src/definitions/modules/progress.js +3 -0
  221. package/src/definitions/modules/progress.less +19 -18
  222. package/src/definitions/modules/rating.less +35 -34
  223. package/src/definitions/modules/search.js +1 -1
  224. package/src/definitions/modules/search.less +35 -19
  225. package/src/definitions/modules/shape.js +2 -2
  226. package/src/definitions/modules/sidebar.js +11 -9
  227. package/src/definitions/modules/sidebar.less +36 -22
  228. package/src/definitions/modules/slider.js +67 -50
  229. package/src/definitions/modules/slider.less +48 -47
  230. package/src/definitions/modules/tab.js +22 -4
  231. package/src/definitions/modules/tab.less +4 -4
  232. package/src/definitions/modules/toast.js +55 -27
  233. package/src/definitions/modules/toast.less +48 -16
  234. package/src/definitions/modules/transition.js +20 -15
  235. package/src/definitions/views/ad.less +3 -3
  236. package/src/definitions/views/card.less +519 -374
  237. package/src/definitions/views/comment.less +93 -82
  238. package/src/definitions/views/feed.less +164 -144
  239. package/src/definitions/views/item.less +251 -198
  240. package/src/definitions/views/statistic.less +91 -89
  241. package/src/themes/basic/elements/icon.overrides +149 -149
  242. package/src/themes/basic/elements/step.overrides +2 -2
  243. package/src/themes/bookish/elements/header.overrides +1 -1
  244. package/src/themes/chubby/elements/button.overrides +1 -1
  245. package/src/themes/chubby/elements/header.overrides +1 -1
  246. package/src/themes/default/assets/fonts/brand-icons.eot +0 -0
  247. package/src/themes/default/assets/fonts/brand-icons.svg +801 -654
  248. package/src/themes/default/assets/fonts/brand-icons.ttf +0 -0
  249. package/src/themes/default/assets/fonts/brand-icons.woff +0 -0
  250. package/src/themes/default/assets/fonts/brand-icons.woff2 +0 -0
  251. package/src/themes/default/assets/fonts/icons.eot +0 -0
  252. package/src/themes/default/assets/fonts/icons.svg +1175 -1079
  253. package/src/themes/default/assets/fonts/icons.ttf +0 -0
  254. package/src/themes/default/assets/fonts/icons.woff +0 -0
  255. package/src/themes/default/assets/fonts/icons.woff2 +0 -0
  256. package/src/themes/default/assets/fonts/outline-icons.eot +0 -0
  257. package/src/themes/default/assets/fonts/outline-icons.svg +93 -95
  258. package/src/themes/default/assets/fonts/outline-icons.ttf +0 -0
  259. package/src/themes/default/assets/fonts/outline-icons.woff +0 -0
  260. package/src/themes/default/assets/fonts/outline-icons.woff2 +0 -0
  261. package/src/themes/default/collections/form.variables +4 -0
  262. package/src/themes/default/collections/menu.variables +6 -0
  263. package/src/themes/default/collections/table.variables +52 -0
  264. package/src/themes/default/elements/button.variables +7 -1
  265. package/src/themes/default/elements/container.variables +12 -0
  266. package/src/themes/default/elements/divider.overrides +7 -7
  267. package/src/themes/default/elements/emoji.overrides +1737 -1235
  268. package/src/themes/default/elements/emoji.variables +1 -1
  269. package/src/themes/default/elements/flag.overrides +1641 -986
  270. package/src/themes/default/elements/flag.variables +7 -5
  271. package/src/themes/default/elements/icon.overrides +1975 -1949
  272. package/src/themes/default/elements/icon.variables +1 -0
  273. package/src/themes/default/elements/input.variables +15 -0
  274. package/src/themes/default/elements/segment.variables +8 -0
  275. package/src/themes/default/elements/step.overrides +3 -3
  276. package/src/themes/default/globals/site.variables +6 -0
  277. package/src/themes/default/globals/variation.variables +140 -6
  278. package/src/themes/default/modules/accordion.overrides +6 -5
  279. package/src/themes/default/modules/accordion.variables +49 -2
  280. package/src/themes/default/modules/calendar.variables +3 -0
  281. package/src/themes/default/modules/checkbox.overrides +9 -9
  282. package/src/themes/default/modules/checkbox.variables +5 -5
  283. package/src/themes/default/modules/dimmer.variables +1 -1
  284. package/src/themes/default/modules/dropdown.overrides +5 -5
  285. package/src/themes/default/modules/dropdown.variables +4 -10
  286. package/src/themes/default/modules/modal.variables +13 -0
  287. package/src/themes/default/modules/popup.variables +0 -2
  288. package/src/themes/default/modules/toast.variables +3 -0
  289. package/src/themes/default/views/card.variables +8 -0
  290. package/src/themes/famfamfam/elements/flag.overrides +1026 -0
  291. package/src/themes/famfamfam/elements/flag.variables +13 -0
  292. package/src/themes/github/elements/icon.overrides +206 -206
  293. package/src/themes/github/elements/step.overrides +5 -5
  294. package/src/themes/github/modules/dropdown.overrides +6 -6
  295. package/src/themes/instagram/views/card.overrides +1 -1
  296. package/src/themes/joypixels/elements/emoji.overrides +1762 -1260
  297. package/src/themes/joypixels/elements/emoji.variables +1 -1
  298. package/src/themes/material/collections/menu.overrides +1 -1
  299. package/src/themes/material/elements/button.overrides +1 -1
  300. package/src/themes/material/elements/header.overrides +1 -1
  301. package/src/themes/material/elements/icon.overrides +932 -932
  302. package/src/themes/material/globals/site.variables +0 -1
  303. package/src/themes/material/modules/dropdown.overrides +1 -1
  304. package/src/themes/material/modules/modal.overrides +1 -1
  305. package/src/themes/pulsar/elements/loader.overrides +2 -2
  306. package/src/themes/resetcss/globals/reset.overrides +3 -3
  307. package/src/themes/rtl/globals/site.overrides +1 -1
  308. package/src/themes/striped/modules/progress.overrides +1 -1
  309. package/src/themes/twitter/elements/emoji.overrides +1737 -1235
  310. package/tasks/build/css.js +6 -1
  311. package/tasks/config/project/install.js +15 -13
  312. package/tasks/install.js +1 -0
  313. package/test/helpers/sinon.js +2 -2
@@ -44,7 +44,6 @@
44
44
  line-height: @lineHeight;
45
45
 
46
46
  font-family: @inputFont;
47
- padding: @padding;
48
47
 
49
48
  background: @background;
50
49
  border: @border;
@@ -53,6 +52,15 @@
53
52
  transition: @transition;
54
53
 
55
54
  box-shadow: @boxShadow;
55
+ &:not([type="color"]) {
56
+ padding: @padding;
57
+ }
58
+ &::-webkit-calendar-picker-indicator {
59
+ padding: 0;
60
+ opacity: @iconOpacity;
61
+ transition: @iconTransition;
62
+ cursor: pointer;
63
+ }
56
64
  }
57
65
 
58
66
 
@@ -110,7 +118,7 @@
110
118
  Loading
111
119
  ---------------------*/
112
120
 
113
- .ui.loading.loading.input > i.icon:before {
121
+ .ui.loading.loading.input > i.icon::before {
114
122
  position: absolute;
115
123
  content: '';
116
124
  top: 50%;
@@ -123,7 +131,7 @@
123
131
  border-radius: @circularRadius;
124
132
  border: @loaderLineWidth solid @loaderFillColor;
125
133
  }
126
- .ui.loading.loading.input > i.icon:after {
134
+ .ui.loading.loading.input > i.icon::after {
127
135
  position: absolute;
128
136
  content: '';
129
137
  top: 50%;
@@ -168,12 +176,12 @@
168
176
  }
169
177
 
170
178
 
171
- & when (@variationInputStates) {
179
+ & when not (@variationInputStates = false) {
172
180
  /*--------------------
173
181
  States
174
182
  ---------------------*/
175
- each(@formStates, {
176
- @state: replace(@key, '@', '');
183
+ each(@variationInputStates, {
184
+ @state: @value;
177
185
 
178
186
  .ui.input.@{state} > input {
179
187
  background-color: @formStates[@@state][background];
@@ -181,6 +189,20 @@
181
189
  color: @formStates[@@state][color];
182
190
  box-shadow: @formStates[@@state][boxShadow];
183
191
  }
192
+ & when (@state=error) {
193
+ .ui.input > input:not(:placeholder-shown):invalid {
194
+ background-color: @formStates[@@state][background];
195
+ border-color: @formStates[@@state][borderColor];
196
+ color: @formStates[@@state][color];
197
+ box-shadow: @formStates[@@state][boxShadow];
198
+ }
199
+ .ui.input > input:not(:-ms-input-placeholder):invalid {
200
+ background-color: @formStates[@@state][background];
201
+ border-color: @formStates[@@state][borderColor];
202
+ color: @formStates[@@state][color];
203
+ box-shadow: @formStates[@@state][boxShadow];
204
+ }
205
+ }
184
206
 
185
207
  /* Placeholder */
186
208
  .ui.input.@{state} > input::-webkit-input-placeholder {
@@ -284,13 +306,13 @@
284
306
  .ui.icon.input > i.icon:not(.link) {
285
307
  pointer-events: none;
286
308
  }
287
- .ui.ui.ui.ui.icon.input > textarea,
288
- .ui.ui.ui.ui.icon.input > input {
309
+ .ui.ui.ui.ui.icon.input:not(.corner) > textarea,
310
+ .ui.ui.ui.ui.icon.input:not(.corner) > input {
289
311
  padding-right: @iconMargin;
290
312
  }
291
313
 
292
- .ui.icon.input > i.icon:before,
293
- .ui.icon.input > i.icon:after {
314
+ .ui.icon.input > i.icon::before,
315
+ .ui.icon.input > i.icon::after {
294
316
  left: 0;
295
317
  position: absolute;
296
318
  text-align: center;
@@ -316,16 +338,20 @@
316
338
  right: auto;
317
339
  left: @circularIconHorizontalOffset;
318
340
  }
319
- .ui.ui.ui.ui[class*="left icon"].input > textarea,
320
- .ui.ui.ui.ui[class*="left icon"].input > input {
341
+ .ui.ui.ui.ui[class*="left icon"]:not([class*="left corner"]).input > textarea,
342
+ .ui.ui.ui.ui[class*="left icon"]:not([class*="left corner"]).input > input {
321
343
  padding-left: @iconMargin;
344
+ }
345
+ .ui.ui.ui.ui[class*="left icon"]:not(.corner).input > textarea,
346
+ .ui.ui.ui.ui[class*="left icon"]:not(.corner).input > input {
322
347
  padding-right: @horizontalPadding;
323
348
  }
324
349
 
325
350
  /* Focus */
351
+ .ui.input > input:focus::-webkit-calendar-picker-indicator,
326
352
  .ui.icon.input > textarea:focus ~ i.icon,
327
353
  .ui.icon.input > input:focus ~ i.icon {
328
- opacity: 1;
354
+ opacity: @iconFocusOpacity;
329
355
  }
330
356
  }
331
357
 
@@ -385,31 +411,94 @@
385
411
  }
386
412
 
387
413
  /* Spacing with corner label */
388
- .ui[class*="corner labeled"]:not([class*="left corner labeled"]).labeled.input > textarea,
389
- .ui[class*="corner labeled"]:not([class*="left corner labeled"]).labeled.input > input {
390
- padding-right: @labeledMargin !important;
414
+ .ui[class*="corner labeled"]:not([class*="left corner labeled"]).input > .ui.dropdown,
415
+ .ui[class*="corner labeled"]:not([class*="left corner labeled"]).input > textarea,
416
+ .ui[class*="corner labeled"]:not([class*="left corner labeled"]).input > input {
417
+ padding-right: @labeledMargin;
391
418
  }
419
+ .ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"]) > .ui.dropdown,
392
420
  .ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"]) > textarea,
393
421
  .ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"]) > input {
394
- padding-right: @labeledIconInputMargin !important;
422
+ padding-right: @labeledIconInputMargin;
395
423
  }
396
424
  .ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"]) > i.icon {
397
425
  margin-right: @labeledIconMargin;
398
426
  }
399
427
 
400
428
  /* Left Labeled */
401
- .ui[class*="left corner labeled"].labeled.input > textarea,
402
- .ui[class*="left corner labeled"].labeled.input > input {
403
- padding-left: @labeledMargin !important;
429
+ .ui[class*="left icon"].input > .ui.dropdown,
430
+ .ui[class*="left corner labeled"].input > .ui.dropdown,
431
+ .ui[class*="left corner labeled"].input > textarea,
432
+ .ui[class*="left corner labeled"].input > input {
433
+ padding-left: @labeledMargin;
404
434
  }
405
435
  & when (@variationInputIcon) {
406
- .ui[class*="left corner labeled"].icon.input > textarea,
407
- .ui[class*="left corner labeled"].icon.input > input {
408
- padding-left: @labeledIconInputMargin !important;
436
+ .ui[class*="corner labeled"]:not([class*="left corner labeled"])[class*="left icon"].input > .ui.dropdown,
437
+ .ui[class*="corner labeled"]:not([class*="left corner labeled"])[class*="left icon"].input > textarea,
438
+ .ui[class*="corner labeled"]:not([class*="left corner labeled"])[class*="left icon"].input > input {
439
+ padding-right: @labeledIconInputMargin;
440
+ }
441
+ .ui[class*="left corner labeled"][class*="left icon"].input > .ui.dropdown,
442
+ .ui[class*="left corner labeled"][class*="left icon"].input > textarea,
443
+ .ui[class*="left corner labeled"][class*="left icon"].input > input {
444
+ padding-left: @labeledAndIconMargin;
409
445
  }
410
446
  .ui[class*="left corner labeled"].icon.input > i.icon {
411
447
  margin-left: @labeledIconMargin;
412
448
  }
449
+ .ui[class*="left corner labeled"].icon:not([class*="left icon"]).input > input {
450
+ padding-right: @labeledMargin;
451
+ }
452
+ .ui[class*="corner labeled"]:not([class*="left corner labeled"]).icon:not([class*="left icon"]).input > input {
453
+ padding-right: @labeledMargin * 2;
454
+ }
455
+ }
456
+
457
+ .ui[class*="left icon"].input > .ui.dropdown,
458
+ .ui[class*="left corner labeled"].input > .ui.dropdown {
459
+ & > .search {
460
+ padding-left: @labeledMargin;
461
+ }
462
+ & > .menu {
463
+ padding-left: @labeledIconMargin;
464
+ & > .item {
465
+ padding-left: @labeledMargin;
466
+ margin-left: -@labeledIconMargin;
467
+ }
468
+ }
469
+ }
470
+ .ui[class*="left corner labeled"][class*="left icon"].input > .ui.dropdown {
471
+ & > .search {
472
+ padding-left: @labeledAndIconMargin;
473
+ }
474
+ & > .menu > .item {
475
+ padding-left: @labeledAndIconMargin;
476
+ }
477
+ }
478
+ .ui.icon.input:not([class*="left icon"]) > .ui.dropdown,
479
+ .ui[class*="corner labeled"]:not([class*="left corner labeled"]).input > .ui.dropdown {
480
+ & > .search {
481
+ padding-right: @labeledMargin + @labeledIconInputMargin;
482
+ }
483
+ & > .remove.icon,
484
+ > .dropdown.icon {
485
+ padding-right: @labeledMargin;
486
+ }
487
+ }
488
+ .ui[class*="corner labeled"]:not([class*="left corner labeled"]).icon:not([class*="left icon"]).input > .ui.dropdown {
489
+ & > .search {
490
+ padding-right: @labeledAndIconMargin + @labeledIconInputMargin;
491
+ }
492
+ & > .remove.icon,
493
+ > .dropdown.icon {
494
+ padding-right: @labeledAndIconMargin;
495
+ }
496
+ }
497
+ .ui.icon.input > .ui.visible.dropdown ~ i.icon,
498
+ .ui.icon.input > .ui.active.dropdown ~ i.icon,
499
+ .ui[class*="corner labeled"].input > .ui.visible.dropdown ~ .ui.corner.label,
500
+ .ui[class*="corner labeled"].input > .ui.active.dropdown ~ .ui.corner.label {
501
+ z-index: @labeledDropdownZIndex;
413
502
  }
414
503
  }
415
504
  & when (@variationInputIcon) {
@@ -432,10 +521,10 @@
432
521
  }
433
522
  }
434
523
 
435
- & when (@variationInputLabeled) or (@variationInputAction) {
524
+ & when ((@variationInputLabeled) or (@variationInputAction)) and not (@variationInputStates = false) {
436
525
  /* Labeled and action input states */
437
- each(@formStates, {
438
- @state: replace(@key, '@', '');
526
+ each(@variationInputStates, {
527
+ @state: @value;
439
528
  @borderColor: @formStates[@@state][borderColor];
440
529
 
441
530
  .ui.form .field.@{state} > .ui.action.input > .ui.button,
@@ -547,6 +636,159 @@
547
636
  }
548
637
  }
549
638
 
639
+
640
+ & when (@variationInputFile) {
641
+ /*--------------------
642
+ File
643
+ ---------------------*/
644
+
645
+ /* width hack for chrome/edge */
646
+ .ui.file.input {
647
+ width: 100%;
648
+ & input[type="file"] {
649
+ width: 0;
650
+ }
651
+ }
652
+
653
+ .ui.form .field > input[type="file"],
654
+ .ui.file.input:not(.action) input[type="file"] {
655
+ padding: 0;
656
+ }
657
+
658
+ .ui.action.file.input input[type="file"]::-webkit-file-upload-button {
659
+ display: none;
660
+ }
661
+ .ui.form .field input[type="file"]::-webkit-file-upload-button,
662
+ .ui.file.input input[type="file"]::-webkit-file-upload-button {
663
+ border: none;
664
+ cursor: pointer;
665
+ padding: @padding;
666
+ margin-right: @fileButtonMargin;
667
+ background: @fileButtonBackground;
668
+ font-weight: @fileButtonFontWeight;
669
+ color: @fileButtonTextColor;
670
+ &:hover {
671
+ background: @fileButtonBackgroundHover;
672
+ color: @fileButtonTextColor;
673
+ }
674
+ }
675
+ .ui.action.file.input input[type="file"]::-ms-browse {
676
+ display: none;
677
+ }
678
+ .ui.form .field input[type="file"]::-ms-browse,
679
+ .ui.file.input input[type="file"]::-ms-browse {
680
+ border: none;
681
+ cursor: pointer;
682
+ padding: @padding;
683
+ margin: 0;
684
+ background: @fileButtonBackground;
685
+ font-weight: @fileButtonFontWeight;
686
+ color: @fileButtonTextColor;
687
+ &:hover {
688
+ background: @fileButtonBackgroundHover;
689
+ color: @fileButtonTextColor;
690
+ }
691
+ }
692
+ /* IE needs additional styling for input field :S */
693
+ @media all and (-ms-high-contrast:none) {
694
+ .ui.file.input > input[type="file"],
695
+ input[type="file"].ui.file.input {
696
+ padding: 0 !important;
697
+ }
698
+ }
699
+
700
+ .ui.action.file.input input[type="file"]::file-selector-button {
701
+ display: none;
702
+ }
703
+ .ui.form .field input[type="file"]::file-selector-button,
704
+ .ui.file.input input[type="file"]::file-selector-button {
705
+ border: none;
706
+ cursor: pointer;
707
+ padding: @padding;
708
+ margin-right: @fileButtonMargin;
709
+ background: @fileButtonBackground;
710
+ font-weight: @fileButtonFontWeight;
711
+ color: @fileButtonTextColor;
712
+ &:hover {
713
+ background: @fileButtonBackgroundHover;
714
+ color: @fileButtonTextColor;
715
+ }
716
+ }
717
+
718
+ .ui.form .field input[type="file"]:required:invalid,
719
+ .ui.file.input input[type="file"]:required:invalid {
720
+ color: @negativeTextColor;
721
+ background: @negativeBackgroundColor ;
722
+ border-color: @negativeBorderColor;
723
+ }
724
+
725
+ input[type="file"].ui.invisible.file.input,
726
+ .ui.invisible.file.input input[type="file"] {
727
+ left: -99999px;
728
+ position: absolute;
729
+ }
730
+
731
+ input[type="file"].ui.file.input:focus + label.ui.button:not(.basic):not(.tertiary),
732
+ .ui.file.input input[type="file"]:focus + label.ui.button:not(.basic):not(.tertiary) {
733
+ background: @fileButtonBackgroundHover;
734
+ color: @hoveredTextColor;
735
+ &.inverted {
736
+ background: @fileButtonInvertedBackgroundHover;
737
+ }
738
+ }
739
+
740
+ /* this is related to existing buttons, so the button color variable is used here! */
741
+ & when not (@variationButtonColors = false) {
742
+ each(@variationButtonColors, {
743
+ @color: @value;
744
+ @h: @colors[@@color][hover];
745
+ @lh: @colors[@@color][lightHover];
746
+
747
+ input[type="file"].ui.file.input:focus + label.ui.@{color}.button:not(.basic):not(.tertiary),
748
+ .ui.file.input input[type="file"]:focus + label.ui.@{color}.button:not(.basic):not(.tertiary) {
749
+ background-color: @h;
750
+ color: @white;
751
+ &.inverted when (@variationButtonInverted) {
752
+ background-color: @lh;
753
+ }
754
+ }
755
+ })
756
+ }
757
+
758
+ & when not (@variationInputColors = false) {
759
+ each(@variationInputColors, {
760
+ @color: @value;
761
+ @c: @colors[@@color][color];
762
+ @h: @colors[@@color][hover];
763
+
764
+ input[type="file"].ui.@{color}.file.input::-webkit-file-upload-button,
765
+ .ui.@{color}.file.input input[type="file"]::-webkit-file-upload-button {
766
+ background: @c;
767
+ color: @white;
768
+ &:hover {
769
+ background: @h;
770
+ }
771
+ }
772
+ input[type="file"].ui.@{color}.file.input::-ms-browse,
773
+ .ui.@{color}.file.input input[type="file"]::-ms-browse {
774
+ background: @c;
775
+ color: @white;
776
+ &:hover {
777
+ background: @h;
778
+ }
779
+ }
780
+ input[type="file"].ui.@{color}.file.input::file-selector-button,
781
+ .ui.@{color}.file.input input[type="file"]::file-selector-button {
782
+ background: @c;
783
+ color: @white;
784
+ &:hover {
785
+ background: @h;
786
+ }
787
+ }
788
+ })
789
+ }
790
+ }
791
+
550
792
  /*--------------------
551
793
  Size
552
794
  ---------------------*/