fomantic-ui-sass 2.7.1 → 2.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/Rakefile +1 -0
  4. data/app/assets/javascripts/semantic-ui/accordion.js +20 -17
  5. data/app/assets/javascripts/semantic-ui/checkbox.js +18 -17
  6. data/app/assets/javascripts/semantic-ui/dropdown.js +48 -42
  7. data/app/assets/javascripts/semantic-ui/form.js +59 -28
  8. data/app/assets/javascripts/semantic-ui/modal.js +13 -1
  9. data/app/assets/javascripts/semantic-ui/progress.js +5 -5
  10. data/app/assets/javascripts/semantic-ui/search.js +34 -28
  11. data/app/assets/javascripts/semantic-ui/sidebar.js +5 -7
  12. data/app/assets/javascripts/semantic-ui/transition.js +46 -34
  13. data/app/assets/stylesheets/semantic-ui/collections/_breadcrumb.scss +1 -1
  14. data/app/assets/stylesheets/semantic-ui/collections/_form.scss +7 -1
  15. data/app/assets/stylesheets/semantic-ui/collections/_grid.scss +1 -1
  16. data/app/assets/stylesheets/semantic-ui/collections/_menu.scss +112 -112
  17. data/app/assets/stylesheets/semantic-ui/collections/_message.scss +1 -1
  18. data/app/assets/stylesheets/semantic-ui/collections/_table.scss +66 -66
  19. data/app/assets/stylesheets/semantic-ui/elements/_button.scss +21 -14
  20. data/app/assets/stylesheets/semantic-ui/elements/_container.scss +1 -1
  21. data/app/assets/stylesheets/semantic-ui/elements/_divider.scss +1 -1
  22. data/app/assets/stylesheets/semantic-ui/elements/_flag.scss +1 -1
  23. data/app/assets/stylesheets/semantic-ui/elements/_header.scss +2 -4
  24. data/app/assets/stylesheets/semantic-ui/elements/_icon.scss +464 -131
  25. data/app/assets/stylesheets/semantic-ui/elements/_image.scss +1 -1
  26. data/app/assets/stylesheets/semantic-ui/elements/_input.scss +8 -3
  27. data/app/assets/stylesheets/semantic-ui/elements/_label.scss +227 -187
  28. data/app/assets/stylesheets/semantic-ui/elements/_list.scss +26 -12
  29. data/app/assets/stylesheets/semantic-ui/elements/_loader.scss +68 -19
  30. data/app/assets/stylesheets/semantic-ui/elements/_placeholder.scss +1 -1
  31. data/app/assets/stylesheets/semantic-ui/elements/_rail.scss +1 -1
  32. data/app/assets/stylesheets/semantic-ui/elements/_reveal.scss +1 -1
  33. data/app/assets/stylesheets/semantic-ui/elements/_segment.scss +14 -17
  34. data/app/assets/stylesheets/semantic-ui/elements/_step.scss +5 -1
  35. data/app/assets/stylesheets/semantic-ui/elements/_text.scss +26 -0
  36. data/app/assets/stylesheets/semantic-ui/globals/_reset.scss +24 -118
  37. data/app/assets/stylesheets/semantic-ui/globals/_site.scss +5 -5
  38. data/app/assets/stylesheets/semantic-ui/modules/_accordion.scss +1 -1
  39. data/app/assets/stylesheets/semantic-ui/modules/_calendar.scss +1 -1
  40. data/app/assets/stylesheets/semantic-ui/modules/_checkbox.scss +1 -1
  41. data/app/assets/stylesheets/semantic-ui/modules/_dimmer.scss +3 -3
  42. data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +6 -3
  43. data/app/assets/stylesheets/semantic-ui/modules/_embed.scss +1 -1
  44. data/app/assets/stylesheets/semantic-ui/modules/_modal.scss +2 -1
  45. data/app/assets/stylesheets/semantic-ui/modules/_nag.scss +1 -1
  46. data/app/assets/stylesheets/semantic-ui/modules/_popup.scss +4 -4
  47. data/app/assets/stylesheets/semantic-ui/modules/_progress.scss +68 -21
  48. data/app/assets/stylesheets/semantic-ui/modules/_rating.scss +1 -1
  49. data/app/assets/stylesheets/semantic-ui/modules/_search.scss +1 -1
  50. data/app/assets/stylesheets/semantic-ui/modules/_shape.scss +1 -1
  51. data/app/assets/stylesheets/semantic-ui/modules/_sidebar.scss +1 -1
  52. data/app/assets/stylesheets/semantic-ui/modules/_sticky.scss +1 -1
  53. data/app/assets/stylesheets/semantic-ui/modules/_tab.scss +1 -1
  54. data/app/assets/stylesheets/semantic-ui/modules/_toast.scss +1 -1
  55. data/app/assets/stylesheets/semantic-ui/modules/_transition.scss +1 -1
  56. data/app/assets/stylesheets/semantic-ui/views/_ad.scss +1 -1
  57. data/app/assets/stylesheets/semantic-ui/views/_card.scss +1 -1
  58. data/app/assets/stylesheets/semantic-ui/views/_comment.scss +1 -1
  59. data/app/assets/stylesheets/semantic-ui/views/_feed.scss +1 -1
  60. data/app/assets/stylesheets/semantic-ui/views/_item.scss +1 -1
  61. data/app/assets/stylesheets/semantic-ui/views/_statistic.scss +1 -1
  62. data/fomantic-ui-sass.gemspec +1 -1
  63. data/lib/fomantic/ui/sass/version.rb +2 -2
  64. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ea4982f628ac4894214a34b86c2b748b52dbfd7e18edcc2ac134f684a69e777
4
- data.tar.gz: f6facd243a1fad34db28dc20f6fe9b9f6f6b736783d0413f11d38014e66e294a
3
+ metadata.gz: 75f79f8eccb784bc41b3b8d4bc62d0fce2da4ea2d6bb82044c762465fc6ce048
4
+ data.tar.gz: b899c36124cf3e3e44a69c62221044b5ca90e62b759cf0c52b5184c3ee9c5562
5
5
  SHA512:
6
- metadata.gz: ad392c7d1b2e8f897e9dca565a9562033923563ca66743e8168cb1f212ef626e3808dc6e4fe16bcba9a274fdc19393b88de04a9b7ace1ebc689e237508da7a42
7
- data.tar.gz: 8d84571403974393d1abd50aef51ec4d1c932deac43663a8853dc2b6b534429d05f45d74e03c60d682d1de0299cf5aa3f6cb39a4071f1dd08606c48f8681c2c5
6
+ metadata.gz: d212bace1dccd4eff423b10474d5672dff4ac35d4b6c22f71bbb41beb4f1006e7d2ae4812d4e5f68086f47d3c41f1677397f0b3cb2fd111962427058726a588d
7
+ data.tar.gz: 0f524b64e55fe87f046fd95690ffea9fbfd6d1080d25ebc62ede0a8651cecfffe5491e07dd653c07a03db6fa44844b3b8d85aa291655a98ff128b268b01161c7
data/CHANGELOG.md CHANGED
@@ -1,3 +1,23 @@
1
+ ## 2.7.2
2
+
3
+ Update Fomantic UI to [2.7.2](https://github.com/fomantic/Fomantic-UI/releases/tag/2.7.2)
4
+
5
+ ## 2.7.1
6
+
7
+ * Update Fomantic UI to [2.7.1](https://github.com/fomantic/Fomantic-UI/releases/tag/2.7.1)
8
+
9
+ ## 2.7.0
10
+
11
+ * Update Fomantic UI to [2.7.0](https://github.com/fomantic/Fomantic-UI/releases/tag/2.7.0)
12
+
13
+ ## 2.6.4
14
+
15
+ * Update Fomantic UI to [2.6.4](https://github.com/fomantic/Fomantic-UI/releases/tag/2.6.4)
16
+
17
+ ## 2.4.1
18
+
19
+ * Update Fomantic UI to [2.4.1](https://github.com/fomantic/Fomantic-UI/releases/tag/2.4.1)
20
+
1
21
  ## 2.4.0.1
2
22
 
3
23
  * Include new placeholder element #133
data/Rakefile CHANGED
@@ -6,6 +6,7 @@ end
6
6
 
7
7
  Bundler::GemHelper.install_tasks
8
8
 
9
+ # rake convert[2.7.1]
9
10
  desc 'Convert semantic-ui less to sass'
10
11
  task :convert, :branch do |_t, args|
11
12
  require './tasks/converter'
@@ -189,12 +189,13 @@ $.fn.accordion = function(parameters) {
189
189
  $activeContent
190
190
  .children()
191
191
  .transition({
192
- animation : 'fade in',
193
- queue : false,
194
- useFailSafe : true,
195
- debug : settings.debug,
196
- verbose : settings.verbose,
197
- duration : settings.duration
192
+ animation : 'fade in',
193
+ queue : false,
194
+ useFailSafe : true,
195
+ debug : settings.debug,
196
+ verbose : settings.verbose,
197
+ duration : settings.duration,
198
+ skipInlineHidden : true
198
199
  })
199
200
  ;
200
201
  }
@@ -250,12 +251,13 @@ $.fn.accordion = function(parameters) {
250
251
  $activeContent
251
252
  .children()
252
253
  .transition({
253
- animation : 'fade out',
254
- queue : false,
255
- useFailSafe : true,
256
- debug : settings.debug,
257
- verbose : settings.verbose,
258
- duration : settings.duration
254
+ animation : 'fade out',
255
+ queue : false,
256
+ useFailSafe : true,
257
+ debug : settings.debug,
258
+ verbose : settings.verbose,
259
+ duration : settings.duration,
260
+ skipInlineHidden : true
259
261
  })
260
262
  ;
261
263
  }
@@ -320,11 +322,12 @@ $.fn.accordion = function(parameters) {
320
322
  $openContents
321
323
  .children()
322
324
  .transition({
323
- animation : 'fade out',
324
- useFailSafe : true,
325
- debug : settings.debug,
326
- verbose : settings.verbose,
327
- duration : settings.duration
325
+ animation : 'fade out',
326
+ useFailSafe : true,
327
+ debug : settings.debug,
328
+ verbose : settings.verbose,
329
+ duration : settings.duration,
330
+ skipInlineHidden : true
328
331
  })
329
332
  ;
330
333
  }
@@ -222,11 +222,11 @@ $.fn.checkbox = function(parameters) {
222
222
  }
223
223
 
224
224
  if (!module.should.ignoreCallbacks() && checkIndex !== false) {
225
- if(!settings.beforeUnchecked.apply(input)) {
225
+ if(settings.beforeUnchecked.apply(input)===false) {
226
226
  module.verbose('Option not allowed to be unchecked, cancelling key navigation');
227
227
  return false;
228
228
  }
229
- if (!settings.beforeChecked.apply($(r[checkIndex]).children(selector.input)[0])) {
229
+ if (settings.beforeChecked.apply($(r[checkIndex]).children(selector.input)[0])===false) {
230
230
  module.verbose('Next option should not allow check, cancelling key navigation');
231
231
  return false;
232
232
  }
@@ -261,7 +261,7 @@ $.fn.checkbox = function(parameters) {
261
261
  module.set.checked();
262
262
  if( !module.should.ignoreCallbacks() ) {
263
263
  settings.onChecked.call(input);
264
- settings.onChange.call(input);
264
+ module.trigger.change();
265
265
  }
266
266
  },
267
267
 
@@ -273,7 +273,7 @@ $.fn.checkbox = function(parameters) {
273
273
  module.set.unchecked();
274
274
  if( !module.should.ignoreCallbacks() ) {
275
275
  settings.onUnchecked.call(input);
276
- settings.onChange.call(input);
276
+ module.trigger.change();
277
277
  }
278
278
  },
279
279
 
@@ -286,7 +286,7 @@ $.fn.checkbox = function(parameters) {
286
286
  module.set.indeterminate();
287
287
  if( !module.should.ignoreCallbacks() ) {
288
288
  settings.onIndeterminate.call(input);
289
- settings.onChange.call(input);
289
+ module.trigger.change();
290
290
  }
291
291
  },
292
292
 
@@ -299,7 +299,7 @@ $.fn.checkbox = function(parameters) {
299
299
  module.set.determinate();
300
300
  if( !module.should.ignoreCallbacks() ) {
301
301
  settings.onDeterminate.call(input);
302
- settings.onChange.call(input);
302
+ module.trigger.change();
303
303
  }
304
304
  },
305
305
 
@@ -310,9 +310,12 @@ $.fn.checkbox = function(parameters) {
310
310
  }
311
311
  module.debug('Enabling checkbox');
312
312
  module.set.enabled();
313
- settings.onEnable.call(input);
314
- // preserve legacy callbacks
315
- settings.onEnabled.call(input);
313
+ if( !module.should.ignoreCallbacks() ) {
314
+ settings.onEnable.call(input);
315
+ // preserve legacy callbacks
316
+ settings.onEnabled.call(input);
317
+ module.trigger.change();
318
+ }
316
319
  },
317
320
 
318
321
  disable: function() {
@@ -322,9 +325,12 @@ $.fn.checkbox = function(parameters) {
322
325
  }
323
326
  module.debug('Disabling checkbox');
324
327
  module.set.disabled();
325
- settings.onDisable.call(input);
326
- // preserve legacy callbacks
327
- settings.onDisabled.call(input);
328
+ if( !module.should.ignoreCallbacks() ) {
329
+ settings.onDisable.call(input);
330
+ // preserve legacy callbacks
331
+ settings.onDisabled.call(input);
332
+ module.trigger.change();
333
+ }
328
334
  },
329
335
 
330
336
  get: {
@@ -453,7 +459,6 @@ $.fn.checkbox = function(parameters) {
453
459
  .prop('indeterminate', false)
454
460
  .prop('checked', true)
455
461
  ;
456
- module.trigger.change();
457
462
  },
458
463
  unchecked: function() {
459
464
  module.verbose('Removing checked class');
@@ -470,7 +475,6 @@ $.fn.checkbox = function(parameters) {
470
475
  .prop('indeterminate', false)
471
476
  .prop('checked', false)
472
477
  ;
473
- module.trigger.change();
474
478
  },
475
479
  indeterminate: function() {
476
480
  module.verbose('Setting class to indeterminate');
@@ -485,7 +489,6 @@ $.fn.checkbox = function(parameters) {
485
489
  $input
486
490
  .prop('indeterminate', true)
487
491
  ;
488
- module.trigger.change();
489
492
  },
490
493
  determinate: function() {
491
494
  module.verbose('Removing indeterminate class');
@@ -514,7 +517,6 @@ $.fn.checkbox = function(parameters) {
514
517
  $input
515
518
  .prop('disabled', 'disabled')
516
519
  ;
517
- module.trigger.change();
518
520
  },
519
521
  enabled: function() {
520
522
  module.verbose('Removing disabled class');
@@ -527,7 +529,6 @@ $.fn.checkbox = function(parameters) {
527
529
  $input
528
530
  .prop('disabled', false)
529
531
  ;
530
- module.trigger.change();
531
532
  },
532
533
  tabbable: function() {
533
534
  module.verbose('Adding tabindex to checkbox');
@@ -103,6 +103,10 @@ $.fn.dropdown = function(parameters) {
103
103
  module.setup.reference();
104
104
  }
105
105
  else {
106
+ if (settings.ignoreDiacritics && !String.prototype.normalize) {
107
+ settings.ignoreDiacritics = false;
108
+ module.error(error.noNormalize, element);
109
+ }
106
110
 
107
111
  module.setup.layout();
108
112
 
@@ -373,7 +377,7 @@ $.fn.dropdown = function(parameters) {
373
377
  .attr('class', $input.attr('class') )
374
378
  .addClass(className.selection)
375
379
  .addClass(className.dropdown)
376
- .html( templates.dropdown(selectValues,settings.preserveHTML) )
380
+ .html( templates.dropdown(selectValues,settings.preserveHTML, settings.className) )
377
381
  .insertBefore($input)
378
382
  ;
379
383
  if($input.hasClass(className.multiple) && $input.prop('multiple') === false) {
@@ -396,7 +400,7 @@ $.fn.dropdown = function(parameters) {
396
400
  module.refresh();
397
401
  },
398
402
  menu: function(values) {
399
- $menu.html( templates.menu(values, fields,settings.preserveHTML));
403
+ $menu.html( templates.menu(values, fields,settings.preserveHTML,settings.className));
400
404
  $item = $menu.find(selector.item);
401
405
  $divider = settings.hideDividers ? $item.parent().children(selector.divider) : $();
402
406
  },
@@ -815,9 +819,10 @@ $.fn.dropdown = function(parameters) {
815
819
 
816
820
  filterItems: function(query) {
817
821
  var
818
- searchTerm = (query !== undefined)
822
+ searchTerm = module.remove.diacritics(query !== undefined
819
823
  ? query
820
- : module.get.query(),
824
+ : module.get.query()
825
+ ),
821
826
  results = null,
822
827
  escapedTerm = module.escape.string(searchTerm),
823
828
  beginsWithRegExp = new RegExp('^' + escapedTerm, 'igm')
@@ -834,8 +839,8 @@ $.fn.dropdown = function(parameters) {
834
839
  text,
835
840
  value
836
841
  ;
837
- if(settings.match == 'both' || settings.match == 'text') {
838
- text = String(module.get.choiceText($choice, false));
842
+ if(settings.match === 'both' || settings.match === 'text') {
843
+ text = module.remove.diacritics(String(module.get.choiceText($choice, false)));
839
844
  if(text.search(beginsWithRegExp) !== -1) {
840
845
  results.push(this);
841
846
  return true;
@@ -849,8 +854,8 @@ $.fn.dropdown = function(parameters) {
849
854
  return true;
850
855
  }
851
856
  }
852
- if(settings.match == 'both' || settings.match == 'value') {
853
- value = String(module.get.choiceValue($choice, text));
857
+ if(settings.match === 'both' || settings.match === 'value') {
858
+ value = module.remove.diacritics(String(module.get.choiceValue($choice, text)));
854
859
  if(value.search(beginsWithRegExp) !== -1) {
855
860
  results.push(this);
856
861
  return true;
@@ -930,10 +935,8 @@ $.fn.dropdown = function(parameters) {
930
935
  exactSearch: function (query, term) {
931
936
  query = query.toLowerCase();
932
937
  term = term.toLowerCase();
933
- if(term.indexOf(query) > -1) {
934
- return true;
935
- }
936
- return false;
938
+ return term.indexOf(query) > -1;
939
+
937
940
  },
938
941
  filterActive: function() {
939
942
  if(settings.useLabels) {
@@ -974,7 +977,6 @@ $.fn.dropdown = function(parameters) {
974
977
  if(hasSelected && !module.is.multiple()) {
975
978
  module.debug('Forcing partial selection to selected item', $selectedItem);
976
979
  module.event.item.click.call($selectedItem, {}, true);
977
- return;
978
980
  }
979
981
  else {
980
982
  if(settings.allowAdditions) {
@@ -1327,7 +1329,8 @@ $.fn.dropdown = function(parameters) {
1327
1329
  isSearch = module.is.searchSelection(),
1328
1330
  isFocusedOnSearch = module.is.focusedOnSearch(),
1329
1331
  isFocused = module.is.focused(),
1330
- caretAtStart = (isFocusedOnSearch && module.get.caretPosition() === 0),
1332
+ caretAtStart = (isFocusedOnSearch && module.get.caretPosition(false) === 0),
1333
+ isSelectedSearch = (caretAtStart && module.get.caretPosition(true) !== 0),
1331
1334
  $nextLabel
1332
1335
  ;
1333
1336
  if(isSearch && !hasActiveLabel && !isFocusedOnSearch) {
@@ -1408,7 +1411,7 @@ $.fn.dropdown = function(parameters) {
1408
1411
  module.remove.activeLabels($activeLabel);
1409
1412
  event.preventDefault();
1410
1413
  }
1411
- else if(caretAtStart && !hasActiveLabel && pressedKey == keys.backspace) {
1414
+ else if(caretAtStart && !isSelectedSearch && !hasActiveLabel && pressedKey == keys.backspace) {
1412
1415
  module.verbose('Removing last label on input backspace');
1413
1416
  $activeLabel = $label.last().addClass(className.active);
1414
1417
  module.remove.activeLabels($activeLabel);
@@ -1805,19 +1808,25 @@ $.fn.dropdown = function(parameters) {
1805
1808
  return $.inArray(value, array) === index;
1806
1809
  });
1807
1810
  },
1808
- caretPosition: function() {
1811
+ caretPosition: function(returnEndPos) {
1809
1812
  var
1810
1813
  input = $search.get(0),
1811
1814
  range,
1812
1815
  rangeLength
1813
1816
  ;
1814
- if('selectionStart' in input) {
1817
+ if(returnEndPos && 'selectionEnd' in input){
1818
+ return input.selectionEnd;
1819
+ }
1820
+ else if(!returnEndPos && 'selectionStart' in input) {
1815
1821
  return input.selectionStart;
1816
1822
  }
1817
- else if (document.selection) {
1823
+ if (document.selection) {
1818
1824
  input.focus();
1819
1825
  range = document.selection.createRange();
1820
1826
  rangeLength = range.text.length;
1827
+ if(returnEndPos) {
1828
+ return rangeLength;
1829
+ }
1821
1830
  range.moveStart('character', -input.value.length);
1822
1831
  return range.text.length - rangeLength;
1823
1832
  }
@@ -1954,17 +1963,11 @@ $.fn.dropdown = function(parameters) {
1954
1963
  if(settings.sortSelect) {
1955
1964
  if(settings.sortSelect === true) {
1956
1965
  select.values.sort(function(a, b) {
1957
- return (a.name > b.name)
1958
- ? 1
1959
- : -1
1960
- ;
1966
+ return a.name.localeCompare(b.name);
1961
1967
  });
1962
1968
  } else if(settings.sortSelect === 'natural') {
1963
1969
  select.values.sort(function(a, b) {
1964
- return (a.name.toLowerCase() > b.name.toLowerCase())
1965
- ? 1
1966
- : -1
1967
- ;
1970
+ return (a.name.toLowerCase().localeCompare(b.name.toLowerCase()));
1968
1971
  });
1969
1972
  } else if($.isFunction(settings.sortSelect)) {
1970
1973
  select.values.sort(settings.sortSelect);
@@ -2019,7 +2022,7 @@ $.fn.dropdown = function(parameters) {
2019
2022
  : (value !== undefined && value !== null)
2020
2023
  ;
2021
2024
  isMultiple = (module.is.multiple() && Array.isArray(value));
2022
- strict = (value === '' || value === 0)
2025
+ strict = (value === '' || value === false || value === true)
2023
2026
  ? true
2024
2027
  : strict || false
2025
2028
  ;
@@ -2698,7 +2701,7 @@ $.fn.dropdown = function(parameters) {
2698
2701
  $label = $('<a />')
2699
2702
  .addClass(className.label)
2700
2703
  .attr('data-' + metadata.value, escapedValue)
2701
- .html(templates.label(escapedValue, text, settings.preserveHTML))
2704
+ .html(templates.label(escapedValue, text, settings.preserveHTML, settings.className))
2702
2705
  ;
2703
2706
  $label = settings.onLabelCreate.call($label, escapedValue, text);
2704
2707
 
@@ -3107,6 +3110,9 @@ $.fn.dropdown = function(parameters) {
3107
3110
  ;
3108
3111
  }
3109
3112
  },
3113
+ diacritics: function(text) {
3114
+ return settings.ignoreDiacritics ? text.normalize('NFD').replace(/[\u0300-\u036f]/g, '') : text;
3115
+ }
3110
3116
  },
3111
3117
 
3112
3118
  has: {
@@ -3837,6 +3843,7 @@ $.fn.dropdown.settings = {
3837
3843
 
3838
3844
  match : 'both', // what to match against with search selection (both, text, or label)
3839
3845
  fullTextSearch : false, // search anywhere in value (set to 'exact' to require exact matches)
3846
+ 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...)
3840
3847
  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)
3841
3848
 
3842
3849
  placeholder : 'auto', // whether to convert blank <select> values to placeholder text
@@ -3912,7 +3919,8 @@ $.fn.dropdown.settings = {
3912
3919
  method : 'The method you called is not defined.',
3913
3920
  noAPI : 'The API module is required to load resources remotely',
3914
3921
  noStorage : 'Saving remote data requires session storage',
3915
- noTransition : 'This module requires ui transitions <https://github.com/Semantic-Org/UI-Transition>'
3922
+ noTransition : 'This module requires ui transitions <https://github.com/Semantic-Org/UI-Transition>',
3923
+ noNormalize : '"ignoreDiacritics" setting will be ignored. Browser does not support String().normalize(). You may consider including <https://cdn.jsdelivr.net/npm/unorm@1.4.1/lib/unorm.min.js> as a polyfill.'
3916
3924
  },
3917
3925
 
3918
3926
  regExp : {
@@ -3998,7 +4006,8 @@ $.fn.dropdown.settings = {
3998
4006
  leftward : 'left',
3999
4007
  visible : 'visible',
4000
4008
  clearable : 'clearable',
4001
- noselection : 'noselection'
4009
+ noselection : 'noselection',
4010
+ delete : 'delete'
4002
4011
  }
4003
4012
 
4004
4013
  };
@@ -4030,7 +4039,7 @@ $.fn.dropdown.settings.templates = {
4030
4039
  return string;
4031
4040
  },
4032
4041
  // generates dropdown from select values
4033
- dropdown: function(select, preserveHTML) {
4042
+ dropdown: function(select, preserveHTML, className) {
4034
4043
  var
4035
4044
  placeholder = select.placeholder || false,
4036
4045
  values = select.values || [],
@@ -4044,19 +4053,16 @@ $.fn.dropdown.settings.templates = {
4044
4053
  else {
4045
4054
  html += '<div class="text"></div>';
4046
4055
  }
4047
- html += '<div class="menu">';
4056
+ html += '<div class="'+className.menu+'">';
4048
4057
  $.each(values, function(index, option) {
4049
- html += (option.disabled)
4050
- ? '<div class="disabled item" data-value="' + option.value.replace(/"/g,"") + '">' + escape(option.name,preserveHTML) + '</div>'
4051
- : '<div class="item" data-value="' + option.value.replace(/"/g,"") + '">' + escape(option.name,preserveHTML) + '</div>'
4052
- ;
4058
+ html += '<div class="'+(option.disabled ? className.disabled+' ':'')+className.item+'" data-value="' + String(option.value).replace(/"/g,"") + '">' + escape(option.name,preserveHTML) + '</div>';
4053
4059
  });
4054
4060
  html += '</div>';
4055
4061
  return html;
4056
4062
  },
4057
4063
 
4058
4064
  // generates just menu from select
4059
- menu: function(response, fields, preserveHTML) {
4065
+ menu: function(response, fields, preserveHTML, className) {
4060
4066
  var
4061
4067
  values = response[fields.values] || [],
4062
4068
  html = '',
@@ -4072,13 +4078,13 @@ $.fn.dropdown.settings.templates = {
4072
4078
  if( itemType === 'item' ) {
4073
4079
  var
4074
4080
  maybeText = (option[fields.text])
4075
- ? 'data-text="' + option[fields.text] + '"'
4081
+ ? ' data-text="' + String(option[fields.text]).replace(/"/g,"") + '"'
4076
4082
  : '',
4077
4083
  maybeDisabled = (option[fields.disabled])
4078
- ? 'disabled '
4084
+ ? className.disabled+' '
4079
4085
  : ''
4080
4086
  ;
4081
- html += '<div class="'+ maybeDisabled +'item" data-value="' + option[fields.value].replace(/"/g,"") + '"' + maybeText + '>';
4087
+ html += '<div class="'+ maybeDisabled + className.item+'" data-value="' + String(option[fields.value]).replace(/"/g,"") + '"' + maybeText + '>';
4082
4088
  html += escape(option[fields.name],preserveHTML);
4083
4089
  html += '</div>';
4084
4090
  } else if (itemType === 'header') {
@@ -4091,10 +4097,10 @@ $.fn.dropdown.settings.templates = {
4091
4097
  },
4092
4098
 
4093
4099
  // generates label for multiselect
4094
- label: function(value, text, preserveHTML) {
4100
+ label: function(value, text, preserveHTML, className) {
4095
4101
  var
4096
4102
  escape = $.fn.dropdown.settings.templates.escape;
4097
- return escape(text,preserveHTML) + '<i class="delete icon"></i>';
4103
+ return escape(text,preserveHTML) + '<i class="'+className.delete+' icon"></i>';
4098
4104
  },
4099
4105
 
4100
4106