fomantic-ui 2.9.4-beta.3 → 2.9.4-beta.30

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 (236) hide show
  1. package/.all-contributorsrc +20 -1
  2. package/.eslintrc.js +17 -0
  3. package/.github/workflows/ci.yml +5 -5
  4. package/.github/workflows/nightly.yml +1 -1
  5. package/.github/workflows/release.yml +1 -1
  6. package/CONTRIBUTORS.md +2 -0
  7. package/dist/components/accordion.css +1 -1
  8. package/dist/components/accordion.js +4 -2
  9. package/dist/components/accordion.min.css +1 -1
  10. package/dist/components/accordion.min.js +2 -2
  11. package/dist/components/ad.css +1 -1
  12. package/dist/components/ad.min.css +1 -1
  13. package/dist/components/api.js +7 -3
  14. package/dist/components/api.min.js +2 -2
  15. package/dist/components/breadcrumb.css +1 -1
  16. package/dist/components/breadcrumb.min.css +1 -1
  17. package/dist/components/button.css +19 -3
  18. package/dist/components/button.min.css +2 -2
  19. package/dist/components/calendar.css +1 -1
  20. package/dist/components/calendar.js +4 -2
  21. package/dist/components/calendar.min.css +1 -1
  22. package/dist/components/calendar.min.js +2 -2
  23. package/dist/components/card.css +1 -1
  24. package/dist/components/card.min.css +1 -1
  25. package/dist/components/checkbox.css +1 -1
  26. package/dist/components/checkbox.js +4 -2
  27. package/dist/components/checkbox.min.css +1 -1
  28. package/dist/components/checkbox.min.js +2 -2
  29. package/dist/components/comment.css +1 -1
  30. package/dist/components/comment.min.css +1 -1
  31. package/dist/components/container.css +1 -1
  32. package/dist/components/container.min.css +1 -1
  33. package/dist/components/dimmer.css +1 -1
  34. package/dist/components/dimmer.js +4 -2
  35. package/dist/components/dimmer.min.css +1 -1
  36. package/dist/components/dimmer.min.js +2 -2
  37. package/dist/components/divider.css +1 -1
  38. package/dist/components/divider.min.css +1 -1
  39. package/dist/components/dropdown.css +15 -17
  40. package/dist/components/dropdown.js +18 -8
  41. package/dist/components/dropdown.min.css +2 -2
  42. package/dist/components/dropdown.min.js +3 -3
  43. package/dist/components/embed.css +1 -1
  44. package/dist/components/embed.js +4 -2
  45. package/dist/components/embed.min.css +1 -1
  46. package/dist/components/embed.min.js +2 -2
  47. package/dist/components/emoji.css +1 -1
  48. package/dist/components/emoji.min.css +1 -1
  49. package/dist/components/feed.css +1 -1
  50. package/dist/components/feed.min.css +1 -1
  51. package/dist/components/flag.css +1 -1
  52. package/dist/components/flag.min.css +1 -1
  53. package/dist/components/flyout.css +1 -1
  54. package/dist/components/flyout.js +4 -2
  55. package/dist/components/flyout.min.css +1 -1
  56. package/dist/components/flyout.min.js +2 -2
  57. package/dist/components/form.css +15 -5
  58. package/dist/components/form.js +42 -17
  59. package/dist/components/form.min.css +2 -2
  60. package/dist/components/form.min.js +3 -3
  61. package/dist/components/grid.css +5 -5
  62. package/dist/components/grid.min.css +2 -2
  63. package/dist/components/header.css +4 -1
  64. package/dist/components/header.min.css +2 -2
  65. package/dist/components/icon.css +1 -1
  66. package/dist/components/icon.min.css +1 -1
  67. package/dist/components/image.css +1 -1
  68. package/dist/components/image.min.css +1 -1
  69. package/dist/components/input.css +30 -10
  70. package/dist/components/input.min.css +2 -2
  71. package/dist/components/item.css +1 -1
  72. package/dist/components/item.min.css +1 -1
  73. package/dist/components/label.css +1 -2
  74. package/dist/components/label.min.css +2 -2
  75. package/dist/components/list.css +1 -1
  76. package/dist/components/list.min.css +1 -1
  77. package/dist/components/loader.css +1 -1
  78. package/dist/components/loader.min.css +1 -1
  79. package/dist/components/menu.css +1 -2
  80. package/dist/components/menu.min.css +2 -2
  81. package/dist/components/message.css +1 -1
  82. package/dist/components/message.min.css +1 -1
  83. package/dist/components/modal.css +1 -1
  84. package/dist/components/modal.js +7 -3
  85. package/dist/components/modal.min.css +1 -1
  86. package/dist/components/modal.min.js +2 -2
  87. package/dist/components/nag.css +1 -1
  88. package/dist/components/nag.js +7 -3
  89. package/dist/components/nag.min.css +1 -1
  90. package/dist/components/nag.min.js +2 -2
  91. package/dist/components/placeholder.css +1 -1
  92. package/dist/components/placeholder.min.css +1 -1
  93. package/dist/components/popup.css +1 -2
  94. package/dist/components/popup.js +10 -4
  95. package/dist/components/popup.min.css +2 -2
  96. package/dist/components/popup.min.js +2 -2
  97. package/dist/components/progress.css +1 -1
  98. package/dist/components/progress.js +4 -2
  99. package/dist/components/progress.min.css +1 -1
  100. package/dist/components/progress.min.js +2 -2
  101. package/dist/components/rail.css +1 -1
  102. package/dist/components/rail.min.css +1 -1
  103. package/dist/components/rating.css +1 -1
  104. package/dist/components/rating.js +4 -2
  105. package/dist/components/rating.min.css +1 -1
  106. package/dist/components/rating.min.js +2 -2
  107. package/dist/components/reset.css +1 -1
  108. package/dist/components/reset.min.css +1 -1
  109. package/dist/components/reveal.css +1 -1
  110. package/dist/components/reveal.min.css +1 -1
  111. package/dist/components/search.css +1 -1
  112. package/dist/components/search.js +7 -3
  113. package/dist/components/search.min.css +1 -1
  114. package/dist/components/search.min.js +2 -2
  115. package/dist/components/segment.css +1 -1
  116. package/dist/components/segment.min.css +1 -1
  117. package/dist/components/shape.css +1 -1
  118. package/dist/components/shape.js +4 -2
  119. package/dist/components/shape.min.css +1 -1
  120. package/dist/components/shape.min.js +2 -2
  121. package/dist/components/sidebar.css +1 -1
  122. package/dist/components/sidebar.js +4 -2
  123. package/dist/components/sidebar.min.css +1 -1
  124. package/dist/components/sidebar.min.js +2 -2
  125. package/dist/components/site.css +1 -1
  126. package/dist/components/site.js +4 -2
  127. package/dist/components/site.min.css +1 -1
  128. package/dist/components/site.min.js +2 -2
  129. package/dist/components/slider.css +1 -1
  130. package/dist/components/slider.js +4 -2
  131. package/dist/components/slider.min.css +1 -1
  132. package/dist/components/slider.min.js +2 -2
  133. package/dist/components/state.js +4 -2
  134. package/dist/components/state.min.js +2 -2
  135. package/dist/components/statistic.css +1 -1
  136. package/dist/components/statistic.min.css +1 -1
  137. package/dist/components/step.css +1 -1
  138. package/dist/components/step.min.css +1 -1
  139. package/dist/components/sticky.css +1 -1
  140. package/dist/components/sticky.js +4 -2
  141. package/dist/components/sticky.min.css +1 -1
  142. package/dist/components/sticky.min.js +2 -2
  143. package/dist/components/tab.css +1 -1
  144. package/dist/components/tab.js +4 -2
  145. package/dist/components/tab.min.css +1 -1
  146. package/dist/components/tab.min.js +2 -2
  147. package/dist/components/table.css +1 -1
  148. package/dist/components/table.min.css +1 -1
  149. package/dist/components/text.css +1 -1
  150. package/dist/components/text.min.css +1 -1
  151. package/dist/components/toast.css +1 -1
  152. package/dist/components/toast.js +4 -2
  153. package/dist/components/toast.min.css +1 -1
  154. package/dist/components/toast.min.js +2 -2
  155. package/dist/components/transition.css +1 -1
  156. package/dist/components/transition.js +7 -3
  157. package/dist/components/transition.min.css +1 -1
  158. package/dist/components/transition.min.js +2 -2
  159. package/dist/components/visibility.js +4 -2
  160. package/dist/components/visibility.min.js +2 -2
  161. package/dist/semantic.css +143 -92
  162. package/dist/semantic.js +175 -80
  163. package/dist/semantic.min.css +3 -3
  164. package/dist/semantic.min.js +3 -3
  165. package/dist/themes/basic/assets/fonts/LICENSE.txt +91 -0
  166. package/dist/themes/default/assets/fonts/LICENSE_Lato.txt +94 -0
  167. package/dist/themes/default/assets/fonts/LICENSE_icons.txt +165 -0
  168. package/dist/themes/github/assets/fonts/LICENSE.txt +94 -0
  169. package/dist/themes/material/assets/fonts/LICENSE.txt +202 -0
  170. package/package.json +3 -3
  171. package/src/definitions/behaviors/api.js +6 -2
  172. package/src/definitions/behaviors/form.js +41 -16
  173. package/src/definitions/behaviors/state.js +3 -1
  174. package/src/definitions/behaviors/visibility.js +3 -1
  175. package/src/definitions/collections/form.less +14 -4
  176. package/src/definitions/collections/grid.less +4 -4
  177. package/src/definitions/elements/button.less +25 -3
  178. package/src/definitions/elements/header.less +5 -0
  179. package/src/definitions/elements/input.less +14 -6
  180. package/src/definitions/globals/site.js +3 -1
  181. package/src/definitions/modules/accordion.js +3 -1
  182. package/src/definitions/modules/calendar.js +3 -1
  183. package/src/definitions/modules/checkbox.js +3 -1
  184. package/src/definitions/modules/dimmer.js +3 -1
  185. package/src/definitions/modules/dropdown.js +17 -7
  186. package/src/definitions/modules/dropdown.less +2 -2
  187. package/src/definitions/modules/embed.js +3 -1
  188. package/src/definitions/modules/flyout.js +3 -1
  189. package/src/definitions/modules/modal.js +6 -2
  190. package/src/definitions/modules/nag.js +6 -2
  191. package/src/definitions/modules/popup.js +9 -3
  192. package/src/definitions/modules/progress.js +3 -1
  193. package/src/definitions/modules/rating.js +3 -1
  194. package/src/definitions/modules/search.js +6 -2
  195. package/src/definitions/modules/shape.js +3 -1
  196. package/src/definitions/modules/sidebar.js +3 -1
  197. package/src/definitions/modules/slider.js +3 -1
  198. package/src/definitions/modules/sticky.js +3 -1
  199. package/src/definitions/modules/tab.js +3 -1
  200. package/src/definitions/modules/toast.js +3 -1
  201. package/src/definitions/modules/transition.js +6 -2
  202. package/src/themes/basic/assets/fonts/LICENSE.txt +91 -0
  203. package/src/themes/default/assets/fonts/LICENSE_Lato.txt +94 -0
  204. package/src/themes/default/assets/fonts/LICENSE_icons.txt +165 -0
  205. package/src/themes/default/collections/form.variables +1 -0
  206. package/src/themes/default/elements/button.variables +2 -0
  207. package/src/themes/default/globals/variation.variables +1 -0
  208. package/src/themes/github/assets/fonts/LICENSE.txt +94 -0
  209. package/src/themes/material/assets/fonts/LICENSE.txt +202 -0
  210. package/types/fomantic-ui-accordion.d.ts +1 -1
  211. package/types/fomantic-ui-api.d.ts +9 -3
  212. package/types/fomantic-ui-calendar.d.ts +93 -8
  213. package/types/fomantic-ui-checkbox.d.ts +14 -4
  214. package/types/fomantic-ui-dimmer.d.ts +1 -1
  215. package/types/fomantic-ui-dropdown.d.ts +30 -35
  216. package/types/fomantic-ui-embed.d.ts +1 -1
  217. package/types/fomantic-ui-flyout.d.ts +24 -10
  218. package/types/fomantic-ui-form.d.ts +123 -15
  219. package/types/fomantic-ui-modal.d.ts +75 -5
  220. package/types/fomantic-ui-nag.d.ts +4 -4
  221. package/types/fomantic-ui-popup.d.ts +11 -11
  222. package/types/fomantic-ui-progress.d.ts +12 -6
  223. package/types/fomantic-ui-rating.d.ts +1 -1
  224. package/types/fomantic-ui-search.d.ts +31 -13
  225. package/types/fomantic-ui-shape.d.ts +2 -2
  226. package/types/fomantic-ui-sidebar.d.ts +4 -4
  227. package/types/fomantic-ui-slider.d.ts +1 -1
  228. package/types/fomantic-ui-sticky.d.ts +1 -1
  229. package/types/fomantic-ui-tab.d.ts +5 -5
  230. package/types/fomantic-ui-toast.d.ts +7 -2
  231. package/types/fomantic-ui-transition.d.ts +29 -1
  232. package/types/fomantic-ui-visibility.d.ts +3 -3
  233. package/types/index.d.ts +25 -25
  234. package/types/tests.ts +188 -0
  235. package/types/tsconfig.json +1 -1
  236. package/types/fomantic-ui-tests.ts +0 -25
@@ -647,7 +647,9 @@
647
647
  module.debug('Adding error state');
648
648
  module.set.error();
649
649
  if (module.should.removeError()) {
650
- setTimeout(function () { module.remove.error(); }, settings.errorDuration);
650
+ setTimeout(function () {
651
+ module.remove.error();
652
+ }, settings.errorDuration);
651
653
  }
652
654
  }
653
655
  module.debug('API Request failed', errorMessage, xhr);
@@ -971,7 +973,9 @@
971
973
  });
972
974
  }
973
975
  clearTimeout(module.performance.timer);
974
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
976
+ module.performance.timer = setTimeout(function () {
977
+ module.performance.display();
978
+ }, 500);
975
979
  },
976
980
  display: function () {
977
981
  var
@@ -538,6 +538,13 @@
538
538
  fullFields[name].rules.push({ type: rule });
539
539
  });
540
540
  }
541
+
542
+ $.each(fullFields[name].rules, function (index, rule) {
543
+ var ruleName = module.get.ruleName(rule);
544
+ if (ruleName === 'empty') {
545
+ module.warn('*** DEPRECATED *** : Rule "empty" for field "' + name + '" will be removed in a future version. -> Use "notEmpty" rule instead.');
546
+ }
547
+ });
541
548
  });
542
549
 
543
550
  return fullFields;
@@ -551,9 +558,10 @@
551
558
  ancillary = module.get.ancillaryValue(rule),
552
559
  $field = module.get.field(field.identifier),
553
560
  value = $field.val(),
554
- prompt = isFunction(rule.prompt)
555
- ? rule.prompt(value)
556
- : rule.prompt || settings.prompt[ruleName] || settings.text.unspecifiedRule,
561
+ promptCheck = rule.prompt || settings.prompt[ruleName] || settings.text.unspecifiedRule,
562
+ prompt = String(isFunction(promptCheck)
563
+ ? promptCheck.call($field[0], value)
564
+ : promptCheck),
557
565
  requiresValue = prompt.search('{value}') !== -1,
558
566
  requiresName = prompt.search('{name}') !== -1,
559
567
  parts,
@@ -591,10 +599,10 @@
591
599
  },
592
600
  settings: function () {
593
601
  if ($.isPlainObject(parameters)) {
594
- if (parameters.fields) {
595
- parameters.fields = module.get.fieldsFromShorthand(parameters.fields);
596
- }
597
602
  settings = $.extend(true, {}, $.fn.form.settings, parameters);
603
+ if (settings.fields) {
604
+ settings.fields = module.get.fieldsFromShorthand(settings.fields);
605
+ }
598
606
  validation = $.extend(true, {}, $.fn.form.settings.defaults, settings.fields);
599
607
  module.verbose('Extending settings', validation, settings);
600
608
  } else {
@@ -711,7 +719,7 @@
711
719
  var
712
720
  $field = $(field),
713
721
  $calendar = $field.closest(selector.uiCalendar),
714
- name = $field.prop('name'),
722
+ name = $field.prop('name') || $field.prop('id'),
715
723
  value = $field.val(),
716
724
  isCheckbox = $field.is(selector.checkbox),
717
725
  isRadio = $field.is(selector.radio),
@@ -1237,20 +1245,20 @@
1237
1245
  isRequired = $el.prop('required') || $elGroup.hasClass(className.required) || $elGroup.parent().hasClass(className.required),
1238
1246
  isDisabled = $el.is(':disabled') || $elGroup.hasClass(className.disabled) || $elGroup.parent().hasClass(className.disabled),
1239
1247
  validation = module.get.validation($el),
1240
- hasEmptyRule = validation
1248
+ hasNotEmptyRule = validation
1241
1249
  ? $.grep(validation.rules, function (rule) {
1242
- return rule.type === 'empty';
1243
- }) !== 0
1250
+ return ['notEmpty', 'checked', 'empty'].indexOf(rule.type) >= 0;
1251
+ }).length > 0
1244
1252
  : false,
1245
1253
  identifier = module.get.identifier(validation, $el)
1246
1254
  ;
1247
- if (isRequired && !isDisabled && !hasEmptyRule && identifier !== undefined) {
1255
+ if (isRequired && !isDisabled && !hasNotEmptyRule && identifier !== undefined) {
1248
1256
  if (isCheckbox) {
1249
1257
  module.verbose("Adding 'checked' rule on field", identifier);
1250
1258
  module.add.rule(identifier, 'checked');
1251
1259
  } else {
1252
- module.verbose("Adding 'empty' rule on field", identifier);
1253
- module.add.rule(identifier, 'empty');
1260
+ module.verbose("Adding 'notEmpty' rule on field", identifier);
1261
+ module.add.rule(identifier, 'notEmpty');
1254
1262
  }
1255
1263
  }
1256
1264
  });
@@ -1349,13 +1357,14 @@
1349
1357
  fieldErrors = [],
1350
1358
  isDisabled = $field.filter(':not(:disabled)').length === 0,
1351
1359
  validationMessage = $field[0].validationMessage,
1360
+ noNativeValidation = field.noNativeValidation || settings.noNativeValidation || $field.filter('[formnovalidate],[novalidate]').length > 0 || $module.filter('[novalidate]').length > 0,
1352
1361
  errorLimit
1353
1362
  ;
1354
1363
  if (!field.identifier) {
1355
1364
  module.debug('Using field name as identifier', identifier);
1356
1365
  field.identifier = identifier;
1357
1366
  }
1358
- if (validationMessage) {
1367
+ if (validationMessage && !noNativeValidation) {
1359
1368
  module.debug('Field is natively invalid', identifier);
1360
1369
  fieldErrors.push(validationMessage);
1361
1370
  fieldValid = false;
@@ -1491,6 +1500,12 @@
1491
1500
  module.error.apply(console, arguments);
1492
1501
  }
1493
1502
  },
1503
+ warn: function () {
1504
+ if (!settings.silent) {
1505
+ module.warn = Function.prototype.bind.call(console.warn, console, settings.name + ':');
1506
+ module.warn.apply(console, arguments);
1507
+ }
1508
+ },
1494
1509
  performance: {
1495
1510
  log: function (message) {
1496
1511
  var
@@ -1511,7 +1526,9 @@
1511
1526
  });
1512
1527
  }
1513
1528
  clearTimeout(module.performance.timer);
1514
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1529
+ module.performance.timer = setTimeout(function () {
1530
+ module.performance.display();
1531
+ }, 500);
1515
1532
  },
1516
1533
  display: function () {
1517
1534
  var
@@ -1605,6 +1622,7 @@
1605
1622
  name: 'Form',
1606
1623
  namespace: 'form',
1607
1624
 
1625
+ silent: false,
1608
1626
  debug: false,
1609
1627
  verbose: false,
1610
1628
  performance: true,
@@ -1627,6 +1645,7 @@
1627
1645
  errorFocus: true,
1628
1646
  dateHandling: 'date', // 'date', 'input', 'formatter'
1629
1647
  errorLimit: 0,
1648
+ noNativeValidation: false,
1630
1649
 
1631
1650
  onValid: function () {},
1632
1651
  onInvalid: function () {},
@@ -1669,6 +1688,7 @@
1669
1688
  maxValue: '{name} must have a maximum value of {ruleValue}',
1670
1689
  minValue: '{name} must have a minimum value of {ruleValue}',
1671
1690
  empty: '{name} must have a value',
1691
+ notEmpty: '{name} must have a value',
1672
1692
  checked: '{name} must be checked',
1673
1693
  email: '{name} must be a valid e-mail',
1674
1694
  url: '{name} must be a valid url',
@@ -1801,10 +1821,15 @@
1801
1821
  rules: {
1802
1822
 
1803
1823
  // is not empty or blank string
1804
- empty: function (value) {
1824
+ notEmpty: function (value) {
1805
1825
  return !(value === undefined || value === '' || (Array.isArray(value) && value.length === 0));
1806
1826
  },
1807
1827
 
1828
+ /* Deprecated */
1829
+ empty: function (value) {
1830
+ return $.fn.form.settings.rules.notEmpty(value);
1831
+ },
1832
+
1808
1833
  // checkbox checked
1809
1834
  checked: function () {
1810
1835
  return $(this).filter(':checked').length > 0;
@@ -482,7 +482,9 @@
482
482
  });
483
483
  }
484
484
  clearTimeout(module.performance.timer);
485
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
485
+ module.performance.timer = setTimeout(function () {
486
+ module.performance.display();
487
+ }, 500);
486
488
  },
487
489
  display: function () {
488
490
  var
@@ -1088,7 +1088,9 @@
1088
1088
  });
1089
1089
  }
1090
1090
  clearTimeout(module.performance.timer);
1091
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1091
+ module.performance.timer = setTimeout(function () {
1092
+ module.performance.display();
1093
+ }, 500);
1092
1094
  },
1093
1095
  display: function () {
1094
1096
  var
@@ -162,6 +162,11 @@
162
162
  font-family: @inputFont;
163
163
  line-height: @textAreaLineHeight;
164
164
  resize: @textAreaResize;
165
+ min-height: @actionTextareaMinHeight;
166
+ }
167
+ .ui.input > textarea {
168
+ flex: 1 1 auto;
169
+ max-width: 100%;
165
170
  }
166
171
  .ui.form textarea:not([rows]) {
167
172
  height: @textAreaHeight;
@@ -291,8 +296,10 @@
291
296
 
292
297
  /* Auto Input */
293
298
  .ui.form .fields .field .ui.input input,
294
- .ui.form .field .ui.input input {
295
- width: auto;
299
+ .ui.form .fields .field .ui.input textarea,
300
+ .ui.form .field .ui.input input,
301
+ .ui.form .field .ui.input textarea {
302
+ width: 100%;
296
303
  }
297
304
 
298
305
  & when (@variationFormEqualWidth) or (@variationFormWide) {
@@ -441,7 +448,8 @@
441
448
  input[type="text"]:focus,
442
449
  input[type="file"]:focus,
443
450
  input[type="url"]:focus,
444
- input[type="week"]:focus {
451
+ input[type="week"]:focus,
452
+ textarea:focus {
445
453
  border-top-right-radius: 0;
446
454
  border-bottom-right-radius: 0;
447
455
  }
@@ -462,7 +470,8 @@
462
470
  input[type="text"],
463
471
  input[type="file"],
464
472
  input[type="url"],
465
- input[type="week"] {
473
+ input[type="week"],
474
+ textarea {
466
475
  border-bottom-left-radius: 0;
467
476
  border-top-left-radius: 0;
468
477
  }
@@ -857,6 +866,7 @@
857
866
  .ui.form .inverted.segment label,
858
867
  .ui.form .inverted.segment .ui.checkbox label,
859
868
  .ui.inverted.form .ui.checkbox label,
869
+ .ui.inverted.form .grouped.fields > label,
860
870
  .ui.inverted.form .inline.fields > label,
861
871
  .ui.inverted.form .inline.fields .field > label,
862
872
  .ui.inverted.form .inline.fields .field > p,
@@ -1723,10 +1723,10 @@
1723
1723
  border-top: none !important;
1724
1724
  }
1725
1725
  & when (@variationGridInverted) {
1726
- .ui.inverted.stackable.celled.grid > .column:not(.row),
1727
- .ui.inverted.stackable.divided.grid > .column:not(.row),
1728
- .ui.inverted.stackable.celled.grid > .row > .column,
1729
- .ui.inverted.stackable.divided.grid > .row > .column {
1726
+ .ui.ui.inverted.stackable.celled.grid > .column:not(.row),
1727
+ .ui.ui.inverted.stackable.divided.grid > .column:not(.row),
1728
+ .ui.ui.inverted.stackable.celled.grid > .row > .column,
1729
+ .ui.ui.inverted.stackable.divided.grid > .row > .column {
1730
1730
  border-top: @stackableInvertedMobileBorder;
1731
1731
  }
1732
1732
  }
@@ -885,7 +885,7 @@
885
885
  border-top: @basicGroupBorder;
886
886
  }
887
887
 
888
- .ui.basic.vertical.buttons:not(.spaced) .button:first-child {
888
+ .ui.basic.vertical.buttons:not(.spaced):not(.circular) .button:first-child {
889
889
  border-top: none;
890
890
  }
891
891
  }
@@ -1095,8 +1095,8 @@
1095
1095
  /* --------------
1096
1096
  Circular
1097
1097
  --------------- */
1098
-
1099
- .ui.circular.button {
1098
+ .ui.ui.circular.buttons .button,
1099
+ .ui.ui.ui.ui.circular.button {
1100
1100
  border-radius: @circularBorderRadius;
1101
1101
  }
1102
1102
 
@@ -1104,6 +1104,28 @@
1104
1104
  width: @circularIconWidth;
1105
1105
  vertical-align: baseline;
1106
1106
  }
1107
+
1108
+ .ui.circular.buttons:not(.vertical) .button {
1109
+ margin-right: @circularGroupMargin;
1110
+ }
1111
+
1112
+ & when (@variationButtonVertical) {
1113
+ .ui.vertical.circular.buttons .button {
1114
+ margin-bottom: @circularVerticalGroupMargin;
1115
+ }
1116
+ }
1117
+
1118
+ & when (@variationButtonBasic) {
1119
+ .ui.circular.basic.buttons {
1120
+ border: none;
1121
+ & .button {
1122
+ border: @basicGroupBorder;
1123
+ &.basic {
1124
+ border: none;
1125
+ }
1126
+ }
1127
+ }
1128
+ }
1107
1129
  }
1108
1130
 
1109
1131
  & when (@variationButtonOr) {
@@ -467,6 +467,11 @@
467
467
  .ui.bottom.attached.header {
468
468
  border-radius: 0 0 @attachedBorderRadius @attachedBorderRadius;
469
469
  }
470
+ & when (@variationHeaderSeamless) {
471
+ .ui.seamless.attached:not(.bottom).header {
472
+ border-bottom: none;
473
+ }
474
+ }
470
475
 
471
476
  /* Attached Sizes */
472
477
  .ui.attached.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
@@ -35,7 +35,7 @@
35
35
  .ui.input > input {
36
36
  margin: 0;
37
37
  max-width: 100%;
38
- flex: 1 0 auto;
38
+ flex: 1 1 auto;
39
39
  outline: none;
40
40
  -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
41
41
  text-align: @textAlign;
@@ -524,7 +524,11 @@
524
524
  .ui.form .field.@{state} > .ui.action.input:not([class*="left action"]) > input + .ui.button,
525
525
  .ui.form .field.@{state} > .ui.right.labeled.input:not([class*="corner labeled"]) > input + .ui.label,
526
526
  .ui.action.input.@{state}:not([class*="left action"]) > input + .ui.button,
527
- .ui.right.labeled.input.@{state}:not([class*="corner labeled"]) > input + .ui.label {
527
+ .ui.right.labeled.input.@{state}:not([class*="corner labeled"]) > input + .ui.label,
528
+ .ui.form .field.@{state} > .ui.action.input:not([class*="left action"]) > textarea + .ui.button,
529
+ .ui.form .field.@{state} > .ui.right.labeled.input:not([class*="corner labeled"]) > textarea + .ui.label,
530
+ .ui.action.input.@{state}:not([class*="left action"]) > textarea + .ui.button,
531
+ .ui.right.labeled.input.@{state}:not([class*="corner labeled"]) > textarea + .ui.label {
528
532
  border-right: @borderWidth solid @borderColor;
529
533
  }
530
534
  .ui.form .field.@{state} > .ui.right.labeled.input:not([class*="corner labeled"]) > .ui.label:first-child,
@@ -553,14 +557,16 @@
553
557
  }
554
558
 
555
559
  /* Input when ui Left */
556
- .ui[class*="left action"].input > input {
560
+ .ui[class*="left action"].input > input,
561
+ .ui[class*="left action"].input > textarea {
557
562
  border-top-left-radius: 0;
558
563
  border-bottom-left-radius: 0;
559
564
  border-left-color: transparent;
560
565
  }
561
566
 
562
567
  /* Input when ui Right */
563
- .ui.action.input:not([class*="left action"]) > input {
568
+ .ui.action.input:not([class*="left action"]) > input,
569
+ .ui.action.input:not([class*="left action"]) > textarea {
564
570
  border-top-right-radius: 0;
565
571
  border-bottom-right-radius: 0;
566
572
  border-right-color: transparent;
@@ -584,11 +590,13 @@
584
590
  }
585
591
 
586
592
  /* Input Focus */
587
- .ui.action.input:not([class*="left action"]) > input:focus {
593
+ .ui.action.input:not([class*="left action"]) > input:focus,
594
+ .ui.action.input:not([class*="left action"]) > textarea:focus {
588
595
  border-right-color: @focusBorderColor;
589
596
  }
590
597
 
591
- .ui.ui[class*="left action"].input > input:focus {
598
+ .ui.ui[class*="left action"].input > input:focus,
599
+ .ui.ui[class*="left action"].input > textarea:focus {
592
600
  border-left-color: @focusBorderColor;
593
601
  }
594
602
  }
@@ -292,7 +292,9 @@
292
292
  });
293
293
  }
294
294
  clearTimeout(module.performance.timer);
295
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
295
+ module.performance.timer = setTimeout(function () {
296
+ module.performance.display();
297
+ }, 500);
296
298
  },
297
299
  display: function () {
298
300
  var
@@ -438,7 +438,9 @@
438
438
  });
439
439
  }
440
440
  clearTimeout(module.performance.timer);
441
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
441
+ module.performance.timer = setTimeout(function () {
442
+ module.performance.display();
443
+ }, 500);
442
444
  },
443
445
  display: function () {
444
446
  var
@@ -1479,7 +1479,9 @@
1479
1479
  });
1480
1480
  }
1481
1481
  clearTimeout(module.performance.timer);
1482
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1482
+ module.performance.timer = setTimeout(function () {
1483
+ module.performance.display();
1484
+ }, 500);
1483
1485
  },
1484
1486
  display: function () {
1485
1487
  var
@@ -725,7 +725,9 @@
725
725
  });
726
726
  }
727
727
  clearTimeout(module.performance.timer);
728
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
728
+ module.performance.timer = setTimeout(function () {
729
+ module.performance.display();
730
+ }, 500);
729
731
  },
730
732
  display: function () {
731
733
  var
@@ -528,7 +528,9 @@
528
528
  });
529
529
  }
530
530
  clearTimeout(module.performance.timer);
531
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
531
+ module.performance.timer = setTimeout(function () {
532
+ module.performance.display();
533
+ }, 500);
532
534
  },
533
535
  display: function () {
534
536
  var
@@ -1236,7 +1236,9 @@
1236
1236
  module.set.filtered();
1237
1237
  }
1238
1238
  clearTimeout(module.timer);
1239
- module.timer = setTimeout(function () { module.search(); }, settings.delay.search);
1239
+ module.timer = setTimeout(function () {
1240
+ module.search();
1241
+ }, settings.delay.search);
1240
1242
  },
1241
1243
  label: {
1242
1244
  click: function (event) {
@@ -1413,7 +1415,9 @@
1413
1415
  module.remove.userAddition();
1414
1416
  }
1415
1417
  if (!settings.keepSearchTerm) {
1416
- module.remove.filteredItem();
1418
+ if (module.is.multiple()) {
1419
+ module.remove.filteredItem();
1420
+ }
1417
1421
  module.remove.searchTerm();
1418
1422
  }
1419
1423
  if (!module.is.visible() && $target.length > 0) {
@@ -2587,7 +2591,7 @@
2587
2591
  } else {
2588
2592
  $combo.text(text);
2589
2593
  }
2590
- } else if (settings.action === 'activate') {
2594
+ } else if (settings.action === 'activate' || isFunction(settings.action)) {
2591
2595
  if (text !== module.get.placeholderText() || isNotPlaceholder) {
2592
2596
  $text.removeClass(className.placeholder);
2593
2597
  }
@@ -2806,8 +2810,8 @@
2806
2810
  module.save.remoteData(selectedText, selectedValue);
2807
2811
  }
2808
2812
  if (settings.useLabels) {
2809
- module.add.value(selectedValue, selectedText, $selected, preventChangeTrigger);
2810
2813
  module.add.label(selectedValue, selectedText, shouldAnimate);
2814
+ module.add.value(selectedValue, selectedText, $selected, preventChangeTrigger);
2811
2815
  module.set.activeItem($selected);
2812
2816
  module.filterActive();
2813
2817
  module.select.nextAvailable($selectedItem);
@@ -3747,12 +3751,16 @@
3747
3751
  show: function () {
3748
3752
  module.verbose('Delaying show event to ensure user intent');
3749
3753
  clearTimeout(module.timer);
3750
- module.timer = setTimeout(function () { module.show(); }, settings.delay.show);
3754
+ module.timer = setTimeout(function () {
3755
+ module.show();
3756
+ }, settings.delay.show);
3751
3757
  },
3752
3758
  hide: function () {
3753
3759
  module.verbose('Delaying hide event to ensure user intent');
3754
3760
  clearTimeout(module.timer);
3755
- module.timer = setTimeout(function () { module.hide(); }, settings.delay.hide);
3761
+ module.timer = setTimeout(function () {
3762
+ module.hide();
3763
+ }, settings.delay.hide);
3756
3764
  },
3757
3765
  },
3758
3766
 
@@ -3878,7 +3886,9 @@
3878
3886
  });
3879
3887
  }
3880
3888
  clearTimeout(module.performance.timer);
3881
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
3889
+ module.performance.timer = setTimeout(function () {
3890
+ module.performance.display();
3891
+ }, 500);
3882
3892
  },
3883
3893
  display: function () {
3884
3894
  var
@@ -1853,8 +1853,8 @@ select.ui.dropdown {
1853
1853
  & when not (@variationDropdownSizes = false) {
1854
1854
  each(@variationDropdownSizes, {
1855
1855
  @s: @@value;
1856
- .ui.@{value}.dropdown,
1857
- .ui.@{value}.dropdown .menu > .item {
1856
+ .ui.ui.@{value}.dropdown,
1857
+ .ui.ui.@{value}.dropdown .menu > .item {
1858
1858
  font-size: @s;
1859
1859
  }
1860
1860
  });
@@ -440,7 +440,9 @@
440
440
  });
441
441
  }
442
442
  clearTimeout(module.performance.timer);
443
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
443
+ module.performance.timer = setTimeout(function () {
444
+ module.performance.display();
445
+ }, 500);
444
446
  },
445
447
  display: function () {
446
448
  var
@@ -1219,7 +1219,9 @@
1219
1219
  });
1220
1220
  }
1221
1221
  clearTimeout(module.performance.timer);
1222
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1222
+ module.performance.timer = setTimeout(function () {
1223
+ module.performance.display();
1224
+ }, 500);
1223
1225
  },
1224
1226
  display: function () {
1225
1227
  var
@@ -527,7 +527,9 @@
527
527
  },
528
528
  debounce: function (method, delay) {
529
529
  clearTimeout(module.timer);
530
- module.timer = setTimeout(function () { method(); }, delay);
530
+ module.timer = setTimeout(function () {
531
+ method();
532
+ }, delay);
531
533
  },
532
534
  keyboard: function (event) {
533
535
  var
@@ -1273,7 +1275,9 @@
1273
1275
  });
1274
1276
  }
1275
1277
  clearTimeout(module.performance.timer);
1276
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1278
+ module.performance.timer = setTimeout(function () {
1279
+ module.performance.display();
1280
+ }, 500);
1277
1281
  },
1278
1282
  display: function () {
1279
1283
  var
@@ -88,7 +88,9 @@
88
88
  }
89
89
 
90
90
  if (settings.displayTime > 0) {
91
- setTimeout(function () { module.hide(); }, settings.displayTime);
91
+ setTimeout(function () {
92
+ module.hide();
93
+ }, settings.displayTime);
92
94
  }
93
95
  module.show();
94
96
  },
@@ -377,7 +379,9 @@
377
379
  });
378
380
  }
379
381
  clearTimeout(module.performance.timer);
380
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
382
+ module.performance.timer = setTimeout(function () {
383
+ module.performance.display();
384
+ }, 500);
381
385
  },
382
386
  display: function () {
383
387
  var
@@ -194,7 +194,9 @@
194
194
  ;
195
195
  clearTimeout(module.hideTimer);
196
196
  if (!openedWithTouch || (openedWithTouch && settings.addTouchEvents)) {
197
- module.showTimer = setTimeout(function () { module.show(); }, delay);
197
+ module.showTimer = setTimeout(function () {
198
+ module.show();
199
+ }, delay);
198
200
  }
199
201
  },
200
202
  end: function () {
@@ -204,7 +206,9 @@
204
206
  : settings.delay
205
207
  ;
206
208
  clearTimeout(module.showTimer);
207
- module.hideTimer = setTimeout(function () { module.hide(); }, delay);
209
+ module.hideTimer = setTimeout(function () {
210
+ module.hide();
211
+ }, delay);
208
212
  },
209
213
  touchstart: function (event) {
210
214
  openedWithTouch = true;
@@ -1244,7 +1248,9 @@
1244
1248
  });
1245
1249
  }
1246
1250
  clearTimeout(module.performance.timer);
1247
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1251
+ module.performance.timer = setTimeout(function () {
1252
+ module.performance.display();
1253
+ }, 500);
1248
1254
  },
1249
1255
  display: function () {
1250
1256
  var
@@ -791,7 +791,9 @@
791
791
  });
792
792
  }
793
793
  clearTimeout(module.performance.timer);
794
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
794
+ module.performance.timer = setTimeout(function () {
795
+ module.performance.display();
796
+ }, 500);
795
797
  },
796
798
  display: function () {
797
799
  var