fomantic-ui 2.9.3-beta.4 → 2.9.3-beta.41

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 (272) hide show
  1. package/.all-contributorsrc +2 -2
  2. package/.github/FUNDING.yml +1 -1
  3. package/.github/auto_assign.yml +1 -1
  4. package/.github/workflows/ci.yml +2 -2
  5. package/CONTRIBUTORS.md +1 -1
  6. package/dist/components/accordion.css +1 -1
  7. package/dist/components/accordion.js +2 -2
  8. package/dist/components/accordion.min.css +1 -1
  9. package/dist/components/accordion.min.js +2 -2
  10. package/dist/components/ad.css +1 -1
  11. package/dist/components/ad.min.css +1 -1
  12. package/dist/components/api.js +3 -3
  13. package/dist/components/api.min.js +2 -2
  14. package/dist/components/breadcrumb.css +1 -1
  15. package/dist/components/breadcrumb.min.css +1 -1
  16. package/dist/components/button.css +2 -2
  17. package/dist/components/button.min.css +2 -2
  18. package/dist/components/calendar.css +1 -1
  19. package/dist/components/calendar.js +2 -2
  20. package/dist/components/calendar.min.css +1 -1
  21. package/dist/components/calendar.min.js +2 -2
  22. package/dist/components/card.css +1 -1
  23. package/dist/components/card.min.css +1 -1
  24. package/dist/components/checkbox.css +50 -6
  25. package/dist/components/checkbox.js +5 -3
  26. package/dist/components/checkbox.min.css +2 -2
  27. package/dist/components/checkbox.min.js +2 -2
  28. package/dist/components/comment.css +6 -1
  29. package/dist/components/comment.min.css +2 -2
  30. package/dist/components/container.css +62 -1
  31. package/dist/components/container.min.css +2 -2
  32. package/dist/components/dimmer.css +3 -3
  33. package/dist/components/dimmer.js +2 -2
  34. package/dist/components/dimmer.min.css +2 -2
  35. package/dist/components/dimmer.min.js +2 -2
  36. package/dist/components/divider.css +1 -1
  37. package/dist/components/divider.min.css +1 -1
  38. package/dist/components/dropdown.css +42 -4
  39. package/dist/components/dropdown.js +25 -20
  40. package/dist/components/dropdown.min.css +2 -2
  41. package/dist/components/dropdown.min.js +2 -2
  42. package/dist/components/embed.css +1 -1
  43. package/dist/components/embed.js +2 -2
  44. package/dist/components/embed.min.css +1 -1
  45. package/dist/components/embed.min.js +2 -2
  46. package/dist/components/emoji.css +697 -249
  47. package/dist/components/emoji.min.css +2 -2
  48. package/dist/components/feed.css +486 -5
  49. package/dist/components/feed.min.css +2 -2
  50. package/dist/components/flag.css +3 -2
  51. package/dist/components/flag.min.css +2 -2
  52. package/dist/components/flyout.css +1 -1
  53. package/dist/components/flyout.js +5 -3
  54. package/dist/components/flyout.min.css +1 -1
  55. package/dist/components/flyout.min.js +2 -2
  56. package/dist/components/form.css +53 -20
  57. package/dist/components/form.js +73 -32
  58. package/dist/components/form.min.css +2 -2
  59. package/dist/components/form.min.js +2 -2
  60. package/dist/components/grid.css +107 -107
  61. package/dist/components/grid.min.css +2 -2
  62. package/dist/components/header.css +1 -1
  63. package/dist/components/header.min.css +1 -1
  64. package/dist/components/icon.css +62 -62
  65. package/dist/components/icon.min.css +2 -2
  66. package/dist/components/image.css +1 -1
  67. package/dist/components/image.min.css +1 -1
  68. package/dist/components/input.css +3 -27
  69. package/dist/components/input.min.css +2 -2
  70. package/dist/components/item.css +6 -1
  71. package/dist/components/item.min.css +2 -2
  72. package/dist/components/label.css +21 -2
  73. package/dist/components/label.min.css +2 -2
  74. package/dist/components/list.css +13 -13
  75. package/dist/components/list.min.css +2 -2
  76. package/dist/components/loader.css +282 -282
  77. package/dist/components/loader.min.css +2 -2
  78. package/dist/components/menu.css +13 -7
  79. package/dist/components/menu.min.css +2 -2
  80. package/dist/components/message.css +1 -1
  81. package/dist/components/message.min.css +1 -1
  82. package/dist/components/modal.css +10 -3
  83. package/dist/components/modal.js +10 -10
  84. package/dist/components/modal.min.css +2 -2
  85. package/dist/components/modal.min.js +2 -2
  86. package/dist/components/nag.css +1 -1
  87. package/dist/components/nag.js +3 -3
  88. package/dist/components/nag.min.css +1 -1
  89. package/dist/components/nag.min.js +2 -2
  90. package/dist/components/placeholder.css +1 -1
  91. package/dist/components/placeholder.min.css +1 -1
  92. package/dist/components/popup.css +41 -40
  93. package/dist/components/popup.js +11 -9
  94. package/dist/components/popup.min.css +2 -2
  95. package/dist/components/popup.min.js +2 -2
  96. package/dist/components/progress.css +1 -1
  97. package/dist/components/progress.js +2 -2
  98. package/dist/components/progress.min.css +1 -1
  99. package/dist/components/progress.min.js +2 -2
  100. package/dist/components/rail.css +1 -1
  101. package/dist/components/rail.min.css +1 -1
  102. package/dist/components/rating.css +1 -1
  103. package/dist/components/rating.js +2 -2
  104. package/dist/components/rating.min.css +1 -1
  105. package/dist/components/rating.min.js +2 -2
  106. package/dist/components/reset.css +1 -1
  107. package/dist/components/reset.min.css +1 -1
  108. package/dist/components/reveal.css +1 -1
  109. package/dist/components/reveal.min.css +1 -1
  110. package/dist/components/search.css +26 -1
  111. package/dist/components/search.js +5 -4
  112. package/dist/components/search.min.css +2 -2
  113. package/dist/components/search.min.js +2 -2
  114. package/dist/components/segment.css +159 -33
  115. package/dist/components/segment.min.css +2 -2
  116. package/dist/components/shape.css +1 -1
  117. package/dist/components/shape.js +2 -2
  118. package/dist/components/shape.min.css +1 -1
  119. package/dist/components/shape.min.js +2 -2
  120. package/dist/components/sidebar.css +1 -1
  121. package/dist/components/sidebar.js +2 -2
  122. package/dist/components/sidebar.min.css +1 -1
  123. package/dist/components/sidebar.min.js +2 -2
  124. package/dist/components/site.css +1 -1
  125. package/dist/components/site.js +2 -2
  126. package/dist/components/site.min.css +1 -1
  127. package/dist/components/site.min.js +2 -2
  128. package/dist/components/slider.css +1 -1
  129. package/dist/components/slider.js +123 -27
  130. package/dist/components/slider.min.css +1 -1
  131. package/dist/components/slider.min.js +2 -2
  132. package/dist/components/state.js +2 -2
  133. package/dist/components/state.min.js +2 -2
  134. package/dist/components/statistic.css +1 -1
  135. package/dist/components/statistic.min.css +1 -1
  136. package/dist/components/step.css +1 -1
  137. package/dist/components/step.min.css +1 -1
  138. package/dist/components/sticky.css +1 -1
  139. package/dist/components/sticky.js +2 -2
  140. package/dist/components/sticky.min.css +1 -1
  141. package/dist/components/sticky.min.js +2 -2
  142. package/dist/components/tab.css +1 -1
  143. package/dist/components/tab.js +6 -4
  144. package/dist/components/tab.min.css +1 -1
  145. package/dist/components/tab.min.js +2 -2
  146. package/dist/components/table.css +65 -1
  147. package/dist/components/table.min.css +2 -2
  148. package/dist/components/text.css +1 -1
  149. package/dist/components/text.min.css +1 -1
  150. package/dist/components/toast.css +6 -1
  151. package/dist/components/toast.js +2 -2
  152. package/dist/components/toast.min.css +2 -2
  153. package/dist/components/toast.min.js +2 -2
  154. package/dist/components/transition.css +1 -1
  155. package/dist/components/transition.js +3 -3
  156. package/dist/components/transition.min.css +1 -1
  157. package/dist/components/transition.min.js +2 -2
  158. package/dist/components/visibility.js +2 -2
  159. package/dist/components/visibility.min.js +2 -2
  160. package/dist/semantic.css +2658 -960
  161. package/dist/semantic.js +299 -148
  162. package/dist/semantic.min.css +2 -2
  163. package/dist/semantic.min.js +2 -2
  164. package/package.json +1 -1
  165. package/src/definitions/behaviors/api.js +2 -2
  166. package/src/definitions/behaviors/form.js +72 -31
  167. package/src/definitions/behaviors/state.js +1 -1
  168. package/src/definitions/behaviors/visibility.js +1 -1
  169. package/src/definitions/collections/breadcrumb.less +2 -1
  170. package/src/definitions/collections/form.less +27 -13
  171. package/src/definitions/collections/grid.less +108 -107
  172. package/src/definitions/collections/menu.less +31 -23
  173. package/src/definitions/collections/message.less +2 -1
  174. package/src/definitions/collections/table.less +68 -1
  175. package/src/definitions/elements/button.less +4 -2
  176. package/src/definitions/elements/container.less +65 -1
  177. package/src/definitions/elements/divider.less +2 -1
  178. package/src/definitions/elements/emoji.less +2 -1
  179. package/src/definitions/elements/flag.less +2 -1
  180. package/src/definitions/elements/header.less +2 -1
  181. package/src/definitions/elements/icon.less +7 -6
  182. package/src/definitions/elements/image.less +2 -1
  183. package/src/definitions/elements/input.less +4 -3
  184. package/src/definitions/elements/label.less +23 -2
  185. package/src/definitions/elements/list.less +15 -14
  186. package/src/definitions/elements/loader.less +73 -72
  187. package/src/definitions/elements/placeholder.less +2 -1
  188. package/src/definitions/elements/rail.less +2 -1
  189. package/src/definitions/elements/reveal.less +2 -1
  190. package/src/definitions/elements/segment.less +112 -14
  191. package/src/definitions/elements/step.less +2 -1
  192. package/src/definitions/elements/text.less +2 -1
  193. package/src/definitions/globals/reset.less +2 -1
  194. package/src/definitions/globals/site.js +1 -1
  195. package/src/definitions/globals/site.less +2 -1
  196. package/src/definitions/modules/accordion.js +1 -1
  197. package/src/definitions/modules/accordion.less +2 -1
  198. package/src/definitions/modules/calendar.js +1 -1
  199. package/src/definitions/modules/calendar.less +2 -1
  200. package/src/definitions/modules/checkbox.js +4 -2
  201. package/src/definitions/modules/checkbox.less +63 -6
  202. package/src/definitions/modules/dimmer.js +1 -1
  203. package/src/definitions/modules/dimmer.less +4 -3
  204. package/src/definitions/modules/dropdown.js +24 -19
  205. package/src/definitions/modules/dropdown.less +55 -4
  206. package/src/definitions/modules/embed.js +1 -1
  207. package/src/definitions/modules/embed.less +2 -1
  208. package/src/definitions/modules/flyout.js +4 -2
  209. package/src/definitions/modules/flyout.less +2 -1
  210. package/src/definitions/modules/modal.js +9 -9
  211. package/src/definitions/modules/modal.less +13 -3
  212. package/src/definitions/modules/nag.js +2 -2
  213. package/src/definitions/modules/nag.less +3 -1
  214. package/src/definitions/modules/popup.js +10 -8
  215. package/src/definitions/modules/popup.less +42 -39
  216. package/src/definitions/modules/progress.js +1 -1
  217. package/src/definitions/modules/progress.less +2 -1
  218. package/src/definitions/modules/rating.js +1 -1
  219. package/src/definitions/modules/rating.less +2 -1
  220. package/src/definitions/modules/search.js +4 -3
  221. package/src/definitions/modules/search.less +33 -1
  222. package/src/definitions/modules/shape.js +1 -1
  223. package/src/definitions/modules/shape.less +2 -1
  224. package/src/definitions/modules/sidebar.js +1 -1
  225. package/src/definitions/modules/sidebar.less +2 -1
  226. package/src/definitions/modules/slider.js +122 -26
  227. package/src/definitions/modules/slider.less +2 -1
  228. package/src/definitions/modules/sticky.js +1 -1
  229. package/src/definitions/modules/sticky.less +2 -1
  230. package/src/definitions/modules/tab.js +5 -3
  231. package/src/definitions/modules/tab.less +2 -1
  232. package/src/definitions/modules/toast.js +1 -1
  233. package/src/definitions/modules/toast.less +9 -1
  234. package/src/definitions/modules/transition.js +2 -2
  235. package/src/definitions/modules/transition.less +2 -1
  236. package/src/definitions/views/ad.less +2 -1
  237. package/src/definitions/views/card.less +2 -1
  238. package/src/definitions/views/comment.less +9 -1
  239. package/src/definitions/views/feed.less +240 -33
  240. package/src/definitions/views/item.less +9 -1
  241. package/src/definitions/views/statistic.less +2 -1
  242. package/src/overrides.less +7 -0
  243. package/src/theme.less +7 -6
  244. package/src/themes/amazon/elements/button.variables +5 -1
  245. package/src/themes/bootstrap3/elements/button.variables +5 -1
  246. package/src/themes/chubby/elements/header.variables +6 -1
  247. package/src/themes/default/collections/message.variables +3 -9
  248. package/src/themes/default/collections/table.variables +3 -0
  249. package/src/themes/default/elements/button.variables +1 -3
  250. package/src/themes/default/elements/container.variables +3 -0
  251. package/src/themes/default/elements/emoji.variables +179 -67
  252. package/src/themes/default/elements/flag.variables +1 -1
  253. package/src/themes/default/elements/label.variables +5 -0
  254. package/src/themes/default/elements/segment.variables +8 -0
  255. package/src/themes/default/globals/site.variables +20 -1
  256. package/src/themes/default/globals/variation.variables +23 -1
  257. package/src/themes/default/modules/checkbox.variables +12 -0
  258. package/src/themes/default/modules/dropdown.variables +6 -0
  259. package/src/themes/default/modules/modal.variables +4 -0
  260. package/src/themes/default/modules/popup.variables +3 -1
  261. package/src/themes/default/modules/search.variables +3 -0
  262. package/src/themes/default/modules/toast.variables +1 -0
  263. package/src/themes/default/views/card.variables +4 -12
  264. package/src/themes/default/views/feed.variables +55 -1
  265. package/src/themes/github/elements/button.variables +5 -1
  266. package/src/themes/joypixels/elements/emoji.variables +182 -70
  267. package/src/themes/twitter/elements/button.variables +5 -1
  268. package/src/themes/twitter/elements/emoji.variables +178 -66
  269. package/tasks/admin/distributions/create.js +8 -3
  270. package/tasks/config/project/install.js +3 -0
  271. package/tasks/config/tasks.js +1 -8
  272. package/tasks/install.js +15 -5
@@ -56,11 +56,14 @@
56
56
  cursor: auto;
57
57
  position: relative;
58
58
  display: block;
59
- padding-left: @labelDistance;
60
59
  outline: none;
61
60
  font-size: @labelFontSize;
62
61
  }
63
62
 
63
+ .ui.checkbox:not(.invisible) label {
64
+ padding-left: @labelDistance;
65
+ }
66
+
64
67
  .ui.checkbox label::before {
65
68
  position: absolute;
66
69
  top: 0;
@@ -130,8 +133,8 @@
130
133
  background: @checkboxHoverBackground;
131
134
  border-color: @checkboxHoverBorderColor;
132
135
  }
133
- .ui.checkbox label:hover,
134
- .ui.checkbox + label:hover {
136
+ .ui.checkbox:not(.invisible) label:hover,
137
+ .ui.checkbox:not(.invisible) + label:hover {
135
138
  color: @labelHoverColor;
136
139
  }
137
140
 
@@ -146,7 +149,7 @@
146
149
  .ui.checkbox label:active::after {
147
150
  color: @checkboxPressedColor;
148
151
  }
149
- .ui.checkbox input:active ~ label {
152
+ .ui.checkbox:not(.invisible) input:active ~ label {
150
153
  color: @labelPressedColor;
151
154
  }
152
155
 
@@ -161,7 +164,7 @@
161
164
  .ui.checkbox input:focus ~ label::after {
162
165
  color: @checkboxFocusCheckColor;
163
166
  }
164
- .ui.checkbox input:focus ~ label {
167
+ .ui.checkbox:not(.invisible) input:focus ~ label {
165
168
  color: @labelFocusColor;
166
169
  }
167
170
 
@@ -652,6 +655,59 @@
652
655
  }
653
656
  }
654
657
  }
658
+ & when (@variationCheckboxInvisible) {
659
+ /* --------------
660
+ Invisible
661
+ --------------- */
662
+
663
+ .ui.invisible.checkbox {
664
+ &:not(.compact) {
665
+ display: block;
666
+ }
667
+ & input {
668
+ left: -99999px;
669
+ position: absolute;
670
+ }
671
+ & label::before,
672
+ & label::after {
673
+ display: none;
674
+ }
675
+ & label {
676
+ transition: @invisibleCheckboxLabelTransition;
677
+ }
678
+ }
679
+ .ui.ui.ui.ui.ui.invisible.checkbox input:not(:checked) {
680
+ & + label {
681
+ background: @invisibleCheckboxBackground;
682
+ border-color: @invisibleCheckboxBorderColor;
683
+ box-shadow: @invisibleCheckboxBoxShadow;
684
+ color: @invisibleCheckboxColor;
685
+ }
686
+ &:not(:hover):focus + label:not(.image) {
687
+ box-shadow: @invisibleCheckboxFocusBoxShadow;
688
+ }
689
+ & + label.image,
690
+ .basic& + label {
691
+ box-shadow: none;
692
+ }
693
+ }
694
+
695
+ .ui.invisible.checkbox input:not(:checked) {
696
+ & + label.image {
697
+ opacity: @invisibleCheckboxImageOpacityUnchecked;
698
+ filter: @invisibleCheckboxImageFilterUnchecked;
699
+ }
700
+ &:not(:hover):focus + label.image {
701
+ opacity: @invisibleCheckboxImageOpacityFocus;
702
+ }
703
+ & when (@variationCheckboxDisabled) {
704
+ &[disabled] + label.image,
705
+ .disabled& + label.image {
706
+ opacity: @invisibleCheckboxImageOpacityUncheckedDisabled;
707
+ }
708
+ }
709
+ }
710
+ }
655
711
 
656
712
  /* --------------------
657
713
  Size
@@ -696,4 +752,5 @@
696
752
  });
697
753
  }
698
754
 
699
- .loadUIOverrides();
755
+ // stylelint-disable no-invalid-position-at-import-rule
756
+ @import (multiple, optional) "../../overrides.less";
@@ -528,7 +528,7 @@
528
528
  });
529
529
  }
530
530
  clearTimeout(module.performance.timer);
531
- module.performance.timer = setTimeout(module.performance.display, 500);
531
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
532
532
  },
533
533
  display: function () {
534
534
  var
@@ -220,7 +220,7 @@ body.dimmable > .dimmer {
220
220
  .light.light.light.light.light.dimmer {
221
221
  background: @lightBackgroundColor;
222
222
  }
223
- .very.light.light.light.light.dimmer {
223
+ .very.very.very.very.light.dimmer {
224
224
  background: @veryLightBackgroundColor;
225
225
  }
226
226
  }
@@ -249,7 +249,7 @@ body.dimmable > .dimmer {
249
249
  .light.light.light.light.light.inverted.dimmer {
250
250
  background: @lightInvertedBackgroundColor;
251
251
  }
252
- .very.light.light.light.light.inverted.dimmer {
252
+ .very.very.very.very.light.inverted.dimmer {
253
253
  background: @veryLightInvertedBackgroundColor;
254
254
  }
255
255
  }
@@ -390,4 +390,5 @@ body.dimmable > .dimmer {
390
390
  }
391
391
  }
392
392
 
393
- .loadUIOverrides();
393
+ // stylelint-disable no-invalid-position-at-import-rule
394
+ @import (multiple, optional) "../../overrides.less";
@@ -363,7 +363,7 @@
363
363
  module.verbose('Adding clear icon');
364
364
  $clear = $('<i />')
365
365
  .addClass('remove icon')
366
- .insertBefore($text)
366
+ .insertAfter($icon)
367
367
  ;
368
368
  }
369
369
  if (module.is.search() && !module.has.search()) {
@@ -529,7 +529,7 @@
529
529
  callback = isFunction(callback)
530
530
  ? callback
531
531
  : function () {};
532
- if ((focused || iconClicked) && module.is.remote() && module.is.noApiCache()) {
532
+ if ((focused || iconClicked) && module.is.remote() && module.is.noApiCache() && !module.has.maxSelections()) {
533
533
  module.clearItems();
534
534
  }
535
535
  if (!module.can.show() && module.is.remote()) {
@@ -774,6 +774,8 @@
774
774
  }
775
775
  ;
776
776
  if (settings.useLabels && module.has.maxSelections()) {
777
+ module.show();
778
+
777
779
  return;
778
780
  }
779
781
  if (settings.apiSettings) {
@@ -1097,8 +1099,8 @@
1097
1099
  notFoundTokens = []
1098
1100
  ;
1099
1101
  tokens.forEach(function (value) {
1100
- if (module.set.selected(module.escape.htmlEntities(value.trim()), null, true, true) === false) {
1101
- notFoundTokens.push(value);
1102
+ if (module.set.selected(module.escape.htmlEntities(value.trim()), null, false, true) === false) {
1103
+ notFoundTokens.push(value.trim());
1102
1104
  }
1103
1105
  });
1104
1106
  event.preventDefault();
@@ -1231,7 +1233,7 @@
1231
1233
  module.set.filtered();
1232
1234
  }
1233
1235
  clearTimeout(module.timer);
1234
- module.timer = setTimeout(module.search, settings.delay.search);
1236
+ module.timer = setTimeout(function () { module.search(); }, settings.delay.search);
1235
1237
  },
1236
1238
  label: {
1237
1239
  click: function (event) {
@@ -1407,11 +1409,13 @@
1407
1409
  if (settings.allowAdditions) {
1408
1410
  module.remove.userAddition();
1409
1411
  }
1410
- module.remove.filteredItem();
1412
+ if (!settings.keepSearchTerm) {
1413
+ module.remove.filteredItem();
1414
+ module.remove.searchTerm();
1415
+ }
1411
1416
  if (!module.is.visible() && $target.length > 0) {
1412
1417
  module.show();
1413
1418
  }
1414
- module.remove.searchTerm();
1415
1419
  if (!module.is.focusedOnSearch() && skipRefocus !== true) {
1416
1420
  module.focusSearch(true);
1417
1421
  }
@@ -1597,7 +1601,9 @@
1597
1601
  module.verbose('Selecting item from keyboard shortcut', $selectedItem);
1598
1602
  module.event.item.click.call($selectedItem, event);
1599
1603
  if (module.is.searchSelection()) {
1600
- module.remove.searchTerm();
1604
+ if (!settings.keepSearchTerm) {
1605
+ module.remove.searchTerm();
1606
+ }
1601
1607
  if (module.is.multiple()) {
1602
1608
  $search.trigger('focus');
1603
1609
  }
@@ -1814,7 +1820,7 @@
1814
1820
  ? value
1815
1821
  : text;
1816
1822
  if (module.can.activate($(element))) {
1817
- module.set.selected(value, $(element));
1823
+ module.set.selected(value, $(element), false, settings.keepSearchTerm);
1818
1824
  if (!module.is.multiple() && !(!settings.collapseOnActionable && $(element).hasClass(className.actionable))) {
1819
1825
  module.hideAndClear();
1820
1826
  }
@@ -2166,7 +2172,7 @@
2166
2172
  return;
2167
2173
  }
2168
2174
  if (isMultiple) {
2169
- if ($.inArray(module.escape.htmlEntities(String(optionValue)), value.map(String)) !== -1) {
2175
+ if ($.inArray(module.escape.htmlEntities(String(optionValue)), value.map(String).map(module.escape.htmlEntities)) !== -1) {
2170
2176
  $selectedItem = $selectedItem
2171
2177
  ? $selectedItem.add($choice)
2172
2178
  : $choice;
@@ -2227,7 +2233,7 @@
2227
2233
  return false;
2228
2234
  }
2229
2235
 
2230
- return true;
2236
+ return false;
2231
2237
  },
2232
2238
  disabled: function () {
2233
2239
  $search.attr('tabindex', module.is.disabled() ? -1 : 0);
@@ -2317,7 +2323,7 @@
2317
2323
  $.each(values, function (value, name) {
2318
2324
  module.set.text(name);
2319
2325
  });
2320
- } else {
2326
+ } else if (settings.useLabels) {
2321
2327
  $.each(values, function (value, name) {
2322
2328
  module.add.label(value, name);
2323
2329
  });
@@ -2464,7 +2470,7 @@
2464
2470
  valueIsSet = searchValue !== ''
2465
2471
  ;
2466
2472
  if (isMultiple && hasSearchValue) {
2467
- module.verbose('Adjusting input width', searchWidth, settings.glyphWidth);
2473
+ module.verbose('Adjusting input width', searchWidth);
2468
2474
  $search.css('width', searchWidth + 'px');
2469
2475
  }
2470
2476
  if (hasSearchValue || (isSearchMultiple && valueIsSet)) {
@@ -2763,7 +2769,7 @@
2763
2769
  return false;
2764
2770
  }
2765
2771
  module.debug('Setting selected menu item to', $selectedItem);
2766
- if (module.is.multiple()) {
2772
+ if (module.is.multiple() && !keepSearchTerm) {
2767
2773
  module.remove.searchWidth();
2768
2774
  }
2769
2775
  if (module.is.single()) {
@@ -3738,12 +3744,12 @@
3738
3744
  show: function () {
3739
3745
  module.verbose('Delaying show event to ensure user intent');
3740
3746
  clearTimeout(module.timer);
3741
- module.timer = setTimeout(module.show, settings.delay.show);
3747
+ module.timer = setTimeout(function () { module.show(); }, settings.delay.show);
3742
3748
  },
3743
3749
  hide: function () {
3744
3750
  module.verbose('Delaying hide event to ensure user intent');
3745
3751
  clearTimeout(module.timer);
3746
- module.timer = setTimeout(module.hide, settings.delay.hide);
3752
+ module.timer = setTimeout(function () { module.hide(); }, settings.delay.hide);
3747
3753
  },
3748
3754
  },
3749
3755
 
@@ -3869,7 +3875,7 @@
3869
3875
  });
3870
3876
  }
3871
3877
  clearTimeout(module.performance.timer);
3872
- module.performance.timer = setTimeout(module.performance.display, 500);
3878
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
3873
3879
  },
3874
3880
  display: function () {
3875
3881
  var
@@ -4006,6 +4012,7 @@
4006
4012
  forceSelection: false, // force a choice on blur with search selection
4007
4013
 
4008
4014
  allowAdditions: false, // whether multiple select should allow user added values
4015
+ keepSearchTerm: false, // whether the search value should be kept and menu stays filtered on item selection
4009
4016
  ignoreCase: false, // whether to consider case sensitivity when creating labels
4010
4017
  ignoreSearchCase: true, // whether to consider case sensitivity when filtering items
4011
4018
  hideAdditions: true, // whether or not to hide special message prompting a user they can enter a value
@@ -4025,8 +4032,6 @@
4025
4032
  duration: 200, // duration of transition
4026
4033
  displayType: false, // displayType of transition
4027
4034
 
4028
- glyphWidth: 1.037, // widest glyph width in em (W is 1.037 em) used to calculate multiselect input width
4029
-
4030
4035
  headerDivider: true, // whether option headers should have an additional divider line underneath when converted from <select> <optgroup>
4031
4036
 
4032
4037
  collapseOnActionable: true, // whether the dropdown should collapse upon selection of an actionable item
@@ -816,7 +816,7 @@ select.ui.dropdown {
816
816
  .ui.dropdown:not(.selection) > .remove.icon ~ .dropdown.icon {
817
817
  margin-left: @clearableIconMargin;
818
818
  }
819
- .ui.dropdown:not(.selection) > .remove.icon {
819
+ .ui.dropdown:not(.selection):not(.multiple) > .remove.icon {
820
820
  margin-top: -@clearableIconMarginTop;
821
821
  }
822
822
  }
@@ -879,6 +879,18 @@ select.ui.dropdown {
879
879
  margin: @imageLabelImageMargin;
880
880
  height: @imageLabelHeight;
881
881
  }
882
+ .ui.multiple.dropdown:not(.selection):not(.labeled) {
883
+ & > .dropdown.icon {
884
+ right: @dropdownIconMultipleRight;
885
+ }
886
+ & > .remove.icon {
887
+ margin-right: @dropdownIconMultipleRight;
888
+ }
889
+ &:not(.search) > .remove.icon ~ .text.default,
890
+ > .text.default:first-child {
891
+ overflow: inherit;
892
+ }
893
+ }
882
894
 
883
895
  & when (@variationDropdownSearch) {
884
896
  /* -----------------
@@ -919,6 +931,13 @@ select.ui.dropdown {
919
931
  .ui.multiple.search.dropdown.button {
920
932
  min-width: @selectionMinWidth;
921
933
  }
934
+ .ui.multiple.search.dropdown > span.sizer {
935
+ display: none;
936
+ }
937
+ .ui.multiple.search.dropdown:not(.selection) > .remove.icon + input.search,
938
+ .ui.multiple.search.dropdown:not(.selection) > input.search:first-child {
939
+ min-width: @multipleSearchMinWidth;
940
+ }
922
941
  }
923
942
  }
924
943
 
@@ -1309,8 +1328,8 @@ select.ui.dropdown {
1309
1328
  margin: 0 !important;
1310
1329
  border-top: @menuBorder;
1311
1330
  }
1312
- .ui.scrolling.dropdown .menu .item.item.item,
1313
- .ui.dropdown .scrolling.menu > .item.item.item {
1331
+ .ui.ui.ui.scrolling.dropdown .menu .item,
1332
+ .ui.ui.ui.dropdown .scrolling.menu > .item {
1314
1333
  border-top: @scrollingMenuItemBorder;
1315
1334
  }
1316
1335
  .ui.scrolling.dropdown .menu .item:first-child,
@@ -1335,24 +1354,55 @@ select.ui.dropdown {
1335
1354
  .ui.dropdown .scrolling.menu {
1336
1355
  max-height: @scrollingMobileMaxMenuHeight;
1337
1356
  }
1357
+ & when (@variationDropdownResizable) {
1358
+ .ui.scrolling.resizable.dropdown .menu,
1359
+ .ui.dropdown .scrolling.resizable.menu {
1360
+ height: @scrollingMobileMaxMenuHeight;
1361
+ }
1362
+ }
1338
1363
  }
1339
1364
  @media only screen and (min-width: @tabletBreakpoint) {
1340
1365
  .ui.scrolling.dropdown .menu,
1341
1366
  .ui.dropdown .scrolling.menu {
1342
1367
  max-height: @scrollingTabletMaxMenuHeight;
1343
1368
  }
1369
+ & when (@variationDropdownResizable) {
1370
+ .ui.scrolling.resizable.dropdown .menu,
1371
+ .ui.dropdown .scrolling.resizable.menu {
1372
+ height: @scrollingTabletMaxMenuHeight;
1373
+ }
1374
+ }
1344
1375
  }
1345
1376
  @media only screen and (min-width: @computerBreakpoint) {
1346
1377
  .ui.scrolling.dropdown .menu,
1347
1378
  .ui.dropdown .scrolling.menu {
1348
1379
  max-height: @scrollingComputerMaxMenuHeight;
1349
1380
  }
1381
+ & when (@variationDropdownResizable) {
1382
+ .ui.scrolling.resizable.dropdown .menu,
1383
+ .ui.dropdown .scrolling.resizable.menu {
1384
+ height: @scrollingComputerMaxMenuHeight;
1385
+ }
1386
+ }
1350
1387
  }
1351
1388
  @media only screen and (min-width: @widescreenMonitorBreakpoint) {
1352
1389
  .ui.scrolling.dropdown .menu,
1353
1390
  .ui.dropdown .scrolling.menu {
1354
1391
  max-height: @scrollingWidescreenMaxMenuHeight;
1355
1392
  }
1393
+ & when (@variationDropdownResizable) {
1394
+ .ui.scrolling.resizable.dropdown .menu,
1395
+ .ui.dropdown .scrolling.resizable.menu {
1396
+ height: @scrollingWidescreenMaxMenuHeight;
1397
+ }
1398
+ }
1399
+ }
1400
+ & when (@variationDropdownResizable) {
1401
+ .ui.scrolling.resizable.dropdown .menu,
1402
+ .ui.dropdown .scrolling.resizable.menu {
1403
+ resize: @resizableDirection;
1404
+ max-height: none;
1405
+ }
1356
1406
  }
1357
1407
  }
1358
1408
 
@@ -1951,4 +2001,5 @@ select.ui.dropdown {
1951
2001
  }
1952
2002
  }
1953
2003
 
1954
- .loadUIOverrides();
2004
+ // stylelint-disable no-invalid-position-at-import-rule
2005
+ @import (multiple, optional) "../../overrides.less";
@@ -440,7 +440,7 @@
440
440
  });
441
441
  }
442
442
  clearTimeout(module.performance.timer);
443
- module.performance.timer = setTimeout(module.performance.display, 500);
443
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
444
444
  },
445
445
  display: function () {
446
446
  var
@@ -155,4 +155,5 @@
155
155
  }
156
156
  }
157
157
 
158
- .loadUIOverrides();
158
+ // stylelint-disable no-invalid-position-at-import-rule
159
+ @import (multiple, optional) "../../overrides.less";
@@ -525,7 +525,9 @@
525
525
  $removedInputs = $(collectNodes(mutation.removedNodes)).filter('a[href], [tabindex], :input');
526
526
  if ($addedInputs.length > 0 || $removedInputs.length > 0) {
527
527
  shouldRefreshInputs = true;
528
- ignoreAutofocus = false;
528
+ if ($addedInputs.filter(':input').length > 0 || $removedInputs.filter(':input').length > 0) {
529
+ ignoreAutofocus = false;
530
+ }
529
531
  }
530
532
  }
531
533
 
@@ -1245,7 +1247,7 @@
1245
1247
  });
1246
1248
  }
1247
1249
  clearTimeout(module.performance.timer);
1248
- module.performance.timer = setTimeout(module.performance.display, 500);
1250
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1249
1251
  },
1250
1252
  display: function () {
1251
1253
  var
@@ -645,4 +645,5 @@ body.pushable > .pusher {
645
645
  }
646
646
  }
647
647
 
648
- .loadUIOverrides();
648
+ // stylelint-disable no-invalid-position-at-import-rule
649
+ @import (multiple, optional) "../../overrides.less";
@@ -290,7 +290,9 @@
290
290
  $removedInputs = $(collectNodes(mutation.removedNodes)).filter('a[href], [tabindex], :input');
291
291
  if ($addedInputs.length > 0 || $removedInputs.length > 0) {
292
292
  shouldRefreshInputs = true;
293
- ignoreAutofocus = false;
293
+ if ($addedInputs.filter(':input').length > 0 || $removedInputs.filter(':input').length > 0) {
294
+ ignoreAutofocus = false;
295
+ }
294
296
  }
295
297
  }
296
298
 
@@ -525,7 +527,7 @@
525
527
  },
526
528
  debounce: function (method, delay) {
527
529
  clearTimeout(module.timer);
528
- module.timer = setTimeout(method, delay);
530
+ module.timer = setTimeout(function () { method(); }, delay);
529
531
  },
530
532
  keyboard: function (event) {
531
533
  var
@@ -620,7 +622,7 @@
620
622
  ignoreRepeatedEvents = false;
621
623
  if (settings.allowMultiple) {
622
624
  if (module.others.active()) {
623
- $otherModals.filter('.' + className.active).find(selector.dimmer).addClass('active');
625
+ $otherModals.filter('.' + className.active).find(selector.dimmer).removeClass('out').addClass('transition fade in active');
624
626
  }
625
627
 
626
628
  if (settings.detachable) {
@@ -692,6 +694,8 @@
692
694
  onStart: function () {
693
695
  if (!module.others.active() && !module.others.animating() && !keepDimmed) {
694
696
  module.hideDimmer();
697
+ } else if (settings.allowMultiple) {
698
+ (hideOthersToo ? $allModals : $previousModal).find(selector.dimmer).removeClass('in').addClass('out');
695
699
  }
696
700
  if (settings.keyboardShortcuts && !module.others.active()) {
697
701
  module.remove.keyboardShortcuts();
@@ -704,11 +708,7 @@
704
708
  $previousModal.addClass(className.front);
705
709
  $module.removeClass(className.front);
706
710
 
707
- if (hideOthersToo) {
708
- $allModals.find(selector.dimmer).removeClass('active');
709
- } else {
710
- $previousModal.find(selector.dimmer).removeClass('active');
711
- }
711
+ (hideOthersToo ? $allModals : $previousModal).find(selector.dimmer).removeClass('active');
712
712
  }
713
713
  if (isFunction(settings.onHidden)) {
714
714
  settings.onHidden.call(element);
@@ -1273,7 +1273,7 @@
1273
1273
  });
1274
1274
  }
1275
1275
  clearTimeout(module.performance.timer);
1276
- module.performance.timer = setTimeout(module.performance.display, 500);
1276
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1277
1277
  },
1278
1278
  display: function () {
1279
1279
  var
@@ -437,19 +437,22 @@
437
437
  overflow: hidden;
438
438
  }
439
439
  .scrolling.dimmable > .dimmer {
440
- justify-content: flex-start;
440
+ justify-content: center;
441
441
  position: fixed;
442
442
  }
443
443
  .scrolling.dimmable:not(body) > .dimmer {
444
- justify-content: center;
445
444
  position: absolute;
446
445
  }
447
446
  .scrolling.dimmable.dimmed > .dimmer {
448
447
  overflow: auto;
449
448
  overscroll-behavior: @overscrollBehavior;
450
449
  }
450
+ .modals.dimmer .ui.scrolling.modal.fullscreen {
451
+ top: 0;
452
+ }
451
453
  .modals.dimmer .ui.scrolling.modal:not(.fullscreen) {
452
454
  margin: @scrollingMargin auto;
455
+ top: @scrollingTop;
453
456
  }
454
457
 
455
458
  /* Fix for Firefox, Edge, IE11 */
@@ -478,6 +481,12 @@
478
481
  overflow: auto;
479
482
  overscroll-behavior: @overscrollBehavior;
480
483
  }
484
+ & when (@variationTableResizable) {
485
+ .ui.modal > .resizable.scrolling.content {
486
+ resize: @resizableDirection;
487
+ max-height: none;
488
+ }
489
+ }
481
490
  }
482
491
 
483
492
  & when (@variationModalOverlay) {
@@ -620,4 +629,5 @@
620
629
  }
621
630
  }
622
631
 
623
- .loadUIOverrides();
632
+ // stylelint-disable no-invalid-position-at-import-rule
633
+ @import (multiple, optional) "../../overrides.less";
@@ -88,7 +88,7 @@
88
88
  }
89
89
 
90
90
  if (settings.displayTime > 0) {
91
- setTimeout(module.hide, settings.displayTime);
91
+ setTimeout(function () { module.hide(); }, settings.displayTime);
92
92
  }
93
93
  module.show();
94
94
  },
@@ -377,7 +377,7 @@
377
377
  });
378
378
  }
379
379
  clearTimeout(module.performance.timer);
380
- module.performance.timer = setTimeout(module.performance.display, 500);
380
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
381
381
  },
382
382
  display: function () {
383
383
  var
@@ -207,4 +207,6 @@ a.ui.nag {
207
207
  border-radius: @borderRadius;
208
208
  }
209
209
  }
210
- .loadUIOverrides();
210
+
211
+ // stylelint-disable no-invalid-position-at-import-rule
212
+ @import (multiple, optional) "../../overrides.less";
@@ -194,7 +194,7 @@
194
194
  ;
195
195
  clearTimeout(module.hideTimer);
196
196
  if (!openedWithTouch || (openedWithTouch && settings.addTouchEvents)) {
197
- module.showTimer = setTimeout(module.show, delay);
197
+ module.showTimer = setTimeout(function () { module.show(); }, delay);
198
198
  }
199
199
  },
200
200
  end: function () {
@@ -204,7 +204,7 @@
204
204
  : settings.delay
205
205
  ;
206
206
  clearTimeout(module.showTimer);
207
- module.hideTimer = setTimeout(module.hide, delay);
207
+ module.hideTimer = setTimeout(function () { module.hide(); }, delay);
208
208
  },
209
209
  touchstart: function (event) {
210
210
  openedWithTouch = true;
@@ -248,9 +248,11 @@
248
248
  // generates popup html from metadata
249
249
  create: function () {
250
250
  var
251
+ targetSibling = $target.next(selector.popup),
252
+ contentFallback = !settings.popup && targetSibling.length === 0 ? $module.attr('title') : false,
251
253
  html = module.get.html(),
252
254
  title = module.get.title(),
253
- content = module.get.content()
255
+ content = module.get.content(contentFallback)
254
256
  ;
255
257
 
256
258
  if (html || content || title) {
@@ -291,10 +293,10 @@
291
293
  if (settings.hoverable) {
292
294
  module.bind.popup();
293
295
  }
294
- } else if ($target.next(selector.popup).length > 0) {
296
+ } else if (targetSibling.length > 0) {
295
297
  module.verbose('Pre-existing popup found');
296
298
  settings.inline = true;
297
- settings.popup = $target.next(selector.popup).data(metadata.activator, $module);
299
+ settings.popup = targetSibling.data(metadata.activator, $module);
298
300
  module.refresh();
299
301
  if (settings.hoverable) {
300
302
  module.bind.popup();
@@ -484,10 +486,10 @@
484
486
 
485
487
  return $module.data(metadata.title) || settings.title;
486
488
  },
487
- content: function () {
489
+ content: function (fallback) {
488
490
  $module.removeData(metadata.content);
489
491
 
490
- return $module.data(metadata.content) || settings.content || $module.attr('title');
492
+ return $module.data(metadata.content) || settings.content || fallback;
491
493
  },
492
494
  variation: function () {
493
495
  $module.removeData(metadata.variation);
@@ -1242,7 +1244,7 @@
1242
1244
  });
1243
1245
  }
1244
1246
  clearTimeout(module.performance.timer);
1245
- module.performance.timer = setTimeout(module.performance.display, 500);
1247
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1246
1248
  },
1247
1249
  display: function () {
1248
1250
  var