uikit 3.7.4-dev.51f672566 → 3.7.4-dev.54855f777

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 (56) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/dist/css/uikit-core-rtl.css +24 -24
  3. package/dist/css/uikit-core-rtl.min.css +1 -1
  4. package/dist/css/uikit-core.css +24 -24
  5. package/dist/css/uikit-core.min.css +1 -1
  6. package/dist/css/uikit-rtl.css +24 -24
  7. package/dist/css/uikit-rtl.min.css +1 -1
  8. package/dist/css/uikit.css +24 -24
  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 +3 -2
  15. package/dist/js/components/lightbox-panel.min.js +2 -2
  16. package/dist/js/components/lightbox.js +3 -2
  17. package/dist/js/components/lightbox.min.js +2 -2
  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 +3 -2
  33. package/dist/js/components/tooltip.min.js +2 -2
  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 +184 -22
  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 +184 -22
  41. package/dist/js/uikit.min.js +2 -2
  42. package/package.json +1 -1
  43. package/src/js/core/navbar.js +137 -8
  44. package/src/js/core/overflow-auto.js +2 -2
  45. package/src/js/core/switcher.js +3 -1
  46. package/src/js/core/toggle.js +28 -9
  47. package/src/js/mixin/togglable.js +3 -2
  48. package/src/js/util/filter.js +2 -2
  49. package/src/less/components/navbar.less +3 -3
  50. package/src/scss/components/navbar.scss +1 -1
  51. package/src/scss/mixins-theme.scss +2 -2
  52. package/src/scss/mixins.scss +2 -2
  53. package/tests/drop.html +19 -13
  54. package/tests/navbar.html +3 -3
  55. package/tests/switcher.html +7 -1
  56. package/tests/toggle.html +2 -2
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "uikit",
3
3
  "title": "UIkit",
4
4
  "description": "UIkit is a lightweight and modular front-end framework for developing fast and powerful web interfaces.",
5
- "version": "3.7.4-dev.51f672566",
5
+ "version": "3.7.4-dev.54855f777",
6
6
  "main": "dist/js/uikit.js",
7
7
  "style": "dist/css/uikit.css",
8
8
  "sideEffects": [
@@ -2,7 +2,7 @@ import {active} from './drop';
2
2
  import Class from '../mixin/class';
3
3
  import FlexBug from '../mixin/flex-bug';
4
4
  import Container from '../mixin/container';
5
- import {$, $$, addClass, after, assign, css, hasClass, height, includes, isRtl, isVisible, matches, noop, parent, Promise, query, remove, toFloat, Transition, within} from 'uikit-util';
5
+ import {$, $$, addClass, after, assign, css, findIndex, hasAttr, hasClass, height, includes, isRtl, isVisible, matches, noop, once, parent, Promise, query, remove, selFocusable, toFloat, Transition, within} from 'uikit-util';
6
6
 
7
7
  const navItem = '.uk-navbar-nav > li > a, .uk-navbar-item, .uk-navbar-toggle';
8
8
 
@@ -49,7 +49,7 @@ export default {
49
49
  computed: {
50
50
 
51
51
  boundary({boundary, boundaryAlign}, $el) {
52
- return (boundary === true || boundaryAlign) ? $el : boundary;
52
+ return boundary === true || boundaryAlign ? $el : boundary;
53
53
  },
54
54
 
55
55
  dropbarAnchor({dropbarAnchor}, $el) {
@@ -91,8 +91,13 @@ export default {
91
91
  get({clsDrop}, $el) {
92
92
  const dropdowns = $$(`.${clsDrop}`, $el);
93
93
 
94
- if (this.container !== $el) {
95
- $$(`.${clsDrop}`, this.container).forEach(el => !includes(dropdowns, el) && dropdowns.push(el));
94
+ if (this.dropContainer !== $el) {
95
+ $$(`.${clsDrop}`, this.dropContainer).forEach(el => {
96
+ const dropdown = this.getDropdown(el);
97
+ if (!includes(dropdowns, el) && dropdown && dropdown.target && within(dropdown.target, this.$el)) {
98
+ dropdowns.push(el);
99
+ }
100
+ });
96
101
  }
97
102
 
98
103
  return dropdowns;
@@ -108,6 +113,10 @@ export default {
108
113
 
109
114
  immediate: true
110
115
 
116
+ },
117
+
118
+ toggles({dropdown}, $el) {
119
+ return $$(dropdown, $el);
111
120
  }
112
121
 
113
122
  },
@@ -120,7 +129,7 @@ export default {
120
129
  events: [
121
130
 
122
131
  {
123
- name: 'mouseover',
132
+ name: 'mouseover focusin',
124
133
 
125
134
  delegate() {
126
135
  return this.dropdown;
@@ -128,13 +137,87 @@ export default {
128
137
 
129
138
  handler({current}) {
130
139
  const active = this.getActive();
131
- if (active && active.target && !within(active.target, current) && !active.tracker.movesTo(active.$el)) {
140
+ if (active && includes(active.mode, 'hover') && active.target && !within(active.target, current) && !active.tracker.movesTo(active.$el)) {
132
141
  active.hide(false);
133
142
  }
134
143
  }
135
144
 
136
145
  },
137
146
 
147
+ {
148
+ name: 'keydown',
149
+
150
+ delegate() {
151
+ return this.dropdown;
152
+ },
153
+
154
+ handler(e) {
155
+
156
+ const {current, keyCode} = e;
157
+ const active = this.getActive();
158
+
159
+ if (keyCode === keyMap.DOWN && hasAttr(current, 'aria-expanded')) {
160
+
161
+ e.preventDefault();
162
+
163
+ if (!active || active.target !== current) {
164
+ current.click();
165
+ once(this.dropContainer, 'show', ({target}) => focusFirstFocusableElement(target));
166
+ } else {
167
+ focusFirstFocusableElement(active.$el);
168
+ }
169
+
170
+ }
171
+
172
+ handleNavItemNavigation(e, this.toggles, active);
173
+ }
174
+ },
175
+
176
+ {
177
+ name: 'keydown',
178
+
179
+ el() {
180
+ return this.dropContainer;
181
+ },
182
+
183
+ delegate() {
184
+ return `.${this.clsDrop}`;
185
+ },
186
+
187
+ handler(e) {
188
+
189
+ const {current, keyCode} = e;
190
+
191
+ if (!includes(this.dropdowns, current)) {
192
+ return;
193
+ }
194
+
195
+ const active = this.getActive();
196
+ const elements = $$(selFocusable, current);
197
+ const i = findIndex(elements, el => matches(el, ':focus'));
198
+
199
+ if (keyCode === keyMap.UP) {
200
+ e.preventDefault();
201
+ if (i > 0) {
202
+ elements[i - 1].focus();
203
+ }
204
+ }
205
+
206
+ if (keyCode === keyMap.DOWN) {
207
+ e.preventDefault();
208
+ if (i < elements.length - 1) {
209
+ elements[i + 1].focus();
210
+ }
211
+ }
212
+
213
+ if (keyCode === keyMap.ESC) {
214
+ active && active.target && active.target.focus();
215
+ }
216
+
217
+ handleNavItemNavigation(e, this.toggles, active);
218
+ }
219
+ },
220
+
138
221
  {
139
222
  name: 'mouseleave',
140
223
 
@@ -142,10 +225,14 @@ export default {
142
225
  return this.dropbar;
143
226
  },
144
227
 
228
+ filter() {
229
+ return this.dropbar;
230
+ },
231
+
145
232
  handler() {
146
233
  const active = this.getActive();
147
234
 
148
- if (active && !this.dropdowns.some(el => matches(el, ':hover'))) {
235
+ if (active && includes(active.mode, 'hover') && !this.dropdowns.some(el => matches(el, ':hover'))) {
149
236
  active.hide();
150
237
  }
151
238
  }
@@ -249,7 +336,7 @@ export default {
249
336
  methods: {
250
337
 
251
338
  getActive() {
252
- return active && includes(active.mode, 'hover') && within(active.target, this.$el) && active;
339
+ return active && within(active.target, this.$el) && active;
253
340
  },
254
341
 
255
342
  transitionTo(newHeight, el) {
@@ -282,3 +369,45 @@ export default {
282
369
  }
283
370
 
284
371
  };
372
+
373
+ function handleNavItemNavigation(e, toggles, active) {
374
+
375
+ const {current, keyCode} = e;
376
+ const target = active && active.target || current;
377
+ const i = toggles.indexOf(target);
378
+
379
+ // Left
380
+ if (keyCode === keyMap.LEFT && i > 0) {
381
+ active && active.hide(false);
382
+ toggles[i - 1].focus();
383
+ }
384
+
385
+ // Right
386
+ if (keyCode === keyMap.RIGHT && i < toggles.length - 1) {
387
+ active && active.hide(false);
388
+ toggles[i + 1].focus();
389
+ }
390
+
391
+ if (keyCode === keyMap.TAB) {
392
+ target.focus();
393
+ active && active.hide(false);
394
+ }
395
+ }
396
+
397
+ function focusFirstFocusableElement(el) {
398
+ if (!$(':focus', el)) {
399
+ const focusEl = $(selFocusable, el);
400
+ if (focusEl) {
401
+ focusEl.focus();
402
+ }
403
+ }
404
+ }
405
+
406
+ const keyMap = {
407
+ TAB: 9,
408
+ ESC: 27,
409
+ LEFT: 37,
410
+ UP: 38,
411
+ RIGHT: 39,
412
+ DOWN: 40
413
+ };
@@ -8,13 +8,13 @@ export default {
8
8
  props: {
9
9
  selContainer: String,
10
10
  selContent: String,
11
- minHeight: Number,
11
+ minHeight: Number
12
12
  },
13
13
 
14
14
  data: {
15
15
  selContainer: '.uk-modal',
16
16
  selContent: '.uk-modal-dialog',
17
- minHeight: 150,
17
+ minHeight: 150
18
18
  },
19
19
 
20
20
  computed: {
@@ -10,6 +10,7 @@ export default {
10
10
  props: {
11
11
  connect: String,
12
12
  toggle: String,
13
+ itemNav: String,
13
14
  active: Number,
14
15
  swiping: Boolean
15
16
  },
@@ -17,6 +18,7 @@ export default {
17
18
  data: {
18
19
  connect: '~.uk-switcher',
19
20
  toggle: '> * > :first-child',
21
+ itemNav: false,
20
22
  active: 0,
21
23
  swiping: true,
22
24
  cls: 'uk-active',
@@ -92,7 +94,7 @@ export default {
92
94
  name: 'click',
93
95
 
94
96
  el() {
95
- return this.connects;
97
+ return this.connects.concat(this.itemNav ? queryAll(this.itemNav, this.$el) : []);
96
98
  },
97
99
 
98
100
  delegate() {
@@ -1,6 +1,6 @@
1
1
  import Media from '../mixin/media';
2
2
  import Togglable from '../mixin/togglable';
3
- import {attr, closest, hasClass, hasTouch, includes, isBoolean, isFocusable, isTouch, isVisible, matches, pointerCancel, pointerDown, pointerEnter, pointerLeave, pointerUp, queryAll, trigger} from 'uikit-util';
3
+ import {attr, closest, hasClass, hasTouch, includes, isBoolean, isFocusable, isTouch, matches, pointerCancel, pointerDown, pointerEnter, pointerLeave, pointerUp, queryAll, trigger} from 'uikit-util';
4
4
 
5
5
  export default {
6
6
 
@@ -73,19 +73,37 @@ export default {
73
73
  handler(e) {
74
74
  if (!isTouch(e) && !this._isTouch) {
75
75
 
76
- const isPointerEvent = includes(['pointerleave', 'pointerenter'], e.type);
77
- if (!isPointerEvent && matches(this.$el, ':hover')
78
- || isPointerEvent && matches(this.$el, ':focus')
76
+ const show = includes([pointerEnter, 'focus'], e.type);
77
+
78
+ if (e.type === 'blur' && matches(this.$el, ':hover')
79
+ || e.type === pointerLeave && matches(this.$el, ':focus')
80
+ || show && attr(this.$el, 'aria-expanded') === 'true'
79
81
  ) {
80
82
  return;
81
83
  }
82
84
 
83
- this.toggle(`toggle${includes([pointerEnter, 'focus'], e.type) ? 'show' : 'hide'}`);
85
+ this.toggle(`toggle${show ? 'show' : 'hide'}`);
84
86
  }
85
87
  }
86
88
 
87
89
  },
88
90
 
91
+ {
92
+ name: 'keydown',
93
+
94
+ filter() {
95
+ return includes(this.mode, 'click');
96
+ },
97
+
98
+ handler(e) {
99
+ // Space
100
+ if (e.keyCode === 32) {
101
+ e.preventDefault();
102
+ this.$el.click();
103
+ }
104
+ }
105
+ },
106
+
89
107
  {
90
108
 
91
109
  name: 'click',
@@ -122,7 +140,9 @@ export default {
122
140
  },
123
141
 
124
142
  handler(e, toggled) {
125
- this.updateAria(toggled);
143
+ if (e.target === this.target[0]) {
144
+ this.updateAria(toggled);
145
+ }
126
146
  }
127
147
  }
128
148
 
@@ -183,12 +203,11 @@ export default {
183
203
  updateAria(toggled) {
184
204
  attr(this.$el, 'aria-expanded', isBoolean(toggled)
185
205
  ? toggled
186
- : this.cls
187
- ? hasClass(this.target[0], this.cls.split(' ')[0])
188
- : isVisible(this.target[0])
206
+ : this.isToggled(this.target)
189
207
  );
190
208
  }
191
209
 
192
210
  }
193
211
 
194
212
  };
213
+
@@ -1,4 +1,4 @@
1
- import {$$, addClass, Animation, assign, css, fastdom, hasAttr, hasClass, height, includes, isBoolean, isFunction, isVisible, noop, Promise, removeClass, toFloat, toggleClass, toNodes, Transition, trigger} from 'uikit-util';
1
+ import {$$, addClass, Animation, assign, css, fastdom, hasClass, height, includes, isBoolean, isFunction, isVisible, noop, Promise, removeClass, toFloat, toggleClass, toNodes, Transition, trigger} from 'uikit-util';
2
2
 
3
3
  export default {
4
4
 
@@ -95,13 +95,14 @@ export default {
95
95
  },
96
96
 
97
97
  isToggled(el = this.$el) {
98
+ el = toNodes(el)[0];
98
99
  return hasClass(el, this.clsEnter)
99
100
  ? true
100
101
  : hasClass(el, this.clsLeave)
101
102
  ? false
102
103
  : this.cls
103
104
  ? hasClass(el, this.cls.split(' ')[0])
104
- : !hasAttr(el, 'hidden');
105
+ : isVisible(el);
105
106
  },
106
107
 
107
108
  _toggle(el, toggled) {
@@ -1,4 +1,3 @@
1
- import {hasAttr} from './attr';
2
1
  import {inBrowser} from './env';
3
2
  import {isDocument, isElement, isString, noop, startsWith, toNode, toNodes} from './lang';
4
3
 
@@ -33,8 +32,9 @@ export function isInput(element) {
33
32
  return toNodes(element).some(element => matches(element, selInput));
34
33
  }
35
34
 
35
+ export const selFocusable = `${selInput},a[href],[tabindex]`;
36
36
  export function isFocusable(element) {
37
- return isInput(element) || matches(element, 'a[href],button') || hasAttr(element, 'tabindex');
37
+ return matches(element, selFocusable);
38
38
  }
39
39
 
40
40
  export function parent(element) {
@@ -295,7 +295,7 @@
295
295
 
296
296
  .uk-navbar-toggle:hover,
297
297
  .uk-navbar-toggle:focus,
298
- .uk-navbar-toggle.uk-open {
298
+ .uk-navbar-toggle[aria-expanded="true"] {
299
299
  color: @navbar-toggle-hover-color;
300
300
  outline: none;
301
301
  text-decoration: none;
@@ -552,7 +552,7 @@
552
552
 
553
553
  .uk-navbar-nav > li:hover > a,
554
554
  .uk-navbar-nav > li > a:focus,
555
- .uk-navbar-nav > li > a.uk-open {
555
+ .uk-navbar-nav > li > a[aria-expanded="true"] {
556
556
  color: @inverse-navbar-nav-item-hover-color;
557
557
  .hook-inverse-navbar-nav-item-hover;
558
558
  }
@@ -579,7 +579,7 @@
579
579
 
580
580
  .uk-navbar-toggle:hover,
581
581
  .uk-navbar-toggle:focus,
582
- .uk-navbar-toggle.uk-open {
582
+ .uk-navbar-toggle[aria-expanded="true"] {
583
583
  color: @inverse-navbar-toggle-hover-color;
584
584
  .hook-inverse-navbar-toggle-hover;
585
585
  }
@@ -295,7 +295,7 @@ $navbar-dropbar-z-index: $global-z-index - 20 !default;
295
295
 
296
296
  .uk-navbar-toggle:hover,
297
297
  .uk-navbar-toggle:focus,
298
- .uk-navbar-toggle.uk-open {
298
+ .uk-navbar-toggle[aria-expanded="true"] {
299
299
  color: $navbar-toggle-hover-color;
300
300
  outline: none;
301
301
  text-decoration: none;
@@ -1378,7 +1378,7 @@
1378
1378
 
1379
1379
  .uk-navbar-nav > li:hover > a,
1380
1380
  .uk-navbar-nav > li > a:focus,
1381
- .uk-navbar-nav > li > a.uk-open {
1381
+ .uk-navbar-nav > li > a[aria-expanded="true"] {
1382
1382
  color: $inverse-navbar-nav-item-hover-color;
1383
1383
  @if(mixin-exists(hook-inverse-navbar-nav-item-hover)) {@include hook-inverse-navbar-nav-item-hover();}
1384
1384
  }
@@ -1405,7 +1405,7 @@
1405
1405
 
1406
1406
  .uk-navbar-toggle:hover,
1407
1407
  .uk-navbar-toggle:focus,
1408
- .uk-navbar-toggle.uk-open {
1408
+ .uk-navbar-toggle[aria-expanded="true"] {
1409
1409
  color: $inverse-navbar-toggle-hover-color;
1410
1410
  @if(mixin-exists(hook-inverse-navbar-toggle-hover)) {@include hook-inverse-navbar-toggle-hover();}
1411
1411
  }
@@ -1132,7 +1132,7 @@
1132
1132
 
1133
1133
  .uk-navbar-nav > li:hover > a,
1134
1134
  .uk-navbar-nav > li > a:focus,
1135
- .uk-navbar-nav > li > a.uk-open {
1135
+ .uk-navbar-nav > li > a[aria-expanded="true"] {
1136
1136
  color: $inverse-navbar-nav-item-hover-color;
1137
1137
  @if(mixin-exists(hook-inverse-navbar-nav-item-hover)) {@include hook-inverse-navbar-nav-item-hover();}
1138
1138
  }
@@ -1159,7 +1159,7 @@
1159
1159
 
1160
1160
  .uk-navbar-toggle:hover,
1161
1161
  .uk-navbar-toggle:focus,
1162
- .uk-navbar-toggle.uk-open {
1162
+ .uk-navbar-toggle[aria-expanded="true"] {
1163
1163
  color: $inverse-navbar-toggle-hover-color;
1164
1164
  @if(mixin-exists(hook-inverse-navbar-toggle-hover)) {@include hook-inverse-navbar-toggle-hover();}
1165
1165
  }
package/tests/drop.html CHANGED
@@ -25,7 +25,7 @@
25
25
  <div class="uk-margin" uk-margin>
26
26
 
27
27
  <div class="uk-inline">
28
- <button class="uk-button uk-button-default" type="button">Hover</button>
28
+ <button class="uk-button uk-button-default" type="button">Hover, Click</button>
29
29
  <div id="parent-drop" uk-drop>
30
30
  <div id="parent-drop-card" class="uk-card uk-card-body uk-card-default">
31
31
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
@@ -56,7 +56,7 @@
56
56
  </div>
57
57
 
58
58
  <div class="uk-inline">
59
- <button class="uk-button uk-button-default" type="button">Click</button>
59
+ <button class="uk-button uk-button-default" type="button">Click only</button>
60
60
  <div id="parent-drop-click" uk-drop="mode: click">
61
61
  <div id="parent-drop-card-click" class="uk-card uk-card-body uk-card-default">
62
62
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
@@ -93,15 +93,6 @@
93
93
  </div>
94
94
  </div>
95
95
 
96
- <div class="uk-inline">
97
- <button class="uk-button uk-button-default" type="button" uk-toggle="target: ~div; mode: click,hover">Same</button>
98
- <button class="uk-button uk-button-default" type="button" uk-toggle="target: ~div; mode: click,hover">Same</button>
99
- <button class="uk-button uk-button-default" type="button">Target</button>
100
- <div uk-drop>
101
- <div class="uk-card uk-card-body uk-card-default">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
102
- </div>
103
- </div>
104
-
105
96
  </div>
106
97
 
107
98
  <h2>Position</h2>
@@ -328,6 +319,21 @@
328
319
 
329
320
  </div>
330
321
 
322
+ <h2>Multiple Toggles</h2>
323
+
324
+ <div class="uk-margin" uk-margin>
325
+
326
+ <div class="uk-inline">
327
+ <button class="uk-button uk-button-default" type="button" uk-toggle="target: ~div; mode: click,hover">Same</button>
328
+ <button class="uk-button uk-button-default" type="button" uk-toggle="target: ~div; mode: click,hover">Same</button>
329
+ <button class="uk-button uk-button-default" type="button">Target</button>
330
+ <div uk-drop>
331
+ <div class="uk-card uk-card-body uk-card-default">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
332
+ </div>
333
+ </div>
334
+
335
+ </div>
336
+
331
337
  <h2>JavaScript Options</h2>
332
338
 
333
339
  <div class="uk-overflow-auto">
@@ -374,8 +380,8 @@
374
380
  <tr>
375
381
  <td><code>boundary</code></td>
376
382
  <td>CSS selector</td>
377
- <td>window</td>
378
- <td>Referenced element to keep Drop's visibility.</td>
383
+ <td>true</td>
384
+ <td>Referenced element to keep Drop's visibility. By default it's the navbar component's element</td>
379
385
  </tr>
380
386
  <tr>
381
387
  <td><code>boundary-align</code></td>
package/tests/navbar.html CHANGED
@@ -528,7 +528,7 @@
528
528
  </div>
529
529
  </nav>
530
530
 
531
- <nav class="uk-navbar-container uk-margin" uk-navbar="align: center">
531
+ <nav class="uk-navbar-container uk-margin" uk-navbar="align: center; boundary: html">
532
532
  <div class="uk-navbar-left">
533
533
 
534
534
  <ul class="uk-navbar-nav">
@@ -1955,8 +1955,8 @@
1955
1955
  <tr>
1956
1956
  <td><code>boundary</code></td>
1957
1957
  <td>CSS selector</td>
1958
- <td>window</td>
1959
- <td>Referenced element to keep Drop's visibility.</td>
1958
+ <td>true</td>
1959
+ <td>Referenced element to keep Drop's visibility. By default it's the navbar component's element.</td>
1960
1960
  </tr>
1961
1961
  <tr>
1962
1962
  <td><code>boundary-align</code></td>
@@ -334,7 +334,7 @@
334
334
  <td><code>connect</code></td>
335
335
  <td>CSS selector</td>
336
336
  <td>~.uk-switcher</td>
337
- <td>Related items container. By default succeeding elements with class 'uk-switcher'.</td>
337
+ <td>Related items container. By default, succeeding elements with class 'uk-switcher'.</td>
338
338
  </tr>
339
339
  <tr>
340
340
  <td><code>toggle</code></td>
@@ -342,6 +342,12 @@
342
342
  <td>> * > :first-child</td>
343
343
  <td>Toggle selector - triggers content switching on click.</td>
344
344
  </tr>
345
+ <tr>
346
+ <td><code>itemNav</code></td>
347
+ <td>CSS selector</td>
348
+ <td>false</td>
349
+ <td>Related nav container. By default, nav items are found in related items container only.</td>
350
+ </tr>
345
351
  <tr>
346
352
  <td><code>active</code></td>
347
353
  <td>Number</td>
package/tests/toggle.html CHANGED
@@ -113,10 +113,10 @@
113
113
 
114
114
  <h3>Mode Hover</h3>
115
115
 
116
- <button class="uk-button uk-button-default" type="button" uk-toggle="target: ~; mode: hover">Hover</button>
116
+ <button class="uk-button uk-button-default" type="button" uk-toggle="target: ~; mode: hover">Hover, Focus</button>
117
117
 
118
+ <p hidden>Hovered, Focused</p>
118
119
  <p>What's up?</p>
119
- <p hidden>Hovered</p>
120
120
 
121
121
  </div>
122
122
  </div>