uikit 3.7.3-dev.af32c46e8 → 3.7.4-dev.e74b22b13

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 (54) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/css/uikit-core-rtl.css +3 -3
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +3 -3
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +3 -3
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +3 -3
  9. package/dist/css/uikit.min.css +1 -1
  10. package/dist/js/components/countdown.js +1 -1
  11. package/dist/js/components/countdown.min.js +1 -1
  12. package/dist/js/components/filter.js +1 -1
  13. package/dist/js/components/filter.min.js +1 -1
  14. package/dist/js/components/lightbox-panel.js +1 -1
  15. package/dist/js/components/lightbox-panel.min.js +1 -1
  16. package/dist/js/components/lightbox.js +1 -1
  17. package/dist/js/components/lightbox.min.js +1 -1
  18. package/dist/js/components/notification.js +1 -1
  19. package/dist/js/components/notification.min.js +1 -1
  20. package/dist/js/components/parallax.js +1 -1
  21. package/dist/js/components/parallax.min.js +1 -1
  22. package/dist/js/components/slider-parallax.js +1 -1
  23. package/dist/js/components/slider-parallax.min.js +1 -1
  24. package/dist/js/components/slider.js +1 -1
  25. package/dist/js/components/slider.min.js +1 -1
  26. package/dist/js/components/slideshow-parallax.js +1 -1
  27. package/dist/js/components/slideshow-parallax.min.js +1 -1
  28. package/dist/js/components/slideshow.js +1 -1
  29. package/dist/js/components/slideshow.min.js +1 -1
  30. package/dist/js/components/sortable.js +1 -1
  31. package/dist/js/components/sortable.min.js +1 -1
  32. package/dist/js/components/tooltip.js +1 -1
  33. package/dist/js/components/tooltip.min.js +1 -1
  34. package/dist/js/components/upload.js +1 -1
  35. package/dist/js/components/upload.min.js +1 -1
  36. package/dist/js/uikit-core.js +172 -15
  37. package/dist/js/uikit-core.min.js +2 -2
  38. package/dist/js/uikit-icons.js +1 -1
  39. package/dist/js/uikit-icons.min.js +1 -1
  40. package/dist/js/uikit.js +172 -15
  41. package/dist/js/uikit.min.js +2 -2
  42. package/package.json +1 -1
  43. package/src/js/core/navbar.js +136 -7
  44. package/src/js/core/overflow-auto.js +6 -4
  45. package/src/js/core/switcher.js +3 -1
  46. package/src/js/core/toggle.js +14 -1
  47. package/src/js/util/filter.js +2 -2
  48. package/src/less/components/form.less +1 -1
  49. package/src/less/components/navbar.less +1 -1
  50. package/src/scss/components/form.scss +1 -1
  51. package/src/scss/components/navbar.scss +1 -1
  52. package/src/scss/variables-theme.scss +1 -1
  53. package/src/scss/variables.scss +1 -1
  54. package/tests/switcher.html +7 -1
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.7.3-dev.af32c46e8 | https://www.getuikit.com | (c) 2014 - 2021 YOOtheme | MIT License */
1
+ /*! UIkit 3.7.4-dev.e74b22b13 | https://www.getuikit.com | (c) 2014 - 2021 YOOtheme | MIT License */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -463,8 +463,9 @@
463
463
  return toNodes(element).some(function (element) { return matches(element, selInput); });
464
464
  }
465
465
 
466
+ var selFocusable = selInput + ",a[href],[tabindex]";
466
467
  function isFocusable(element) {
467
- return isInput(element) || matches(element, 'a[href],button') || hasAttr(element, 'tabindex');
468
+ return matches(element, selFocusable);
468
469
  }
469
470
 
470
471
  function parent(element) {
@@ -2574,6 +2575,7 @@
2574
2575
  isVisible: isVisible,
2575
2576
  selInput: selInput,
2576
2577
  isInput: isInput,
2578
+ selFocusable: selFocusable,
2577
2579
  isFocusable: isFocusable,
2578
2580
  parent: parent,
2579
2581
  filter: filter,
@@ -3444,7 +3446,7 @@
3444
3446
  UIkit.data = '__uikit__';
3445
3447
  UIkit.prefix = 'uk-';
3446
3448
  UIkit.options = {};
3447
- UIkit.version = '3.7.3-dev.af32c46e8';
3449
+ UIkit.version = '3.7.4-dev.e74b22b13';
3448
3450
 
3449
3451
  globalAPI(UIkit);
3450
3452
  hooksAPI(UIkit);
@@ -6617,12 +6619,18 @@
6617
6619
  dropdowns: {
6618
6620
 
6619
6621
  get: function(ref, $el) {
6622
+ var this$1 = this;
6620
6623
  var clsDrop = ref.clsDrop;
6621
6624
 
6622
6625
  var dropdowns = $$(("." + clsDrop), $el);
6623
6626
 
6624
- if (this.container !== $el) {
6625
- $$(("." + clsDrop), this.container).forEach(function (el) { return !includes(dropdowns, el) && dropdowns.push(el); });
6627
+ if (this.dropContainer !== $el) {
6628
+ $$(("." + clsDrop), this.dropContainer).forEach(function (el) {
6629
+ var dropdown = this$1.getDropdown(el);
6630
+ if (!includes(dropdowns, el) && dropdown && dropdown.target && within(dropdown.target, this$1.$el)) {
6631
+ dropdowns.push(el);
6632
+ }
6633
+ });
6626
6634
  }
6627
6635
 
6628
6636
  return dropdowns;
@@ -6640,6 +6648,12 @@
6640
6648
 
6641
6649
  immediate: true
6642
6650
 
6651
+ },
6652
+
6653
+ toggles: function(ref, $el) {
6654
+ var dropdown = ref.dropdown;
6655
+
6656
+ return $$(dropdown, $el);
6643
6657
  }
6644
6658
 
6645
6659
  },
@@ -6652,7 +6666,7 @@
6652
6666
  events: [
6653
6667
 
6654
6668
  {
6655
- name: 'mouseover',
6669
+ name: 'mouseover focusin',
6656
6670
 
6657
6671
  delegate: function() {
6658
6672
  return this.dropdown;
@@ -6662,13 +6676,93 @@
6662
6676
  var current = ref.current;
6663
6677
 
6664
6678
  var active = this.getActive();
6665
- if (active && active.target && !within(active.target, current) && !active.tracker.movesTo(active.$el)) {
6679
+ if (active && includes(active.mode, 'hover') && active.target && !within(active.target, current) && !active.tracker.movesTo(active.$el)) {
6666
6680
  active.hide(false);
6667
6681
  }
6668
6682
  }
6669
6683
 
6670
6684
  },
6671
6685
 
6686
+ {
6687
+ name: 'keydown',
6688
+
6689
+ delegate: function() {
6690
+ return this.dropdown;
6691
+ },
6692
+
6693
+ handler: function(e) {
6694
+
6695
+ var current = e.current;
6696
+ var keyCode = e.keyCode;
6697
+ var active = this.getActive();
6698
+
6699
+ if (keyCode === keyMap.DOWN && hasAttr(current, 'aria-expanded')) {
6700
+
6701
+ e.preventDefault();
6702
+
6703
+ if (!active || active.target !== current) {
6704
+ current.click();
6705
+ once(this.dropContainer, 'show', function (ref) {
6706
+ var target = ref.target;
6707
+
6708
+ return focusFirstFocusableElement(target);
6709
+ });
6710
+ } else {
6711
+ focusFirstFocusableElement(active.$el);
6712
+ }
6713
+
6714
+ }
6715
+
6716
+ handleNavItemNavigation(e, this.toggles, active);
6717
+ }
6718
+ },
6719
+
6720
+ {
6721
+ name: 'keydown',
6722
+
6723
+ el: function() {
6724
+ return this.dropContainer;
6725
+ },
6726
+
6727
+ delegate: function() {
6728
+ return ("." + (this.clsDrop));
6729
+ },
6730
+
6731
+ handler: function(e) {
6732
+
6733
+ var current = e.current;
6734
+ var keyCode = e.keyCode;
6735
+
6736
+ if (!includes(this.dropdowns, current)) {
6737
+ return;
6738
+ }
6739
+
6740
+ var active = this.getActive();
6741
+ var elements = $$(selFocusable, current);
6742
+ var i = findIndex(elements, function (el) { return matches(el, ':focus'); });
6743
+
6744
+ if (keyCode === keyMap.UP) {
6745
+ e.preventDefault();
6746
+ if (i > 0) {
6747
+ elements[i - 1].focus();
6748
+ }
6749
+ }
6750
+
6751
+ if (keyCode === keyMap.DOWN) {
6752
+ e.preventDefault();
6753
+ if (i < elements.length - 1) {
6754
+ elements[i + 1].focus();
6755
+ }
6756
+ }
6757
+
6758
+ if (keyCode === keyMap.ESC) {
6759
+ active && active.target && active.target.focus();
6760
+ }
6761
+
6762
+ handleNavItemNavigation(e, this.toggles, active);
6763
+ }
6764
+ },
6765
+
6672
6766
  {
6673
6767
  name: 'mouseleave',
6674
6768
 
@@ -6676,10 +6770,14 @@
6676
6770
  return this.dropbar;
6677
6771
  },
6678
6772
 
6773
+ filter: function() {
6774
+ return this.dropbar;
6775
+ },
6776
+
6679
6777
  handler: function() {
6680
6778
  var active = this.getActive();
6681
6779
 
6682
- if (active && !this.dropdowns.some(function (el) { return matches(el, ':hover'); })) {
6780
+ if (active && includes(active.mode, 'hover') && !this.dropdowns.some(function (el) { return matches(el, ':hover'); })) {
6683
6781
  active.hide();
6684
6782
  }
6685
6783
  }
@@ -6790,7 +6888,7 @@
6790
6888
  methods: {
6791
6889
 
6792
6890
  getActive: function() {
6793
- return active$1 && includes(active$1.mode, 'hover') && within(active$1.target, this.$el) && active$1;
6891
+ return active$1 && within(active$1.target, this.$el) && active$1;
6794
6892
  },
6795
6893
 
6796
6894
  transitionTo: function(newHeight, el) {
@@ -6827,6 +6925,49 @@
6827
6925
 
6828
6926
  };
6829
6927
 
6928
+ function handleNavItemNavigation(e, toggles, active) {
6929
+
6930
+ var current = e.current;
6931
+ var keyCode = e.keyCode;
6932
+ var target = active && active.target || current;
6933
+ var i = toggles.indexOf(target);
6934
+
6935
+ // Left
6936
+ if (keyCode === keyMap.LEFT && i > 0) {
6937
+ active && active.hide(false);
6938
+ toggles[i - 1].focus();
6939
+ }
6940
+
6941
+ // Right
6942
+ if (keyCode === keyMap.RIGHT && i < toggles.length - 1) {
6943
+ active && active.hide(false);
6944
+ toggles[i + 1].focus();
6945
+ }
6946
+
6947
+ if (keyCode === keyMap.TAB) {
6948
+ target.focus();
6949
+ active && active.hide(false);
6950
+ }
6951
+ }
6952
+
6953
+ function focusFirstFocusableElement(el) {
6954
+ if (!$(':focus', el)) {
6955
+ var focusEl = $(selFocusable, el);
6956
+ if (focusEl) {
6957
+ focusEl.focus();
6958
+ }
6959
+ }
6960
+ }
6961
+
6962
+ var keyMap = {
6963
+ TAB: 9,
6964
+ ESC: 27,
6965
+ LEFT: 37,
6966
+ UP: 38,
6967
+ RIGHT: 39,
6968
+ DOWN: 40
6969
+ };
6970
+
6830
6971
  var offcanvas = {
6831
6972
 
6832
6973
  mixins: [Modal],
@@ -7100,12 +7241,14 @@
7100
7241
 
7101
7242
  props: {
7102
7243
  selContainer: String,
7103
- selContent: String
7244
+ selContent: String,
7245
+ minHeight: Number
7104
7246
  },
7105
7247
 
7106
7248
  data: {
7107
7249
  selContainer: '.uk-modal',
7108
- selContent: '.uk-modal-dialog'
7250
+ selContent: '.uk-modal-dialog',
7251
+ minHeight: 150
7109
7252
  },
7110
7253
 
7111
7254
  computed: {
@@ -7125,7 +7268,7 @@
7125
7268
  },
7126
7269
 
7127
7270
  connected: function() {
7128
- css(this.$el, 'minHeight', 150);
7271
+ css(this.$el, 'minHeight', this.minHeight);
7129
7272
  },
7130
7273
 
7131
7274
  update: {
@@ -7138,7 +7281,7 @@
7138
7281
 
7139
7282
  return {
7140
7283
  current: toFloat(css(this.$el, 'maxHeight')),
7141
- max: Math.max(150, height(this.container) - (dimensions(this.content).height - height(this.$el)))
7284
+ max: Math.max(this.minHeight, height(this.container) - (dimensions(this.content).height - height(this.$el)))
7142
7285
  };
7143
7286
  },
7144
7287
 
@@ -7855,6 +7998,7 @@
7855
7998
  props: {
7856
7999
  connect: String,
7857
8000
  toggle: String,
8001
+ itemNav: String,
7858
8002
  active: Number,
7859
8003
  swiping: Boolean
7860
8004
  },
@@ -7862,6 +8006,7 @@
7862
8006
  data: {
7863
8007
  connect: '~.uk-switcher',
7864
8008
  toggle: '> * > :first-child',
8009
+ itemNav: false,
7865
8010
  active: 0,
7866
8011
  swiping: true,
7867
8012
  cls: 'uk-active',
@@ -7943,7 +8088,7 @@
7943
8088
  name: 'click',
7944
8089
 
7945
8090
  el: function() {
7946
- return this.connects;
8091
+ return this.connects.concat(this.itemNav ? queryAll(this.itemNav, this.$el) : []);
7947
8092
  },
7948
8093
 
7949
8094
  delegate: function() {
@@ -8134,6 +8279,18 @@
8134
8279
 
8135
8280
  },
8136
8281
 
8282
+ {
8283
+ name: 'keydown',
8284
+
8285
+ handler: function(e) {
8286
+ // Space
8287
+ if (e.keyCode === 32) {
8288
+ e.preventDefault();
8289
+ this.$el.click();
8290
+ }
8291
+ }
8292
+ },
8293
+
8137
8294
  {
8138
8295
 
8139
8296
  name: 'click',
@@ -8147,7 +8304,7 @@
8147
8304
  var link;
8148
8305
  if (closest(e.target, 'a[href="#"], a[href=""]')
8149
8306
  || (link = closest(e.target, 'a[href]')) && (
8150
- !attr(this.$el, 'aria-expanded')
8307
+ attr(this.$el, 'aria-expanded') !== 'true'
8151
8308
  || link.hash && matches(this.target, link.hash)
8152
8309
  )
8153
8310
  ) {