fomantic-ui 2.9.0-beta.10 → 2.9.0-beta.100

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 (217) hide show
  1. package/.all-contributorsrc +188 -3
  2. package/CONTRIBUTORS.md +71 -37
  3. package/README.md +1 -1
  4. package/dist/components/accordion.css +50 -6
  5. package/dist/components/accordion.js +1 -1
  6. package/dist/components/accordion.min.css +2 -2
  7. package/dist/components/accordion.min.js +1 -1
  8. package/dist/components/ad.css +1 -1
  9. package/dist/components/ad.min.css +1 -1
  10. package/dist/components/api.js +25 -23
  11. package/dist/components/api.min.js +2 -2
  12. package/dist/components/breadcrumb.css +1 -1
  13. package/dist/components/breadcrumb.min.css +1 -1
  14. package/dist/components/button.css +81 -81
  15. package/dist/components/button.min.css +2 -2
  16. package/dist/components/calendar.css +1 -1
  17. package/dist/components/calendar.js +6 -7
  18. package/dist/components/calendar.min.css +1 -1
  19. package/dist/components/calendar.min.js +2 -2
  20. package/dist/components/card.css +26 -19
  21. package/dist/components/card.min.css +2 -2
  22. package/dist/components/checkbox.css +2 -1
  23. package/dist/components/checkbox.js +17 -11
  24. package/dist/components/checkbox.min.css +2 -2
  25. package/dist/components/checkbox.min.js +2 -2
  26. package/dist/components/comment.css +11 -11
  27. package/dist/components/comment.min.css +1 -1
  28. package/dist/components/container.css +1 -1
  29. package/dist/components/container.min.css +1 -1
  30. package/dist/components/dimmer.css +28 -14
  31. package/dist/components/dimmer.js +1 -1
  32. package/dist/components/dimmer.min.css +2 -2
  33. package/dist/components/dimmer.min.js +1 -1
  34. package/dist/components/divider.css +1 -1
  35. package/dist/components/divider.min.css +1 -1
  36. package/dist/components/dropdown.css +28 -5
  37. package/dist/components/dropdown.js +14 -18
  38. package/dist/components/dropdown.min.css +2 -2
  39. package/dist/components/dropdown.min.js +2 -2
  40. package/dist/components/embed.css +1 -1
  41. package/dist/components/embed.js +1 -1
  42. package/dist/components/embed.min.css +1 -1
  43. package/dist/components/embed.min.js +1 -1
  44. package/dist/components/emoji.css +2 -2
  45. package/dist/components/feed.css +28 -28
  46. package/dist/components/feed.min.css +2 -2
  47. package/dist/components/flag.css +731 -625
  48. package/dist/components/flag.min.css +2 -2
  49. package/dist/components/form.css +103 -54
  50. package/dist/components/form.js +24 -22
  51. package/dist/components/form.min.css +2 -2
  52. package/dist/components/form.min.js +2 -2
  53. package/dist/components/grid.css +11 -8
  54. package/dist/components/grid.min.css +2 -2
  55. package/dist/components/header.css +1 -1
  56. package/dist/components/header.min.css +1 -1
  57. package/dist/components/icon.css +6 -1
  58. package/dist/components/icon.min.css +2 -2
  59. package/dist/components/image.css +1 -1
  60. package/dist/components/image.min.css +1 -1
  61. package/dist/components/input.css +17 -2
  62. package/dist/components/input.min.css +2 -2
  63. package/dist/components/item.css +13 -13
  64. package/dist/components/item.min.css +1 -1
  65. package/dist/components/label.css +1 -1
  66. package/dist/components/label.min.css +1 -1
  67. package/dist/components/list.css +1 -1
  68. package/dist/components/list.min.css +1 -1
  69. package/dist/components/loader.css +1 -1
  70. package/dist/components/loader.min.css +1 -1
  71. package/dist/components/menu.css +29 -5
  72. package/dist/components/menu.min.css +1 -1
  73. package/dist/components/message.css +41 -41
  74. package/dist/components/message.min.css +2 -2
  75. package/dist/components/modal.css +3 -1
  76. package/dist/components/modal.js +94 -30
  77. package/dist/components/modal.min.css +2 -2
  78. package/dist/components/modal.min.js +2 -2
  79. package/dist/components/nag.css +1 -1
  80. package/dist/components/nag.js +1 -1
  81. package/dist/components/nag.min.css +1 -1
  82. package/dist/components/nag.min.js +1 -1
  83. package/dist/components/placeholder.css +1 -1
  84. package/dist/components/placeholder.min.css +1 -1
  85. package/dist/components/popup.css +5 -3
  86. package/dist/components/popup.js +1 -1
  87. package/dist/components/popup.min.css +2 -2
  88. package/dist/components/popup.min.js +1 -1
  89. package/dist/components/progress.css +1 -1
  90. package/dist/components/progress.js +1 -1
  91. package/dist/components/progress.min.css +1 -1
  92. package/dist/components/progress.min.js +1 -1
  93. package/dist/components/rail.css +1 -1
  94. package/dist/components/rail.min.css +1 -1
  95. package/dist/components/rating.css +7 -46
  96. package/dist/components/rating.js +1 -1
  97. package/dist/components/rating.min.css +2 -2
  98. package/dist/components/rating.min.js +1 -1
  99. package/dist/components/reset.css +1 -1
  100. package/dist/components/reset.min.css +1 -1
  101. package/dist/components/reveal.css +1 -1
  102. package/dist/components/reveal.min.css +1 -1
  103. package/dist/components/search.css +1 -1
  104. package/dist/components/search.js +1 -1
  105. package/dist/components/search.min.css +1 -1
  106. package/dist/components/search.min.js +1 -1
  107. package/dist/components/segment.css +12 -6
  108. package/dist/components/segment.min.css +2 -2
  109. package/dist/components/shape.css +1 -1
  110. package/dist/components/shape.js +1 -1
  111. package/dist/components/shape.min.css +1 -1
  112. package/dist/components/shape.min.js +1 -1
  113. package/dist/components/sidebar.css +4 -2
  114. package/dist/components/sidebar.js +1 -1
  115. package/dist/components/sidebar.min.css +2 -2
  116. package/dist/components/sidebar.min.js +1 -1
  117. package/dist/components/site.css +61 -39
  118. package/dist/components/site.js +1 -1
  119. package/dist/components/site.min.css +2 -2
  120. package/dist/components/site.min.js +1 -1
  121. package/dist/components/slider.js +1 -1
  122. package/dist/components/slider.min.js +1 -1
  123. package/dist/components/state.js +1 -1
  124. package/dist/components/state.min.js +1 -1
  125. package/dist/components/statistic.css +1 -1
  126. package/dist/components/statistic.min.css +1 -1
  127. package/dist/components/step.css +4 -4
  128. package/dist/components/step.min.css +2 -2
  129. package/dist/components/sticky.css +1 -1
  130. package/dist/components/sticky.js +1 -1
  131. package/dist/components/sticky.min.css +1 -1
  132. package/dist/components/sticky.min.js +1 -1
  133. package/dist/components/tab.css +1 -1
  134. package/dist/components/tab.js +1 -1
  135. package/dist/components/tab.min.css +1 -1
  136. package/dist/components/tab.min.js +1 -1
  137. package/dist/components/table.css +5 -3
  138. package/dist/components/table.min.css +2 -2
  139. package/dist/components/text.css +1 -1
  140. package/dist/components/text.min.css +1 -1
  141. package/dist/components/toast.css +33 -1
  142. package/dist/components/toast.js +54 -27
  143. package/dist/components/toast.min.css +2 -2
  144. package/dist/components/toast.min.js +2 -2
  145. package/dist/components/transition.css +1 -1
  146. package/dist/components/transition.js +1 -1
  147. package/dist/components/transition.min.css +1 -1
  148. package/dist/components/transition.min.js +1 -1
  149. package/dist/components/visibility.js +1 -1
  150. package/dist/components/visibility.min.js +1 -1
  151. package/dist/semantic.css +1408 -1030
  152. package/dist/semantic.js +252 -156
  153. package/dist/semantic.min.css +2 -2
  154. package/dist/semantic.min.js +2 -2
  155. package/examples/assets/library/iframe-content.js +5 -5
  156. package/package.json +2 -2
  157. package/src/definitions/behaviors/api.js +24 -22
  158. package/src/definitions/behaviors/form.js +23 -21
  159. package/src/definitions/collections/form.less +190 -139
  160. package/src/definitions/collections/grid.less +716 -680
  161. package/src/definitions/collections/menu.less +173 -126
  162. package/src/definitions/collections/message.less +48 -46
  163. package/src/definitions/collections/table.less +255 -242
  164. package/src/definitions/elements/button.less +360 -347
  165. package/src/definitions/elements/container.less +16 -8
  166. package/src/definitions/elements/emoji.less +15 -9
  167. package/src/definitions/elements/flag.less +7 -17
  168. package/src/definitions/elements/header.less +42 -35
  169. package/src/definitions/elements/icon.less +38 -31
  170. package/src/definitions/elements/input.less +23 -7
  171. package/src/definitions/elements/label.less +92 -91
  172. package/src/definitions/elements/list.less +55 -45
  173. package/src/definitions/elements/loader.less +30 -29
  174. package/src/definitions/elements/segment.less +30 -22
  175. package/src/definitions/elements/step.less +52 -48
  176. package/src/definitions/elements/text.less +17 -15
  177. package/src/definitions/globals/site.less +23 -2
  178. package/src/definitions/modules/accordion.less +55 -5
  179. package/src/definitions/modules/calendar.js +5 -6
  180. package/src/definitions/modules/checkbox.js +16 -10
  181. package/src/definitions/modules/checkbox.less +34 -178
  182. package/src/definitions/modules/dimmer.less +21 -8
  183. package/src/definitions/modules/dropdown.js +13 -17
  184. package/src/definitions/modules/dropdown.less +99 -67
  185. package/src/definitions/modules/modal.js +93 -29
  186. package/src/definitions/modules/modal.less +2 -0
  187. package/src/definitions/modules/nag.less +20 -19
  188. package/src/definitions/modules/popup.less +5 -1
  189. package/src/definitions/modules/progress.less +19 -18
  190. package/src/definitions/modules/rating.less +49 -42
  191. package/src/definitions/modules/search.less +32 -16
  192. package/src/definitions/modules/sidebar.less +33 -19
  193. package/src/definitions/modules/slider.less +39 -38
  194. package/src/definitions/modules/toast.js +53 -26
  195. package/src/definitions/modules/toast.less +46 -16
  196. package/src/definitions/views/card.less +402 -361
  197. package/src/definitions/views/comment.less +92 -81
  198. package/src/definitions/views/feed.less +164 -144
  199. package/src/definitions/views/item.less +249 -196
  200. package/src/definitions/views/statistic.less +90 -88
  201. package/src/themes/default/collections/menu.variables +6 -0
  202. package/src/themes/default/elements/button.variables +2 -1
  203. package/src/themes/default/elements/flag.overrides +1635 -986
  204. package/src/themes/default/elements/flag.variables +7 -5
  205. package/src/themes/default/elements/icon.overrides +35 -28
  206. package/src/themes/default/elements/icon.variables +1 -0
  207. package/src/themes/default/elements/step.overrides +1 -1
  208. package/src/themes/default/globals/site.variables +6 -0
  209. package/src/themes/default/globals/variation.variables +103 -6
  210. package/src/themes/default/modules/accordion.variables +15 -0
  211. package/src/themes/default/modules/dimmer.variables +1 -1
  212. package/src/themes/default/modules/dropdown.variables +1 -1
  213. package/src/themes/default/modules/toast.variables +3 -0
  214. package/src/themes/famfamfam/elements/flag.overrides +1026 -0
  215. package/src/themes/famfamfam/elements/flag.variables +13 -0
  216. package/tasks/build/css.js +6 -1
  217. package/test/helpers/sinon.js +1 -1
@@ -239,18 +239,26 @@ $.fn.checkbox = function(parameters) {
239
239
  }
240
240
  }
241
241
 
242
+ shortcutPressed = false;
242
243
  if(key == keyCode.escape) {
243
244
  module.verbose('Escape key pressed blurring field');
244
245
  $input.blur();
245
246
  shortcutPressed = true;
246
247
  }
247
- else if(!event.ctrlKey && ( key == keyCode.space || (key == keyCode.enter && settings.enableEnterKey)) ) {
248
- module.verbose('Enter/space key pressed, toggling checkbox');
249
- module.toggle();
250
- shortcutPressed = true;
251
- }
252
- else {
253
- shortcutPressed = false;
248
+ else if(!event.ctrlKey && module.can.change()) {
249
+ if( key == keyCode.space || (key == keyCode.enter && settings.enableEnterKey) ) {
250
+ module.verbose('Enter/space key pressed, toggling checkbox');
251
+ module.toggle();
252
+ shortcutPressed = true;
253
+ } else if($module.is('.toggle, .slider') && !module.is.radio()) {
254
+ if(key == keyCode.left && module.is.checked()) {
255
+ module.uncheck();
256
+ shortcutPressed = true;
257
+ } else if(key == keyCode.right && module.is.unchecked()) {
258
+ module.check();
259
+ shortcutPressed = true;
260
+ }
261
+ }
254
262
  }
255
263
  },
256
264
  keyup: function(event) {
@@ -323,7 +331,6 @@ $.fn.checkbox = function(parameters) {
323
331
  settings.onEnable.call(input);
324
332
  // preserve legacy callbacks
325
333
  settings.onEnabled.call(input);
326
- module.trigger.change();
327
334
  }
328
335
  },
329
336
 
@@ -338,7 +345,6 @@ $.fn.checkbox = function(parameters) {
338
345
  settings.onDisable.call(input);
339
346
  // preserve legacy callbacks
340
347
  settings.onDisabled.call(input);
341
- module.trigger.change();
342
348
  }
343
349
  },
344
350
 
@@ -866,7 +872,7 @@ $.fn.checkbox.settings = {
866
872
 
867
873
  selector : {
868
874
  checkbox : '.ui.checkbox',
869
- label : 'label, .box',
875
+ label : 'label',
870
876
  input : 'input[type="checkbox"], input[type="radio"]',
871
877
  link : 'a[href]'
872
878
  }
@@ -55,126 +55,6 @@
55
55
  }
56
56
 
57
57
 
58
- & when (@variationCheckboxBox) {
59
- /*--------------
60
- Box
61
- ---------------*/
62
-
63
- /* .box selector is deprecated and will be removed in v3 */
64
- .ui.checkbox .box {
65
- &:extend(.ui.checkbox label all);
66
- }
67
- .ui.checkbox + .box {
68
- &:extend(.ui.checkbox + label all);
69
- }
70
- .ui.checkbox input:focus ~ .box {
71
- &:extend(.ui.checkbox input:focus ~ label all);
72
- }
73
- .ui.checkbox input:checked ~ .box {
74
- &:extend(.ui.checkbox input:checked ~ label all);
75
- }
76
- & when (@variationCheckboxIndeterminate) {
77
- .ui.checkbox input:not([type=radio]):indeterminate ~ .box {
78
- &:extend(.ui.checkbox input:not([type=radio]):indeterminate ~ label all);
79
- }
80
- .ui.checkbox input:not([type=radio]):indeterminate:focus ~ .box {
81
- &:extend(.ui.checkbox input:not([type=radio]):indeterminate:focus ~ label all);
82
- }
83
- }
84
- .ui.checkbox input:checked:focus ~ .box {
85
- &:extend(.ui.checkbox input:checked:focus ~ label all);
86
- }
87
- & when (@variationCheckboxDisabled) {
88
- .ui.disabled.checkbox .box {
89
- &:extend(.ui.disabled.checkbox label all);
90
- }
91
-
92
- .ui.checkbox input[disabled] ~ .box {
93
- &:extend(.ui.checkbox input[disabled] ~ label all);
94
- }
95
- }
96
- & when (@variationCheckboxRadio) {
97
- .ui.radio.checkbox .box {
98
- &:extend(.ui.radio.checkbox label all);
99
- }
100
- .ui.radio.checkbox input:focus ~ .box {
101
- &:extend(.ui.radio.checkbox input:focus ~ label all);
102
- }
103
- .ui.radio.checkbox input:indeterminate ~ .box {
104
- &:extend(.ui.radio.checkbox input:indeterminate ~ label all);
105
- }
106
- .ui.radio.checkbox input:checked ~ .box {
107
- &:extend(.ui.radio.checkbox input:checked ~ label all);
108
- }
109
- .ui.radio.checkbox input:focus:checked ~ .box {
110
- &:extend(.ui.radio.checkbox input:focus:checked ~ label all);
111
- }
112
- }
113
- & when (@variationCheckboxSlider) {
114
- .ui.slider.checkbox .box {
115
- &:extend(.ui.slider.checkbox label all);
116
- }
117
- .ui.slider.checkbox input:focus ~ .box {
118
- &:extend(.ui.slider.checkbox input:focus ~ label all);
119
- }
120
- .ui.slider.checkbox input:checked ~ .box {
121
- &:extend(.ui.slider.checkbox input:checked ~ label all);
122
- }
123
- .ui.slider.checkbox input:focus:checked ~ .box {
124
- &:extend(.ui.slider.checkbox input:focus:checked ~ label all);
125
- }
126
- }
127
- & when (@variationCheckboxToggle) {
128
- .ui.toggle.checkbox .box {
129
- &:extend(.ui.toggle.checkbox label all);
130
- }
131
- .ui.toggle.checkbox input ~ .box {
132
- &:extend(.ui.toggle.checkbox input ~ label all);
133
- }
134
- .ui.toggle.checkbox input:focus ~ .box {
135
- &:extend(.ui.toggle.checkbox input:focus ~ label all);
136
- }
137
- .ui.toggle.checkbox input:checked ~ .box {
138
- &:extend(.ui.toggle.checkbox input:checked ~ label all);
139
- }
140
- .ui.toggle.checkbox input:focus:checked ~ .box {
141
- &:extend(.ui.toggle.checkbox input:focus:checked ~ label all);
142
- }
143
- }
144
- & when (@variationCheckboxFitted) {
145
- .ui.fitted.checkbox .box {
146
- &:extend(.ui.fitted.checkbox label all);
147
- }
148
- }
149
- & when (@variationCheckboxInverted) {
150
- .ui.inverted.checkbox .box {
151
- &:extend(.ui.inverted.checkbox label all);
152
- }
153
- & when (@variationCheckboxSlider) {
154
- .ui.inverted.slider.checkbox .box {
155
- &:extend(.ui.inverted.slider.checkbox label all);
156
- }
157
- .ui.inverted.slider.checkbox input:checked ~ .box {
158
- &:extend(.ui.inverted.slider.checkbox input:checked ~ label all);
159
- }
160
- .ui.inverted.slider.checkbox input:focus:checked ~ .box {
161
- &:extend(.ui.inverted.slider.checkbox input:focus:checked ~ label all);
162
- }
163
- }
164
- & when (@variationCheckboxToggle) {
165
- .ui.inverted.toggle.checkbox .box {
166
- &:extend(.ui.inverted.toggle.checkbox label all);
167
- }
168
- .ui.inverted.toggle.checkbox input:checked ~ .box {
169
- &:extend(.ui.inverted.toggle.checkbox input:checked ~ label all);
170
- }
171
- .ui.inverted.toggle.checkbox input:focus:checked ~ .box {
172
- &:extend(.ui.inverted.toggle.checkbox input:focus:checked ~ label all);
173
- }
174
- }
175
- }
176
- }
177
-
178
58
  .ui.checkbox label {
179
59
  cursor: auto;
180
60
  position: relative;
@@ -386,6 +266,7 @@
386
266
  }
387
267
 
388
268
  /* Selectable Label */
269
+ .ui.checkbox input + label[for],
389
270
  .ui.checkbox input.hidden + label {
390
271
  cursor: pointer;
391
272
  user-select: none;
@@ -796,69 +677,44 @@
796
677
  /*--------------------
797
678
  Size
798
679
  ---------------------*/
680
+ & when not (@variationCheckboxSizes = false) {
681
+ each(@variationCheckboxSizes, {
682
+ @raw: @{value}Raw;
683
+ @size: @{value}CheckboxSize;
684
+ @circleScale: @{value}CheckboxCircleScale;
685
+ @circleLeft: @{value}CheckboxCircleLeft;
799
686
 
800
- each(@variationCheckboxSizes, {
801
- @raw: @{value}Raw;
802
- @size: @{value}CheckboxSize;
803
- @circleScale: @{value}CheckboxCircleScale;
804
- @circleLeft: @{value}CheckboxCircleLeft;
805
-
806
- .ui.@{value}.checkbox {
807
- font-size: @@size;
808
- }
809
-
810
- & when (@@raw > 1) {
811
- .ui.@{value}.form .checkbox,
812
687
  .ui.@{value}.checkbox {
813
- &:not(.slider):not(.toggle):not(.radio) {
814
- &
815
- label:after,
816
- label:before {
817
- transform: scale(@@raw);
818
- transform-origin:left;
819
- }
820
- }
821
- &.radio when (@variationCheckboxRadio) {
822
- &
823
- label:before {
824
- transform: scale(@@raw);
825
- transform-origin:left;
688
+ font-size: @@size;
689
+ }
690
+
691
+ & when (@@raw > 1) {
692
+ .ui.@{value}.form .checkbox,
693
+ .ui.@{value}.checkbox {
694
+ &:not(.slider):not(.toggle):not(.radio) {
695
+ &
696
+ label:after,
697
+ label:before {
698
+ transform: scale(@@raw);
699
+ transform-origin: left;
700
+ }
826
701
  }
827
- &
828
- label:after {
829
- transform:scale(@@circleScale);
830
- transform-origin:left;
831
- left: @@circleLeft;
702
+ &.radio when (@variationCheckboxRadio) {
703
+ &
704
+ label:before {
705
+ transform: scale(@@raw);
706
+ transform-origin: left;
707
+ }
708
+ &
709
+ label:after {
710
+ transform: scale(@@circleScale);
711
+ transform-origin: left;
712
+ left: @@circleLeft;
713
+ }
832
714
  }
833
715
  }
834
716
  }
835
- }
836
- & when (@@raw > 1) and (@variationCheckboxBox) {
837
- .ui.@{value}.form .checkbox,
838
- .ui.@{value}.checkbox {
839
- &:not(.slider):not(.toggle):not(.radio) {
840
- &
841
- .box:after,
842
- .box:before {
843
- transform: scale(@@raw);
844
- transform-origin:left;
845
- }
846
- }
847
- &.radio when (@variationCheckboxRadio) {
848
- &
849
- .box:before {
850
- transform: scale(@@raw);
851
- transform-origin:left;
852
- }
853
- &
854
- .box:after {
855
- transform:scale(@@circleScale);
856
- transform-origin:left;
857
- left: @@circleLeft;
858
- }
859
- }
860
- }
861
- }
862
- })
717
+ })
718
+ }
863
719
 
864
720
  .loadUIOverrides();
@@ -68,7 +68,7 @@
68
68
  }
69
69
 
70
70
  /* Scrollbars */
71
- .addScrollbars() when (@useCustomScrollbars) {
71
+ & when (@useCustomScrollbars) {
72
72
  .ui.dimmer:not(.inverted)::-webkit-scrollbar-track {
73
73
  background: @trackInvertedBackground;
74
74
  }
@@ -81,8 +81,17 @@
81
81
  .ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:hover {
82
82
  background: @thumbInvertedHoverBackground;
83
83
  }
84
+ .ui.dimmer:not(.inverted) {
85
+ /* IE11 */
86
+ scrollbar-face-color: @thumbInvertedBackgroundHex;
87
+ scrollbar-shadow-color: @thumbInvertedBackgroundHex;
88
+ scrollbar-track-color: @trackInvertedBackgroundHex;
89
+ scrollbar-arrow-color: @trackInvertedBackgroundHex;
90
+
91
+ /* firefox : first color thumb, second track */
92
+ scrollbar-color: @thumbInvertedBackground @trackInvertedBackground;
93
+ }
84
94
  }
85
- .addScrollbars();
86
95
 
87
96
  /*******************************
88
97
  States
@@ -171,17 +180,21 @@ body.dimmable > .dimmer {
171
180
  Blurring
172
181
  ---------------*/
173
182
 
174
- .blurring.dimmable > :not(.dimmer) {
175
- filter: @blurredStartFilter;
176
- transition: @blurredTransition;
177
- }
178
- .blurring.dimmed.dimmable > :not(.dimmer):not(.popup) {
179
- filter: @blurredEndFilter;
183
+ @supports (not (-webkit-backdrop-filter: none)) and (not (backdrop-filter: none)) {
184
+ .blurring.dimmable > :not(.dimmer) {
185
+ filter: @blurredStartFilter;
186
+ transition: @blurredTransition;
187
+ }
188
+ .blurring.dimmed.dimmable > :not(.dimmer):not(.popup) {
189
+ filter: @blurredEndFilter;
190
+ }
180
191
  }
181
192
 
182
193
  /* Dimmer Color */
183
194
  .blurring.dimmable > .dimmer {
184
195
  background: @blurredBackgroundColor;
196
+ -webkit-backdrop-filter: @blurredEndFilter;
197
+ backdrop-filter: @blurredEndFilter;
185
198
  }
186
199
  .blurring.dimmable > .inverted.dimmer {
187
200
  background: @blurredInvertedBackgroundColor;
@@ -200,6 +200,7 @@ $.fn.dropdown = function(parameters) {
200
200
  select: function() {
201
201
  if(module.has.input() && selectObserver) {
202
202
  selectObserver.observe($module[0], {
203
+ attributes: true,
203
204
  childList : true,
204
205
  subtree : true
205
206
  });
@@ -421,6 +422,9 @@ $.fn.dropdown = function(parameters) {
421
422
  module.debug('Disabling dropdown');
422
423
  $module.addClass(className.disabled);
423
424
  }
425
+ if($input.is('[required]')) {
426
+ settings.forceSelection = true;
427
+ }
424
428
  $input
425
429
  .removeAttr('required')
426
430
  .removeAttr('class')
@@ -1285,8 +1289,8 @@ $.fn.dropdown = function(parameters) {
1285
1289
  },
1286
1290
  select: {
1287
1291
  mutation: function(mutations) {
1288
- module.debug('<select> modified, recreating menu');
1289
1292
  if(module.is.selectMutation(mutations)) {
1293
+ module.debug('<select> modified, recreating menu');
1290
1294
  module.disconnect.selectObserver();
1291
1295
  module.refresh();
1292
1296
  module.setup.select();
@@ -2320,7 +2324,7 @@ $.fn.dropdown = function(parameters) {
2320
2324
  module.error(error.noStorage);
2321
2325
  return;
2322
2326
  }
2323
- name = sessionStorage.getItem(value);
2327
+ name = sessionStorage.getItem(value + elementNamespace);
2324
2328
  return (name !== undefined)
2325
2329
  ? name
2326
2330
  : false
@@ -2364,7 +2368,7 @@ $.fn.dropdown = function(parameters) {
2364
2368
  return;
2365
2369
  }
2366
2370
  module.verbose('Saving remote data to session storage', value, name);
2367
- sessionStorage.setItem(value, name);
2371
+ sessionStorage.setItem(value + elementNamespace, name);
2368
2372
  }
2369
2373
  },
2370
2374
 
@@ -3069,18 +3073,10 @@ $.fn.dropdown = function(parameters) {
3069
3073
  return;
3070
3074
  }
3071
3075
  // temporarily disconnect observer
3072
- if(selectObserver) {
3073
- selectObserver.disconnect();
3074
- module.verbose('Temporarily disconnecting mutation observer');
3075
- }
3076
+ module.disconnect.selectObserver();
3076
3077
  $option.remove();
3077
3078
  module.verbose('Removing user addition as an <option>', escapedValue);
3078
- if(selectObserver) {
3079
- selectObserver.observe($input[0], {
3080
- childList : true,
3081
- subtree : true
3082
- });
3083
- }
3079
+ module.observe.select();
3084
3080
  },
3085
3081
  message: function() {
3086
3082
  $menu.children(selector.message).remove();
@@ -3445,7 +3441,7 @@ $.fn.dropdown = function(parameters) {
3445
3441
  selectChanged = false
3446
3442
  ;
3447
3443
  $.each(mutations, function(index, mutation) {
3448
- if($(mutation.target).is('select') || $(mutation.addedNodes).is('select')) {
3444
+ if($(mutation.target).is('select, option, optgroup') || $(mutation.addedNodes).is('select')) {
3449
3445
  selectChanged = true;
3450
3446
  return false;
3451
3447
  }
@@ -3990,7 +3986,7 @@ $.fn.dropdown.settings = {
3990
3986
  keepOnScreen : true, // Whether dropdown should check whether it is on screen before showing
3991
3987
 
3992
3988
  match : 'both', // what to match against with search selection (both, text, or label)
3993
- fullTextSearch : false, // search anywhere in value (set to 'exact' to require exact matches)
3989
+ fullTextSearch : 'exact', // search anywhere in value (set to 'exact' to require exact matches)
3994
3990
  ignoreDiacritics : false, // match results also if they contain diacritics of the same base character (for example searching for "a" will also match "á" or "â" or "à", etc...)
3995
3991
  hideDividers : false, // Whether to hide any divider elements (specified in selector.divider) that are sibling to any items when searched (set to true will hide all dividers, set to 'empty' will hide them when they are not followed by a visible item)
3996
3992
 
@@ -3998,7 +3994,7 @@ $.fn.dropdown.settings = {
3998
3994
  preserveHTML : true, // preserve html when selecting value
3999
3995
  sortSelect : false, // sort selection on init
4000
3996
 
4001
- forceSelection : true, // force a choice on blur with search selection
3997
+ forceSelection : false, // force a choice on blur with search selection
4002
3998
 
4003
3999
  allowAdditions : false, // whether multiple select should allow user added values
4004
4000
  ignoreCase : false, // whether to consider case sensitivity when creating labels
@@ -4009,7 +4005,7 @@ $.fn.dropdown.settings = {
4009
4005
  useLabels : true, // whether multiple select should filter currently active selections from choices
4010
4006
  delimiter : ',', // when multiselect uses normal <input> the values will be delimited with this character
4011
4007
 
4012
- showOnFocus : true, // show menu on focus
4008
+ showOnFocus : false, // show menu on focus
4013
4009
  allowReselection : false, // whether current value should trigger callbacks when reselected
4014
4010
  allowTab : true, // add tabindex to element
4015
4011
  allowCategorySelection : false, // allow elements with sub-menus to be selected
@@ -367,9 +367,15 @@
367
367
  .ui.dropdown.icon.button > .dropdown.icon {
368
368
  margin: 0;
369
369
  }
370
- .ui.button.dropdown .menu {
370
+ .ui.dropdown.button .menu {
371
371
  min-width: 100%;
372
372
  }
373
+ .ui.dropdown.button:not(.pointing):not(.floating).active {
374
+ border-radius: @borderRadius @borderRadius 0 0;
375
+ }
376
+ .ui.dropdown.button:not(.pointing):not(.floating) > .menu {
377
+ border-radius: 0 0 @borderRadius @borderRadius;
378
+ }
373
379
  }
374
380
 
375
381
 
@@ -1073,12 +1079,12 @@ select.ui.dropdown {
1073
1079
  display: none !important;
1074
1080
  }
1075
1081
 
1076
- & when (@variationDropdownStates) {
1082
+ & when not (@variationDropdownStates = false) {
1077
1083
  /*--------------------
1078
1084
  States
1079
1085
  ----------------------*/
1080
- each(@formStates, {
1081
- @state: replace(@key, '@', '');
1086
+ each(@variationDropdownStates, {
1087
+ @state: @value;
1082
1088
  @c: @formStates[@@state][dropdownLabelColor];
1083
1089
  @bdc: @formStates[@@state][borderColor];
1084
1090
 
@@ -1228,7 +1234,6 @@ select.ui.dropdown {
1228
1234
  top: auto;
1229
1235
  bottom: 100%;
1230
1236
  box-shadow: @upwardMenuBoxShadow;
1231
- border-radius: @upwardMenuBorderRadius;
1232
1237
  }
1233
1238
 
1234
1239
  /* Upward Sub Menu */
@@ -1237,42 +1242,54 @@ select.ui.dropdown {
1237
1242
  bottom: 0 !important;
1238
1243
  }
1239
1244
 
1240
- /* Active Upward */
1241
- .ui.simple.upward.active.dropdown,
1242
- .ui.simple.upward.dropdown:hover {
1243
- border-radius: @borderRadius @borderRadius 0 0 !important;
1244
- }
1245
- .ui.upward.dropdown.button:not(.pointing):not(.floating).active {
1246
- border-radius: @borderRadius @borderRadius 0 0;
1245
+ & when (@variationDropdownSimple) {
1246
+ /* Active Upward */
1247
+ .ui.simple.upward.active.dropdown,
1248
+ .ui.simple.upward.dropdown:hover {
1249
+ border-radius: @borderRadius @borderRadius 0 0 !important;
1250
+ }
1247
1251
  }
1248
1252
 
1249
- /* Selection */
1250
- .ui.upward.selection.dropdown .menu {
1251
- border-top-width: @menuBorderWidth !important;
1252
- border-bottom-width: 0 !important;
1253
- box-shadow: @upwardSelectionMenuBoxShadow;
1254
- }
1255
- .ui.upward.selection.dropdown:hover {
1256
- box-shadow: @upwardSelectionHoverBoxShadow;
1253
+ & when (@variationDropdownButton) {
1254
+ /* Button */
1255
+ .ui.upward.dropdown.button:not(.pointing):not(.floating).active {
1256
+ border-radius: 0 0 @borderRadius @borderRadius;
1257
+ }
1258
+ .ui.upward.dropdown.button:not(.pointing):not(.floating) > .menu {
1259
+ border-radius: @borderRadius @borderRadius 0 0;
1260
+ }
1257
1261
  }
1258
1262
 
1259
- /* Active Upward */
1260
- .ui.active.upward.selection.dropdown {
1261
- border-radius: @upwardSelectionVisibleBorderRadius !important;
1262
- }
1263
+ & when (@variationDropdownSelection) {
1264
+ /* Selection */
1265
+ .ui.upward.selection.dropdown .menu {
1266
+ border-top-width: @menuBorderWidth !important;
1267
+ border-bottom-width: 0 !important;
1268
+ box-shadow: @upwardSelectionMenuBoxShadow;
1269
+ border-radius: @upwardSelectionMenuBorderRadius;
1270
+ }
1271
+ .ui.upward.selection.dropdown:hover {
1272
+ box-shadow: @upwardSelectionHoverBoxShadow;
1273
+ }
1263
1274
 
1264
- /* Visible Upward */
1265
- .ui.upward.selection.dropdown.visible {
1266
- box-shadow: @upwardSelectionVisibleBoxShadow;
1267
- border-radius: @upwardSelectionVisibleBorderRadius !important;
1268
- }
1275
+ /* Active Upward */
1276
+ .ui.active.upward.selection.dropdown {
1277
+ border-radius: @upwardSelectionVisibleBorderRadius !important;
1278
+ }
1269
1279
 
1270
- /* Visible Hover Upward */
1271
- .ui.upward.active.selection.dropdown:hover {
1272
- box-shadow: @upwardSelectionActiveHoverBoxShadow;
1273
- }
1274
- .ui.upward.active.selection.dropdown:hover .menu {
1275
- box-shadow: @upwardSelectionActiveHoverMenuBoxShadow;
1280
+ /* Visible Upward */
1281
+ .ui.upward.selection.dropdown.visible {
1282
+ box-shadow: @upwardSelectionVisibleBoxShadow;
1283
+ border-radius: @upwardSelectionVisibleBorderRadius !important;
1284
+ }
1285
+
1286
+ /* Visible Hover Upward */
1287
+ .ui.upward.active.selection.dropdown:hover {
1288
+ box-shadow: @upwardSelectionActiveHoverBoxShadow;
1289
+ }
1290
+ .ui.upward.active.selection.dropdown:hover .menu {
1291
+ box-shadow: @upwardSelectionActiveHoverMenuBoxShadow;
1292
+ }
1276
1293
  }
1277
1294
  }
1278
1295
 
@@ -1378,23 +1395,25 @@ select.ui.dropdown {
1378
1395
  }
1379
1396
  }
1380
1397
 
1381
- /*--------------
1382
- Columnar
1383
- ---------------*/
1384
- .ui.column.dropdown > .menu {
1385
- flex-wrap:wrap;
1386
- }
1387
- .ui.dropdown[class*="two column"] > .menu > .item {
1388
- width: 50%;
1389
- }
1390
- .ui.dropdown[class*="three column"] > .menu > .item {
1391
- width: 33%;
1392
- }
1393
- .ui.dropdown[class*="four column"] > .menu > .item {
1394
- width: 25%;
1395
- }
1396
- .ui.dropdown[class*="five column"] > .menu > .item {
1397
- width: 20%;
1398
+ & when (@variationDropdownColumnar) {
1399
+ /*--------------
1400
+ Columnar
1401
+ ---------------*/
1402
+ .ui.column.dropdown > .menu {
1403
+ flex-wrap: wrap;
1404
+ }
1405
+ .ui.dropdown[class*="two column"] > .menu > .item {
1406
+ width: 50%;
1407
+ }
1408
+ .ui.dropdown[class*="three column"] > .menu > .item {
1409
+ width: 33%;
1410
+ }
1411
+ .ui.dropdown[class*="four column"] > .menu > .item {
1412
+ width: 25%;
1413
+ }
1414
+ .ui.dropdown[class*="five column"] > .menu > .item {
1415
+ width: 20%;
1416
+ }
1398
1417
  }
1399
1418
 
1400
1419
  & when (@variationDropdownSimple) {
@@ -1895,21 +1914,34 @@ select.ui.dropdown {
1895
1914
  }
1896
1915
 
1897
1916
  /* Scrollbars */
1898
- .ui.dropdown .inverted.menu::-webkit-scrollbar-track,
1899
- .ui.inverted.dropdown .menu::-webkit-scrollbar-track {
1900
- background: @trackInvertedBackground;
1901
- }
1902
- .ui.dropdown .inverted.menu::-webkit-scrollbar-thumb,
1903
- .ui.inverted.dropdown .menu::-webkit-scrollbar-thumb {
1904
- background: @thumbInvertedBackground;
1905
- }
1906
- .ui.dropdown .inverted.menu::-webkit-scrollbar-thumb:window-inactive,
1907
- .ui.inverted.dropdown .menu::-webkit-scrollbar-thumb:window-inactive {
1908
- background: @thumbInvertedInactiveBackground;
1909
- }
1910
- .ui.dropdown .inverted.menu::-webkit-scrollbar-thumb:hover,
1911
- .ui.inverted.dropdown .menu::-webkit-scrollbar-thumb:hover {
1912
- background: @thumbInvertedHoverBackground;
1917
+ & when (@useCustomScrollbars) {
1918
+ .ui.dropdown .inverted.menu::-webkit-scrollbar-track,
1919
+ .ui.inverted.dropdown .menu::-webkit-scrollbar-track {
1920
+ background: @trackInvertedBackground;
1921
+ }
1922
+ .ui.dropdown .inverted.menu::-webkit-scrollbar-thumb,
1923
+ .ui.inverted.dropdown .menu::-webkit-scrollbar-thumb {
1924
+ background: @thumbInvertedBackground;
1925
+ }
1926
+ .ui.dropdown .inverted.menu::-webkit-scrollbar-thumb:window-inactive,
1927
+ .ui.inverted.dropdown .menu::-webkit-scrollbar-thumb:window-inactive {
1928
+ background: @thumbInvertedInactiveBackground;
1929
+ }
1930
+ .ui.dropdown .inverted.menu::-webkit-scrollbar-thumb:hover,
1931
+ .ui.inverted.dropdown .menu::-webkit-scrollbar-thumb:hover {
1932
+ background: @thumbInvertedHoverBackground;
1933
+ }
1934
+ .ui.dropdown .inverted.menu,
1935
+ .ui.inverted.dropdown .menu {
1936
+ /* IE11 */
1937
+ scrollbar-face-color: @thumbInvertedBackgroundHex;
1938
+ scrollbar-shadow-color: @thumbInvertedBackgroundHex;
1939
+ scrollbar-track-color: @trackInvertedBackgroundHex;
1940
+ scrollbar-arrow-color: @trackInvertedBackgroundHex;
1941
+
1942
+ /* firefox : first color thumb, second track */
1943
+ scrollbar-color: @thumbInvertedBackground @trackInvertedBackground;
1944
+ }
1913
1945
  }
1914
1946
  & when (@variationDropdownPointing) {
1915
1947
  .ui.pointing.dropdown > .inverted.menu:after,