fomantic-ui 2.9.3-beta.9 → 2.9.3

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 (290) 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 +5 -5
  5. package/.github/workflows/nightly.yml +1 -1
  6. package/.github/workflows/release.yml +1 -1
  7. package/CHANGELOG.md +131 -0
  8. package/CONTRIBUTORS.md +1 -1
  9. package/README.md +5 -2
  10. package/SECURITY.md +2 -1
  11. package/dist/components/accordion.css +1 -1
  12. package/dist/components/accordion.js +2 -2
  13. package/dist/components/accordion.min.css +1 -1
  14. package/dist/components/accordion.min.js +2 -2
  15. package/dist/components/ad.css +1 -1
  16. package/dist/components/ad.min.css +1 -1
  17. package/dist/components/api.js +10 -9
  18. package/dist/components/api.min.js +2 -2
  19. package/dist/components/breadcrumb.css +1 -1
  20. package/dist/components/breadcrumb.min.css +1 -1
  21. package/dist/components/button.css +2 -2
  22. package/dist/components/button.min.css +2 -2
  23. package/dist/components/calendar.css +140 -3
  24. package/dist/components/calendar.js +2 -2
  25. package/dist/components/calendar.min.css +2 -2
  26. package/dist/components/calendar.min.js +2 -2
  27. package/dist/components/card.css +1 -1
  28. package/dist/components/card.min.css +1 -1
  29. package/dist/components/checkbox.css +50 -6
  30. package/dist/components/checkbox.js +5 -3
  31. package/dist/components/checkbox.min.css +2 -2
  32. package/dist/components/checkbox.min.js +2 -2
  33. package/dist/components/comment.css +6 -1
  34. package/dist/components/comment.min.css +2 -2
  35. package/dist/components/container.css +62 -1
  36. package/dist/components/container.min.css +2 -2
  37. package/dist/components/dimmer.css +3 -3
  38. package/dist/components/dimmer.js +2 -2
  39. package/dist/components/dimmer.min.css +2 -2
  40. package/dist/components/dimmer.min.js +2 -2
  41. package/dist/components/divider.css +1 -1
  42. package/dist/components/divider.min.css +1 -1
  43. package/dist/components/dropdown.css +101 -25
  44. package/dist/components/dropdown.js +29 -21
  45. package/dist/components/dropdown.min.css +2 -2
  46. package/dist/components/dropdown.min.js +2 -2
  47. package/dist/components/embed.css +1 -1
  48. package/dist/components/embed.js +2 -2
  49. package/dist/components/embed.min.css +1 -1
  50. package/dist/components/embed.min.js +2 -2
  51. package/dist/components/emoji.css +697 -249
  52. package/dist/components/emoji.min.css +2 -2
  53. package/dist/components/feed.css +486 -5
  54. package/dist/components/feed.min.css +2 -2
  55. package/dist/components/flag.css +3 -2
  56. package/dist/components/flag.min.css +2 -2
  57. package/dist/components/flyout.css +1 -1
  58. package/dist/components/flyout.js +2 -33
  59. package/dist/components/flyout.min.css +1 -1
  60. package/dist/components/flyout.min.js +2 -2
  61. package/dist/components/form.css +34 -32
  62. package/dist/components/form.js +72 -31
  63. package/dist/components/form.min.css +2 -2
  64. package/dist/components/form.min.js +2 -2
  65. package/dist/components/grid.css +107 -107
  66. package/dist/components/grid.min.css +2 -2
  67. package/dist/components/header.css +1 -1
  68. package/dist/components/header.min.css +1 -1
  69. package/dist/components/icon.css +62 -62
  70. package/dist/components/icon.min.css +2 -2
  71. package/dist/components/image.css +1 -1
  72. package/dist/components/image.min.css +1 -1
  73. package/dist/components/input.css +3 -27
  74. package/dist/components/input.min.css +2 -2
  75. package/dist/components/item.css +6 -1
  76. package/dist/components/item.min.css +2 -2
  77. package/dist/components/label.css +21 -2
  78. package/dist/components/label.min.css +2 -2
  79. package/dist/components/list.css +13 -13
  80. package/dist/components/list.min.css +2 -2
  81. package/dist/components/loader.css +282 -282
  82. package/dist/components/loader.min.css +2 -2
  83. package/dist/components/menu.css +13 -7
  84. package/dist/components/menu.min.css +2 -2
  85. package/dist/components/message.css +1 -1
  86. package/dist/components/message.min.css +1 -1
  87. package/dist/components/modal.css +5 -1
  88. package/dist/components/modal.js +3 -3
  89. package/dist/components/modal.min.css +2 -2
  90. package/dist/components/modal.min.js +2 -2
  91. package/dist/components/nag.css +1 -1
  92. package/dist/components/nag.js +3 -3
  93. package/dist/components/nag.min.css +1 -1
  94. package/dist/components/nag.min.js +2 -2
  95. package/dist/components/placeholder.css +1 -1
  96. package/dist/components/placeholder.min.css +1 -1
  97. package/dist/components/popup.css +3 -3
  98. package/dist/components/popup.js +11 -9
  99. package/dist/components/popup.min.css +2 -2
  100. package/dist/components/popup.min.js +2 -2
  101. package/dist/components/progress.css +1 -1
  102. package/dist/components/progress.js +2 -2
  103. package/dist/components/progress.min.css +1 -1
  104. package/dist/components/progress.min.js +2 -2
  105. package/dist/components/rail.css +1 -1
  106. package/dist/components/rail.min.css +1 -1
  107. package/dist/components/rating.css +1 -1
  108. package/dist/components/rating.js +2 -2
  109. package/dist/components/rating.min.css +1 -1
  110. package/dist/components/rating.min.js +2 -2
  111. package/dist/components/reset.css +1 -1
  112. package/dist/components/reset.min.css +1 -1
  113. package/dist/components/reveal.css +1 -1
  114. package/dist/components/reveal.min.css +1 -1
  115. package/dist/components/search.css +26 -1
  116. package/dist/components/search.js +5 -4
  117. package/dist/components/search.min.css +2 -2
  118. package/dist/components/search.min.js +2 -2
  119. package/dist/components/segment.css +159 -33
  120. package/dist/components/segment.min.css +2 -2
  121. package/dist/components/shape.css +1 -1
  122. package/dist/components/shape.js +2 -2
  123. package/dist/components/shape.min.css +1 -1
  124. package/dist/components/shape.min.js +2 -2
  125. package/dist/components/sidebar.css +1 -1
  126. package/dist/components/sidebar.js +2 -32
  127. package/dist/components/sidebar.min.css +1 -1
  128. package/dist/components/sidebar.min.js +2 -2
  129. package/dist/components/site.css +1 -1
  130. package/dist/components/site.js +2 -2
  131. package/dist/components/site.min.css +1 -1
  132. package/dist/components/site.min.js +2 -2
  133. package/dist/components/slider.css +1 -1
  134. package/dist/components/slider.js +126 -26
  135. package/dist/components/slider.min.css +1 -1
  136. package/dist/components/slider.min.js +2 -2
  137. package/dist/components/state.js +2 -2
  138. package/dist/components/state.min.js +2 -2
  139. package/dist/components/statistic.css +1 -1
  140. package/dist/components/statistic.min.css +1 -1
  141. package/dist/components/step.css +1 -1
  142. package/dist/components/step.min.css +1 -1
  143. package/dist/components/sticky.css +1 -1
  144. package/dist/components/sticky.js +2 -2
  145. package/dist/components/sticky.min.css +1 -1
  146. package/dist/components/sticky.min.js +2 -2
  147. package/dist/components/tab.css +1 -1
  148. package/dist/components/tab.js +6 -4
  149. package/dist/components/tab.min.css +1 -1
  150. package/dist/components/tab.min.js +2 -2
  151. package/dist/components/table.css +65 -1
  152. package/dist/components/table.min.css +2 -2
  153. package/dist/components/text.css +1 -1
  154. package/dist/components/text.min.css +1 -1
  155. package/dist/components/toast.css +6 -1
  156. package/dist/components/toast.js +2 -2
  157. package/dist/components/toast.min.css +2 -2
  158. package/dist/components/toast.min.js +2 -2
  159. package/dist/components/transition.css +1 -1
  160. package/dist/components/transition.js +3 -3
  161. package/dist/components/transition.min.css +1 -1
  162. package/dist/components/transition.min.js +2 -2
  163. package/dist/components/visibility.js +2 -2
  164. package/dist/components/visibility.min.js +2 -2
  165. package/dist/semantic.css +2822 -954
  166. package/dist/semantic.js +302 -206
  167. package/dist/semantic.min.css +2 -2
  168. package/dist/semantic.min.js +2 -2
  169. package/package.json +5 -4
  170. package/scripts/nightly-version.js +2 -2
  171. package/src/definitions/behaviors/api.js +9 -8
  172. package/src/definitions/behaviors/form.js +71 -30
  173. package/src/definitions/behaviors/state.js +1 -1
  174. package/src/definitions/behaviors/visibility.js +1 -1
  175. package/src/definitions/collections/form.less +9 -14
  176. package/src/definitions/collections/grid.less +106 -106
  177. package/src/definitions/collections/menu.less +29 -22
  178. package/src/definitions/collections/table.less +66 -0
  179. package/src/definitions/elements/button.less +1 -1
  180. package/src/definitions/elements/container.less +63 -0
  181. package/src/definitions/elements/icon.less +5 -5
  182. package/src/definitions/elements/input.less +2 -2
  183. package/src/definitions/elements/label.less +21 -1
  184. package/src/definitions/elements/list.less +13 -13
  185. package/src/definitions/elements/loader.less +71 -71
  186. package/src/definitions/elements/segment.less +110 -13
  187. package/src/definitions/globals/site.js +1 -1
  188. package/src/definitions/modules/accordion.js +1 -1
  189. package/src/definitions/modules/calendar.js +1 -1
  190. package/src/definitions/modules/calendar.less +40 -11
  191. package/src/definitions/modules/checkbox.js +4 -2
  192. package/src/definitions/modules/checkbox.less +61 -5
  193. package/src/definitions/modules/dimmer.js +1 -1
  194. package/src/definitions/modules/dimmer.less +2 -2
  195. package/src/definitions/modules/dropdown.js +28 -20
  196. package/src/definitions/modules/dropdown.less +124 -21
  197. package/src/definitions/modules/embed.js +1 -1
  198. package/src/definitions/modules/flyout.js +1 -32
  199. package/src/definitions/modules/modal.js +2 -2
  200. package/src/definitions/modules/modal.less +6 -0
  201. package/src/definitions/modules/nag.js +2 -2
  202. package/src/definitions/modules/popup.js +10 -8
  203. package/src/definitions/modules/popup.less +4 -4
  204. package/src/definitions/modules/progress.js +1 -1
  205. package/src/definitions/modules/rating.js +1 -1
  206. package/src/definitions/modules/search.js +4 -3
  207. package/src/definitions/modules/search.less +31 -0
  208. package/src/definitions/modules/shape.js +1 -1
  209. package/src/definitions/modules/sidebar.js +1 -31
  210. package/src/definitions/modules/slider.js +125 -25
  211. package/src/definitions/modules/sticky.js +1 -1
  212. package/src/definitions/modules/tab.js +5 -3
  213. package/src/definitions/modules/toast.js +1 -1
  214. package/src/definitions/modules/toast.less +7 -0
  215. package/src/definitions/modules/transition.js +2 -2
  216. package/src/definitions/views/comment.less +7 -0
  217. package/src/definitions/views/feed.less +238 -32
  218. package/src/definitions/views/item.less +7 -0
  219. package/src/theme.less +1 -1
  220. package/src/themes/amazon/elements/button.variables +5 -1
  221. package/src/themes/bootstrap3/elements/button.variables +5 -1
  222. package/src/themes/chubby/elements/header.variables +6 -1
  223. package/src/themes/default/collections/message.variables +3 -9
  224. package/src/themes/default/collections/table.variables +11 -8
  225. package/src/themes/default/elements/button.variables +8 -10
  226. package/src/themes/default/elements/container.variables +3 -0
  227. package/src/themes/default/elements/emoji.variables +179 -67
  228. package/src/themes/default/elements/flag.variables +1 -1
  229. package/src/themes/default/elements/label.variables +6 -1
  230. package/src/themes/default/elements/segment.variables +8 -0
  231. package/src/themes/default/globals/site.variables +362 -341
  232. package/src/themes/default/globals/variation.variables +24 -1
  233. package/src/themes/default/modules/calendar.variables +11 -0
  234. package/src/themes/default/modules/checkbox.variables +12 -0
  235. package/src/themes/default/modules/dropdown.variables +10 -4
  236. package/src/themes/default/modules/modal.variables +3 -0
  237. package/src/themes/default/modules/popup.variables +1 -1
  238. package/src/themes/default/modules/search.variables +3 -0
  239. package/src/themes/default/modules/toast.variables +6 -5
  240. package/src/themes/default/views/card.variables +4 -12
  241. package/src/themes/default/views/feed.variables +55 -1
  242. package/src/themes/default/views/item.variables +5 -5
  243. package/src/themes/flat/collections/form.variables +4 -4
  244. package/src/themes/flat/globals/site.variables +1 -1
  245. package/src/themes/github/elements/button.variables +5 -1
  246. package/src/themes/joypixels/elements/emoji.variables +182 -70
  247. package/src/themes/material/globals/site.variables +1 -1
  248. package/src/themes/twitter/elements/button.variables +5 -1
  249. package/src/themes/twitter/elements/emoji.variables +178 -66
  250. package/tasks/admin/components/create.js +1 -2
  251. package/tasks/admin/components/init.js +3 -4
  252. package/tasks/admin/components/update.js +2 -3
  253. package/tasks/admin/distributions/create.js +9 -5
  254. package/tasks/admin/distributions/init.js +3 -4
  255. package/tasks/admin/distributions/update.js +2 -3
  256. package/tasks/config/project/install.js +3 -0
  257. package/tasks/config/tasks.js +1 -8
  258. package/tasks/config/user.js +1 -1
  259. package/tasks/docs/build.js +2 -2
  260. package/tasks/docs/metadata.js +1 -1
  261. package/tasks/docs/serve.js +1 -1
  262. package/tasks/install.js +19 -10
  263. package/tasks/watch.js +1 -2
  264. package/types/fomantic-ui-accordion.d.ts +244 -0
  265. package/types/fomantic-ui-api.d.ts +555 -0
  266. package/types/fomantic-ui-calendar.d.ts +766 -0
  267. package/types/fomantic-ui-checkbox.d.ts +332 -0
  268. package/types/fomantic-ui-dimmer.d.ts +408 -0
  269. package/types/fomantic-ui-dropdown.d.ts +1183 -0
  270. package/types/fomantic-ui-embed.d.ts +326 -0
  271. package/types/fomantic-ui-flyout.d.ts +525 -0
  272. package/types/fomantic-ui-form.d.ts +651 -0
  273. package/types/fomantic-ui-modal.d.ts +471 -0
  274. package/types/fomantic-ui-nag.d.ts +270 -0
  275. package/types/fomantic-ui-popup.d.ts +523 -0
  276. package/types/fomantic-ui-progress.d.ts +459 -0
  277. package/types/fomantic-ui-rating.d.ts +187 -0
  278. package/types/fomantic-ui-search.d.ts +496 -0
  279. package/types/fomantic-ui-shape.d.ts +274 -0
  280. package/types/fomantic-ui-sidebar.d.ts +402 -0
  281. package/types/fomantic-ui-slider.d.ts +316 -0
  282. package/types/fomantic-ui-sticky.d.ts +215 -0
  283. package/types/fomantic-ui-tab.d.ts +361 -0
  284. package/types/fomantic-ui-tests.ts +25 -0
  285. package/types/fomantic-ui-toast.d.ts +514 -0
  286. package/types/fomantic-ui-transition.d.ts +355 -0
  287. package/types/fomantic-ui-visibility.d.ts +355 -0
  288. package/types/index.d.ts +63 -0
  289. package/types/tsconfig.json +23 -0
  290. package/types/tslint.json +1 -0
@@ -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
@@ -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
  }
@@ -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()) {
@@ -579,7 +579,10 @@
579
579
  if ($subMenu.length > 0) {
580
580
  module.verbose('Hiding sub-menu', $subMenu);
581
581
  $subMenu.each(function () {
582
- module.animate.hide(false, $(this));
582
+ var $sub = $(this);
583
+ if (!module.is.animating($sub)) {
584
+ module.animate.hide(false, $sub);
585
+ }
583
586
  });
584
587
  }
585
588
  }
@@ -774,6 +777,8 @@
774
777
  }
775
778
  ;
776
779
  if (settings.useLabels && module.has.maxSelections()) {
780
+ module.show();
781
+
777
782
  return;
778
783
  }
779
784
  if (settings.apiSettings) {
@@ -1097,8 +1102,8 @@
1097
1102
  notFoundTokens = []
1098
1103
  ;
1099
1104
  tokens.forEach(function (value) {
1100
- if (module.set.selected(module.escape.htmlEntities(value.trim()), null, true, true) === false) {
1101
- notFoundTokens.push(value);
1105
+ if (module.set.selected(module.escape.htmlEntities(value.trim()), null, false, true) === false) {
1106
+ notFoundTokens.push(value.trim());
1102
1107
  }
1103
1108
  });
1104
1109
  event.preventDefault();
@@ -1231,7 +1236,7 @@
1231
1236
  module.set.filtered();
1232
1237
  }
1233
1238
  clearTimeout(module.timer);
1234
- module.timer = setTimeout(module.search, settings.delay.search);
1239
+ module.timer = setTimeout(function () { module.search(); }, settings.delay.search);
1235
1240
  },
1236
1241
  label: {
1237
1242
  click: function (event) {
@@ -1407,11 +1412,13 @@
1407
1412
  if (settings.allowAdditions) {
1408
1413
  module.remove.userAddition();
1409
1414
  }
1410
- module.remove.filteredItem();
1415
+ if (!settings.keepSearchTerm) {
1416
+ module.remove.filteredItem();
1417
+ module.remove.searchTerm();
1418
+ }
1411
1419
  if (!module.is.visible() && $target.length > 0) {
1412
1420
  module.show();
1413
1421
  }
1414
- module.remove.searchTerm();
1415
1422
  if (!module.is.focusedOnSearch() && skipRefocus !== true) {
1416
1423
  module.focusSearch(true);
1417
1424
  }
@@ -1597,7 +1604,9 @@
1597
1604
  module.verbose('Selecting item from keyboard shortcut', $selectedItem);
1598
1605
  module.event.item.click.call($selectedItem, event);
1599
1606
  if (module.is.searchSelection()) {
1600
- module.remove.searchTerm();
1607
+ if (!settings.keepSearchTerm) {
1608
+ module.remove.searchTerm();
1609
+ }
1601
1610
  if (module.is.multiple()) {
1602
1611
  $search.trigger('focus');
1603
1612
  }
@@ -1814,7 +1823,7 @@
1814
1823
  ? value
1815
1824
  : text;
1816
1825
  if (module.can.activate($(element))) {
1817
- module.set.selected(value, $(element));
1826
+ module.set.selected(value, $(element), false, settings.keepSearchTerm);
1818
1827
  if (!module.is.multiple() && !(!settings.collapseOnActionable && $(element).hasClass(className.actionable))) {
1819
1828
  module.hideAndClear();
1820
1829
  }
@@ -2166,7 +2175,7 @@
2166
2175
  return;
2167
2176
  }
2168
2177
  if (isMultiple) {
2169
- if ($.inArray(module.escape.htmlEntities(String(optionValue)), value.map(String)) !== -1) {
2178
+ if ($.inArray(module.escape.htmlEntities(String(optionValue)), value.map(String).map(module.escape.htmlEntities)) !== -1) {
2170
2179
  $selectedItem = $selectedItem
2171
2180
  ? $selectedItem.add($choice)
2172
2181
  : $choice;
@@ -2227,7 +2236,7 @@
2227
2236
  return false;
2228
2237
  }
2229
2238
 
2230
- return true;
2239
+ return false;
2231
2240
  },
2232
2241
  disabled: function () {
2233
2242
  $search.attr('tabindex', module.is.disabled() ? -1 : 0);
@@ -2317,7 +2326,7 @@
2317
2326
  $.each(values, function (value, name) {
2318
2327
  module.set.text(name);
2319
2328
  });
2320
- } else {
2329
+ } else if (settings.useLabels) {
2321
2330
  $.each(values, function (value, name) {
2322
2331
  module.add.label(value, name);
2323
2332
  });
@@ -2464,7 +2473,7 @@
2464
2473
  valueIsSet = searchValue !== ''
2465
2474
  ;
2466
2475
  if (isMultiple && hasSearchValue) {
2467
- module.verbose('Adjusting input width', searchWidth, settings.glyphWidth);
2476
+ module.verbose('Adjusting input width', searchWidth);
2468
2477
  $search.css('width', searchWidth + 'px');
2469
2478
  }
2470
2479
  if (hasSearchValue || (isSearchMultiple && valueIsSet)) {
@@ -2763,7 +2772,7 @@
2763
2772
  return false;
2764
2773
  }
2765
2774
  module.debug('Setting selected menu item to', $selectedItem);
2766
- if (module.is.multiple()) {
2775
+ if (module.is.multiple() && !keepSearchTerm) {
2767
2776
  module.remove.searchWidth();
2768
2777
  }
2769
2778
  if (module.is.single()) {
@@ -3738,12 +3747,12 @@
3738
3747
  show: function () {
3739
3748
  module.verbose('Delaying show event to ensure user intent');
3740
3749
  clearTimeout(module.timer);
3741
- module.timer = setTimeout(module.show, settings.delay.show);
3750
+ module.timer = setTimeout(function () { module.show(); }, settings.delay.show);
3742
3751
  },
3743
3752
  hide: function () {
3744
3753
  module.verbose('Delaying hide event to ensure user intent');
3745
3754
  clearTimeout(module.timer);
3746
- module.timer = setTimeout(module.hide, settings.delay.hide);
3755
+ module.timer = setTimeout(function () { module.hide(); }, settings.delay.hide);
3747
3756
  },
3748
3757
  },
3749
3758
 
@@ -3869,7 +3878,7 @@
3869
3878
  });
3870
3879
  }
3871
3880
  clearTimeout(module.performance.timer);
3872
- module.performance.timer = setTimeout(module.performance.display, 500);
3881
+ module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
3873
3882
  },
3874
3883
  display: function () {
3875
3884
  var
@@ -4006,6 +4015,7 @@
4006
4015
  forceSelection: false, // force a choice on blur with search selection
4007
4016
 
4008
4017
  allowAdditions: false, // whether multiple select should allow user added values
4018
+ keepSearchTerm: false, // whether the search value should be kept and menu stays filtered on item selection
4009
4019
  ignoreCase: false, // whether to consider case sensitivity when creating labels
4010
4020
  ignoreSearchCase: true, // whether to consider case sensitivity when filtering items
4011
4021
  hideAdditions: true, // whether or not to hide special message prompting a user they can enter a value
@@ -4025,8 +4035,6 @@
4025
4035
  duration: 200, // duration of transition
4026
4036
  displayType: false, // displayType of transition
4027
4037
 
4028
- glyphWidth: 1.037, // widest glyph width in em (W is 1.037 em) used to calculate multiselect input width
4029
-
4030
4038
  headerDivider: true, // whether option headers should have an additional divider line underneath when converted from <select> <optgroup>
4031
4039
 
4032
4040
  collapseOnActionable: true, // whether the dropdown should collapse upon selection of an actionable item
@@ -435,20 +435,24 @@ select.ui.dropdown {
435
435
  }
436
436
 
437
437
  /* Selection Menu */
438
- .ui.selection.dropdown .menu {
438
+ .ui.selection.dropdown:not(.unlimited) .menu {
439
439
  overflow-x: hidden;
440
440
  overflow-y: auto;
441
441
  overscroll-behavior: @overscrollBehavior;
442
442
  backface-visibility: hidden;
443
- border-top-width: 0 !important;
443
+ }
444
+ .ui.selection.dropdown .menu {
444
445
  outline: none;
445
446
  margin: 0 -@menuBorderWidth;
446
447
  min-width: @menuMinWidth;
447
448
  width: @menuMinWidth;
448
- border-radius: @selectionMenuBorderRadius;
449
449
  box-shadow: @selectionMenuBoxShadow;
450
450
  transition: @selectionMenuTransition;
451
451
  }
452
+ .ui.selection.dropdown:not(.pointing):not(.floating) .menu {
453
+ border-top-width: 0;
454
+ border-radius: @selectionMenuBorderRadius;
455
+ }
452
456
  .ui.selection.dropdown .menu::after,
453
457
  .ui.selection.dropdown .menu::before {
454
458
  display: none;
@@ -471,7 +475,7 @@ select.ui.dropdown {
471
475
  max-height: @selectionMobileMaxMenuHeight * 0.5;
472
476
  }
473
477
  }
474
- .ui.selection.dropdown .menu {
478
+ .ui.selection.dropdown:not(.unlimited) .menu {
475
479
  max-height: @selectionMobileMaxMenuHeight;
476
480
  }
477
481
  & when (@variationDropdownLong) {
@@ -492,7 +496,7 @@ select.ui.dropdown {
492
496
  max-height: @selectionTabletMaxMenuHeight * 0.5;
493
497
  }
494
498
  }
495
- .ui.selection.dropdown .menu {
499
+ .ui.selection.dropdown:not(.unlimited) .menu {
496
500
  max-height: @selectionTabletMaxMenuHeight;
497
501
  }
498
502
  & when (@variationDropdownLong) {
@@ -513,7 +517,7 @@ select.ui.dropdown {
513
517
  max-height: @selectionComputerMaxMenuHeight * 0.5;
514
518
  }
515
519
  }
516
- .ui.selection.dropdown .menu {
520
+ .ui.selection.dropdown:not(.unlimited) .menu {
517
521
  max-height: @selectionComputerMaxMenuHeight;
518
522
  }
519
523
  & when (@variationDropdownLong) {
@@ -534,7 +538,7 @@ select.ui.dropdown {
534
538
  max-height: @selectionWidescreenMaxMenuHeight * 0.5;
535
539
  }
536
540
  }
537
- .ui.selection.dropdown .menu {
541
+ .ui.selection.dropdown:not(.unlimited) .menu {
538
542
  max-height: @selectionWidescreenMaxMenuHeight;
539
543
  }
540
544
  & when (@variationDropdownLong) {
@@ -554,6 +558,12 @@ select.ui.dropdown {
554
558
  white-space: normal;
555
559
  word-wrap: normal;
556
560
  }
561
+ & when (@variationDropdownPointing) or (@variationDropdownFloating) {
562
+ .ui.selection.pointing.dropdown .menu > .item:first-child,
563
+ .ui.selection.floating.dropdown .menu > .item:first-child {
564
+ border-top: none;
565
+ }
566
+ }
557
567
 
558
568
  /* User Item */
559
569
  .ui.selection.dropdown .menu > .hidden.addition.item {
@@ -621,7 +631,7 @@ select.ui.dropdown {
621
631
  }
622
632
 
623
633
  /* Connecting Border */
624
- .ui.active.selection.dropdown {
634
+ .ui.active.selection.dropdown:not(.pointing):not(.floating) {
625
635
  border-bottom-left-radius: @selectionVisibleConnectingBorder !important;
626
636
  border-bottom-right-radius: @selectionVisibleConnectingBorder !important;
627
637
  }
@@ -749,29 +759,29 @@ select.ui.dropdown {
749
759
  }
750
760
 
751
761
  /* Search Menu */
752
- .ui.search.dropdown .menu {
762
+ .ui.search.dropdown:not(.unlimited) .menu {
753
763
  overflow-x: hidden;
754
764
  overflow-y: auto;
755
765
  overscroll-behavior: @overscrollBehavior;
756
766
  backface-visibility: hidden;
757
767
  }
758
768
  @media only screen and (max-width: @largestMobileScreen) {
759
- .ui.search.dropdown .menu {
769
+ .ui.search.dropdown:not(.unlimited) .menu {
760
770
  max-height: @searchMobileMaxMenuHeight;
761
771
  }
762
772
  }
763
773
  @media only screen and (min-width: @tabletBreakpoint) {
764
- .ui.search.dropdown .menu {
774
+ .ui.search.dropdown:not(.unlimited) .menu {
765
775
  max-height: @searchTabletMaxMenuHeight;
766
776
  }
767
777
  }
768
778
  @media only screen and (min-width: @computerBreakpoint) {
769
- .ui.search.dropdown .menu {
779
+ .ui.search.dropdown:not(.unlimited) .menu {
770
780
  max-height: @searchComputerMaxMenuHeight;
771
781
  }
772
782
  }
773
783
  @media only screen and (min-width: @widescreenMonitorBreakpoint) {
774
- .ui.search.dropdown .menu {
784
+ .ui.search.dropdown:not(.unlimited) .menu {
775
785
  max-height: @searchWidescreenMaxMenuHeight;
776
786
  }
777
787
  }
@@ -1181,6 +1191,16 @@ select.ui.dropdown {
1181
1191
  }
1182
1192
  }
1183
1193
 
1194
+ & when (@variationDropdownDisabled) or (@variationDropdownReadonly) {
1195
+ .ui.disabled.dropdown,
1196
+ .ui.read-only.dropdown {
1197
+ > .remove.icon,
1198
+ > .label > .delete.icon {
1199
+ display: none;
1200
+ }
1201
+ }
1202
+ }
1203
+
1184
1204
  /*******************************
1185
1205
  Variations
1186
1206
  *******************************/
@@ -1273,9 +1293,9 @@ select.ui.dropdown {
1273
1293
 
1274
1294
  & when (@variationDropdownSelection) {
1275
1295
  /* Selection */
1276
- .ui.ui.upward.selection.dropdown .menu {
1277
- border-top-width: @menuBorderWidth !important;
1278
- border-bottom-width: 0 !important;
1296
+ .ui.ui.upward.selection.dropdown:not(.pointing):not(.floating) .menu {
1297
+ border-top-width: @menuBorderWidth;
1298
+ border-bottom-width: 0;
1279
1299
  box-shadow: @upwardSelectionMenuBoxShadow;
1280
1300
  border-radius: @upwardSelectionMenuBorderRadius;
1281
1301
  }
@@ -1284,21 +1304,23 @@ select.ui.dropdown {
1284
1304
  }
1285
1305
 
1286
1306
  /* Active Upward */
1287
- .ui.active.upward.selection.dropdown {
1307
+ .ui.active.upward.selection.dropdown:not(.pointing):not(.floating) {
1288
1308
  border-radius: @upwardSelectionVisibleBorderRadius !important;
1289
1309
  }
1290
1310
 
1291
1311
  /* Visible Upward */
1292
1312
  .ui.upward.selection.dropdown.visible {
1293
1313
  box-shadow: @upwardSelectionVisibleBoxShadow;
1294
- border-radius: @upwardSelectionVisibleBorderRadius !important;
1314
+ &:not(.pointing):not(.floating) {
1315
+ border-radius: @upwardSelectionVisibleBorderRadius !important;
1316
+ }
1295
1317
  }
1296
1318
 
1297
1319
  /* Visible Hover Upward */
1298
1320
  .ui.upward.active.selection.dropdown:hover {
1299
1321
  box-shadow: @upwardSelectionActiveHoverBoxShadow;
1300
1322
  }
1301
- .ui.upward.active.selection.dropdown:hover .menu {
1323
+ .ui.upward.active.selection.dropdown:hover:not(.pointing):not(.floating) .menu {
1302
1324
  box-shadow: @upwardSelectionActiveHoverMenuBoxShadow;
1303
1325
  }
1304
1326
  }
@@ -1328,8 +1350,8 @@ select.ui.dropdown {
1328
1350
  margin: 0 !important;
1329
1351
  border-top: @menuBorder;
1330
1352
  }
1331
- .ui.scrolling.dropdown .menu .item.item.item,
1332
- .ui.dropdown .scrolling.menu > .item.item.item {
1353
+ .ui.ui.ui.scrolling.dropdown .menu .item,
1354
+ .ui.ui.ui.dropdown .scrolling.menu > .item {
1333
1355
  border-top: @scrollingMenuItemBorder;
1334
1356
  }
1335
1357
  .ui.scrolling.dropdown .menu .item:first-child,
@@ -1354,24 +1376,55 @@ select.ui.dropdown {
1354
1376
  .ui.dropdown .scrolling.menu {
1355
1377
  max-height: @scrollingMobileMaxMenuHeight;
1356
1378
  }
1379
+ & when (@variationDropdownResizable) {
1380
+ .ui.scrolling.resizable.dropdown .menu,
1381
+ .ui.dropdown .scrolling.resizable.menu {
1382
+ height: @scrollingMobileMaxMenuHeight;
1383
+ }
1384
+ }
1357
1385
  }
1358
1386
  @media only screen and (min-width: @tabletBreakpoint) {
1359
1387
  .ui.scrolling.dropdown .menu,
1360
1388
  .ui.dropdown .scrolling.menu {
1361
1389
  max-height: @scrollingTabletMaxMenuHeight;
1362
1390
  }
1391
+ & when (@variationDropdownResizable) {
1392
+ .ui.scrolling.resizable.dropdown .menu,
1393
+ .ui.dropdown .scrolling.resizable.menu {
1394
+ height: @scrollingTabletMaxMenuHeight;
1395
+ }
1396
+ }
1363
1397
  }
1364
1398
  @media only screen and (min-width: @computerBreakpoint) {
1365
1399
  .ui.scrolling.dropdown .menu,
1366
1400
  .ui.dropdown .scrolling.menu {
1367
1401
  max-height: @scrollingComputerMaxMenuHeight;
1368
1402
  }
1403
+ & when (@variationDropdownResizable) {
1404
+ .ui.scrolling.resizable.dropdown .menu,
1405
+ .ui.dropdown .scrolling.resizable.menu {
1406
+ height: @scrollingComputerMaxMenuHeight;
1407
+ }
1408
+ }
1369
1409
  }
1370
1410
  @media only screen and (min-width: @widescreenMonitorBreakpoint) {
1371
1411
  .ui.scrolling.dropdown .menu,
1372
1412
  .ui.dropdown .scrolling.menu {
1373
1413
  max-height: @scrollingWidescreenMaxMenuHeight;
1374
1414
  }
1415
+ & when (@variationDropdownResizable) {
1416
+ .ui.scrolling.resizable.dropdown .menu,
1417
+ .ui.dropdown .scrolling.resizable.menu {
1418
+ height: @scrollingWidescreenMaxMenuHeight;
1419
+ }
1420
+ }
1421
+ }
1422
+ & when (@variationDropdownResizable) {
1423
+ .ui.scrolling.resizable.dropdown .menu,
1424
+ .ui.dropdown .scrolling.resizable.menu {
1425
+ resize: @resizableDirection;
1426
+ max-height: none;
1427
+ }
1375
1428
  }
1376
1429
  }
1377
1430
 
@@ -1582,6 +1635,22 @@ select.ui.dropdown {
1582
1635
  z-index: @pointingArrowZIndex;
1583
1636
  }
1584
1637
 
1638
+ @supports selector(:has(.f)) {
1639
+ .ui.pointing.dropdown:not(.upward) .menu:has(:first-child:hover)::after,
1640
+ .ui.upward.pointing.dropdown .menu:has(:last-child:hover)::after {
1641
+ background: @hoveredItemBackground;
1642
+ }
1643
+ .ui.pointing.dropdown:not(.upward) .menu:has(.selected.item:first-child)::after,
1644
+ .ui.upward.pointing.dropdown .menu:has(.selected.item:last-child)::after {
1645
+ background: @selectedBackground;
1646
+ }
1647
+ }
1648
+
1649
+ & when (@variationDropdownSelection) {
1650
+ .ui.selection.pointing.dropdown > .menu::after {
1651
+ box-shadow: @pointingArrowBoxShadowSelection;
1652
+ }
1653
+ }
1585
1654
  .ui.pointing.dropdown > .menu:not(.hidden)::after {
1586
1655
  top: @pointingArrowOffset;
1587
1656
  left: 50%;
@@ -1727,6 +1796,12 @@ select.ui.dropdown {
1727
1796
  margin: @pointingArrowOffset 0 0;
1728
1797
  }
1729
1798
 
1799
+ & when (@variationDropdownSelection) {
1800
+ .ui.selection.pointing.upward.dropdown .menu::after {
1801
+ box-shadow: @pointingUpwardArrowBoxShadowSelection;
1802
+ }
1803
+ }
1804
+
1730
1805
  /* Right Pointing Upward */
1731
1806
  .ui.right.pointing.upward.dropdown:not(.top):not(.bottom) .menu {
1732
1807
  top: auto !important;
@@ -1754,6 +1829,19 @@ select.ui.dropdown {
1754
1829
  }
1755
1830
  }
1756
1831
 
1832
+ & when (@variationDropdownPointing) or (@variationDropdownFloating) {
1833
+ .ui.floating.dropdown .menu .item:first-child,
1834
+ .ui.pointing.dropdown .menu .item:first-child {
1835
+ border-top-left-radius: @borderRadius;
1836
+ border-top-right-radius: @borderRadius;
1837
+ }
1838
+ .ui.floating.dropdown .menu .item:last-child,
1839
+ .ui.pointing.dropdown .menu .item:last-child {
1840
+ border-bottom-left-radius: @borderRadius;
1841
+ border-bottom-right-radius: @borderRadius;
1842
+ }
1843
+ }
1844
+
1757
1845
  /* --------------------
1758
1846
  Sizes
1759
1847
  --------------------- */
@@ -1967,6 +2055,21 @@ select.ui.dropdown {
1967
2055
  background: @invertedPointingArrowBackground;
1968
2056
  box-shadow: @invertedPointingArrowBoxShadow;
1969
2057
  }
2058
+ & when (@variationDropdownUpward) {
2059
+ .ui.inverted.upward.pointing.dropdown > .menu::after {
2060
+ box-shadow: @invertedPointingUpwardArrowBoxShadow;
2061
+ }
2062
+ }
2063
+ @supports selector(:has(.f)) {
2064
+ .ui.inverted.pointing.dropdown:not(.upward) .menu:has(:first-child:hover)::after,
2065
+ .ui.inverted.upward.pointing.dropdown .menu:has(:last-child:hover)::after {
2066
+ background: @invertedHoveredItemBackground;
2067
+ }
2068
+ .ui.inverted.pointing.dropdown:not(.upward) .menu:has(.selected.item:first-child)::after,
2069
+ .ui.inverted.upward.pointing.dropdown .menu:has(.selected.item:last-child)::after {
2070
+ background: @invertedSelectedBackground;
2071
+ }
2072
+ }
1970
2073
  }
1971
2074
  }
1972
2075
 
@@ -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