uikit 3.11.2-dev.31cd2ba38 → 3.11.2-dev.4274bc35b
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.
- package/.eslintrc.json +4 -49
- package/.prettierignore +14 -0
- package/.prettierrc.json +13 -0
- package/.webstorm.js +3 -3
- package/CHANGELOG.md +38 -28
- package/build/.eslintrc.json +1 -3
- package/build/build.js +26 -28
- package/build/icons.js +7 -11
- package/build/less.js +48 -36
- package/build/package.json +2 -2
- package/build/prefix.js +21 -18
- package/build/publishDev.js +6 -8
- package/build/release.js +20 -17
- package/build/scope.js +21 -11
- package/build/scss.js +72 -39
- package/build/util.js +71 -62
- package/build/wrapper/icons.js +0 -2
- package/dist/css/uikit-core-rtl.css +121 -202
- package/dist/css/uikit-core-rtl.min.css +1 -1
- package/dist/css/uikit-core.css +121 -202
- package/dist/css/uikit-core.min.css +1 -1
- package/dist/css/uikit-rtl.css +123 -208
- package/dist/css/uikit-rtl.min.css +1 -1
- package/dist/css/uikit.css +123 -208
- package/dist/css/uikit.min.css +1 -1
- package/dist/js/components/countdown.js +88 -133
- package/dist/js/components/countdown.min.js +1 -1
- package/dist/js/components/filter.js +408 -439
- package/dist/js/components/filter.min.js +1 -1
- package/dist/js/components/lightbox-panel.js +1098 -1316
- package/dist/js/components/lightbox-panel.min.js +1 -1
- package/dist/js/components/lightbox.js +1144 -1393
- package/dist/js/components/lightbox.min.js +1 -1
- package/dist/js/components/notification.js +94 -114
- package/dist/js/components/notification.min.js +1 -1
- package/dist/js/components/parallax.js +326 -358
- package/dist/js/components/parallax.min.js +1 -1
- package/dist/js/components/slider-parallax.js +324 -357
- package/dist/js/components/slider-parallax.min.js +1 -1
- package/dist/js/components/slider.js +768 -843
- package/dist/js/components/slider.min.js +1 -1
- package/dist/js/components/slideshow-parallax.js +324 -357
- package/dist/js/components/slideshow-parallax.min.js +1 -1
- package/dist/js/components/slideshow.js +645 -793
- package/dist/js/components/slideshow.min.js +1 -1
- package/dist/js/components/sortable.js +587 -620
- package/dist/js/components/sortable.min.js +1 -1
- package/dist/js/components/tooltip.js +324 -356
- package/dist/js/components/tooltip.min.js +1 -1
- package/dist/js/components/upload.js +155 -167
- package/dist/js/components/upload.min.js +1 -1
- package/dist/js/uikit-core.js +5405 -6716
- package/dist/js/uikit-core.min.js +1 -1
- package/dist/js/uikit-icons.js +7 -9
- package/dist/js/uikit-icons.min.js +1 -1
- package/dist/js/uikit.js +7997 -9703
- package/dist/js/uikit.min.js +1 -1
- package/jsconfig.json +1 -1
- package/package.json +64 -60
- package/src/js/api/boot.js +25 -32
- package/src/js/api/component.js +15 -28
- package/src/js/api/global.js +6 -12
- package/src/js/api/hooks.js +14 -33
- package/src/js/api/instance.js +7 -15
- package/src/js/api/state.js +79 -100
- package/src/js/components/countdown.js +24 -50
- package/src/js/components/filter.js +70 -66
- package/src/js/components/index.js +13 -13
- package/src/js/components/internal/lightbox-animations.js +14 -25
- package/src/js/components/internal/slider-preload.js +37 -0
- package/src/js/components/internal/slider-transitioner.js +66 -45
- package/src/js/components/internal/slideshow-animations.js +46 -64
- package/src/js/components/lightbox-panel.js +107 -105
- package/src/js/components/lightbox.js +17 -39
- package/src/js/components/notification.js +49 -43
- package/src/js/components/parallax.js +16 -30
- package/src/js/components/slider-parallax.js +13 -23
- package/src/js/components/slider.js +95 -64
- package/src/js/components/slideshow-parallax.js +1 -1
- package/src/js/components/slideshow.js +15 -13
- package/src/js/components/sortable.js +125 -106
- package/src/js/components/tooltip.js +41 -31
- package/src/js/components/upload.js +52 -63
- package/src/js/core/accordion.js +53 -48
- package/src/js/core/alert.js +9 -17
- package/src/js/core/core.js +74 -53
- package/src/js/core/cover.js +11 -15
- package/src/js/core/drop.js +106 -92
- package/src/js/core/form-custom.js +20 -25
- package/src/js/core/gif.js +3 -7
- package/src/js/core/grid.js +57 -58
- package/src/js/core/height-match.js +16 -29
- package/src/js/core/height-viewport.js +28 -35
- package/src/js/core/icon.js +38 -50
- package/src/js/core/img.js +127 -87
- package/src/js/core/index.js +39 -39
- package/src/js/core/leader.js +9 -18
- package/src/js/core/margin.js +21 -37
- package/src/js/core/modal.js +49 -36
- package/src/js/core/nav.js +2 -4
- package/src/js/core/navbar.js +112 -88
- package/src/js/core/offcanvas.js +49 -53
- package/src/js/core/overflow-auto.js +13 -17
- package/src/js/core/responsive.js +14 -12
- package/src/js/core/scroll.js +10 -20
- package/src/js/core/scrollspy-nav.js +34 -31
- package/src/js/core/scrollspy.js +37 -54
- package/src/js/core/sticky.js +130 -91
- package/src/js/core/svg.js +68 -83
- package/src/js/core/switcher.js +47 -46
- package/src/js/core/tab.js +7 -10
- package/src/js/core/toggle.js +66 -67
- package/src/js/core/video.js +11 -22
- package/src/js/mixin/animate.js +19 -20
- package/src/js/mixin/class.js +2 -4
- package/src/js/mixin/container.js +7 -11
- package/src/js/mixin/internal/animate-fade.js +73 -30
- package/src/js/mixin/internal/animate-slide.js +58 -41
- package/src/js/mixin/internal/slideshow-animations.js +7 -14
- package/src/js/mixin/internal/slideshow-transitioner.js +10 -17
- package/src/js/mixin/media.js +5 -10
- package/src/js/mixin/modal.js +89 -66
- package/src/js/mixin/parallax.js +130 -106
- package/src/js/mixin/position.js +26 -20
- package/src/js/mixin/slider-autoplay.js +12 -21
- package/src/js/mixin/slider-drag.js +64 -65
- package/src/js/mixin/slider-nav.js +26 -35
- package/src/js/mixin/slider-reactive.js +2 -8
- package/src/js/mixin/slider.js +48 -55
- package/src/js/mixin/slideshow.js +13 -19
- package/src/js/mixin/togglable.js +89 -63
- package/src/js/uikit-core.js +2 -4
- package/src/js/uikit.js +2 -4
- package/src/js/util/ajax.js +20 -39
- package/src/js/util/animation.js +77 -75
- package/src/js/util/attr.js +17 -21
- package/src/js/util/class.js +14 -52
- package/src/js/util/dimensions.js +56 -43
- package/src/js/util/dom.js +44 -80
- package/src/js/util/env.js +7 -12
- package/src/js/util/event.js +60 -59
- package/src/js/util/fastdom.js +1 -6
- package/src/js/util/filter.js +17 -34
- package/src/js/util/index.js +0 -1
- package/src/js/util/lang.js +82 -121
- package/src/js/util/mouse.js +19 -17
- package/src/js/util/options.js +33 -47
- package/src/js/util/player.js +41 -36
- package/src/js/util/position.js +54 -46
- package/src/js/util/selector.js +43 -58
- package/src/js/util/style.js +39 -49
- package/src/js/util/viewport.js +75 -64
- package/src/less/components/base.less +10 -33
- package/src/less/components/flex.less +0 -9
- package/src/less/components/form-range.less +52 -97
- package/src/less/components/form.less +0 -1
- package/src/less/components/leader.less +0 -1
- package/src/less/components/lightbox.less +0 -1
- package/src/less/components/modal.less +3 -7
- package/src/less/components/navbar.less +0 -7
- package/src/less/components/progress.less +14 -36
- package/src/less/components/slider.less +0 -3
- package/src/less/components/slideshow.less +0 -3
- package/src/less/components/text.less +16 -32
- package/src/less/components/utility.less +22 -0
- package/src/scss/components/base.scss +10 -33
- package/src/scss/components/flex.scss +0 -9
- package/src/scss/components/form-range.scss +52 -97
- package/src/scss/components/form.scss +3 -4
- package/src/scss/components/icon.scss +2 -2
- package/src/scss/components/leader.scss +0 -1
- package/src/scss/components/lightbox.scss +0 -1
- package/src/scss/components/modal.scss +3 -7
- package/src/scss/components/navbar.scss +0 -7
- package/src/scss/components/progress.scss +14 -36
- package/src/scss/components/search.scss +1 -1
- package/src/scss/components/slider.scss +0 -3
- package/src/scss/components/slideshow.scss +0 -3
- package/src/scss/components/text.scss +16 -32
- package/src/scss/components/utility.scss +22 -0
- package/src/scss/mixins-theme.scss +1 -1
- package/src/scss/mixins.scss +1 -1
- package/src/scss/variables-theme.scss +9 -9
- package/src/scss/variables.scss +9 -9
- package/tests/align.html +10 -10
- package/tests/animation.html +2 -2
- package/tests/article.html +2 -2
- package/tests/base.html +3 -3
- package/tests/card.html +10 -10
- package/tests/column.html +3 -3
- package/tests/comment.html +9 -9
- package/tests/dotnav.html +3 -3
- package/tests/image.html +296 -48
- package/tests/images/image-type.avif +0 -0
- package/tests/images/image-type.jpeg +0 -0
- package/tests/images/image-type.webp +0 -0
- package/tests/index.html +8 -8
- package/tests/js/index.js +114 -85
- package/tests/lightbox.html +10 -10
- package/tests/marker.html +2 -2
- package/tests/modal.html +8 -9
- package/tests/navbar.html +2 -2
- package/tests/overlay.html +7 -7
- package/tests/parallax.html +14 -5
- package/tests/position.html +12 -12
- package/tests/slidenav.html +12 -12
- package/tests/slider.html +20 -20
- package/tests/sortable.html +1 -1
- package/tests/sticky-parallax.html +47 -62
- package/tests/svg.html +6 -6
- package/tests/table.html +11 -11
- package/tests/thumbnav.html +12 -12
- package/tests/transition.html +30 -30
- package/tests/utility.html +33 -33
- package/tests/video.html +1 -1
- package/tests/width.html +1 -1
- package/src/js/mixin/flex-bug.js +0 -56
- package/src/js/util/promise.js +0 -191
- package/tests/images/animated.gif +0 -0
- package/tests/images/test.avif +0 -0
- package/tests/images/test.webp +0 -0
package/.eslintrc.json
CHANGED
|
@@ -1,62 +1,17 @@
|
|
|
1
1
|
{
|
|
2
|
-
"root":true,
|
|
2
|
+
"root": true,
|
|
3
3
|
"env": {
|
|
4
4
|
"es6": true,
|
|
5
5
|
"browser": true
|
|
6
6
|
},
|
|
7
|
-
"extends": [
|
|
8
|
-
"eslint:recommended"
|
|
9
|
-
],
|
|
7
|
+
"extends": ["eslint:recommended", "prettier"],
|
|
10
8
|
"parserOptions": {
|
|
11
|
-
"sourceType": "module"
|
|
9
|
+
"sourceType": "module",
|
|
10
|
+
"ecmaVersion": 2022
|
|
12
11
|
},
|
|
13
12
|
"globals": {
|
|
14
13
|
"VERSION": true,
|
|
15
14
|
"ICONS": true,
|
|
16
15
|
"NAME": true
|
|
17
|
-
},
|
|
18
|
-
"rules": {
|
|
19
|
-
"arrow-parens": ["error", "as-needed"],
|
|
20
|
-
"brace-style": ["error", "1tbs", {"allowSingleLine": true}],
|
|
21
|
-
"comma-dangle": ["error", "never"],
|
|
22
|
-
"comma-spacing": "error",
|
|
23
|
-
"comma-style": "error",
|
|
24
|
-
"eqeqeq": ["error", "smart"],
|
|
25
|
-
"eol-last": "error",
|
|
26
|
-
"indent": "off",
|
|
27
|
-
"indent-legacy": ["error", 4, {"SwitchCase": 1}],
|
|
28
|
-
"key-spacing": "error",
|
|
29
|
-
"keyword-spacing": "error",
|
|
30
|
-
"linebreak-style": ["error", "unix"],
|
|
31
|
-
"no-array-constructor": "error",
|
|
32
|
-
"no-case-declarations": "warn",
|
|
33
|
-
"no-duplicate-imports": "error",
|
|
34
|
-
"no-empty": ["error", {"allowEmptyCatch": true}],
|
|
35
|
-
"no-extend-native": "error",
|
|
36
|
-
"no-lone-blocks": "error",
|
|
37
|
-
"no-lonely-if": "error",
|
|
38
|
-
"no-multi-spaces": "error",
|
|
39
|
-
"no-multiple-empty-lines": ["error", {"max": 2, "maxEOF": 1, "maxBOF": 0}],
|
|
40
|
-
"no-template-curly-in-string": "error",
|
|
41
|
-
"no-trailing-spaces": "error",
|
|
42
|
-
"no-unused-vars": ["error", {"vars": "local", "args": "none"}],
|
|
43
|
-
"no-var": "error",
|
|
44
|
-
"object-curly-spacing": "error",
|
|
45
|
-
"object-shorthand": "error",
|
|
46
|
-
"prefer-const": ["error", {"destructuring": "all"}],
|
|
47
|
-
"prefer-destructuring": "warn",
|
|
48
|
-
"quotes": ["error", "single", {"avoidEscape": true}],
|
|
49
|
-
"semi": ["error", "always"],
|
|
50
|
-
"sort-imports": ["error", {
|
|
51
|
-
"ignoreCase": true,
|
|
52
|
-
"ignoreDeclarationSort": true
|
|
53
|
-
}],
|
|
54
|
-
"space-before-blocks": "error",
|
|
55
|
-
"space-before-function-paren": ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}],
|
|
56
|
-
"space-in-parens": "error",
|
|
57
|
-
"space-infix-ops": "error",
|
|
58
|
-
"space-unary-ops": "error",
|
|
59
|
-
"spaced-comment": "error",
|
|
60
|
-
"template-curly-spacing": "error"
|
|
61
16
|
}
|
|
62
17
|
}
|
package/.prettierignore
ADDED
package/.prettierrc.json
ADDED
package/.webstorm.js
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,26 +1,35 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## WIP Picture element
|
|
4
|
-
|
|
5
|
-
### Added
|
|
6
|
-
|
|
7
|
-
- Add support for <picture> element in Img component
|
|
8
|
-
- Add `sources` option to Img component
|
|
9
|
-
|
|
10
|
-
### Changed
|
|
11
|
-
|
|
12
|
-
- Img component no longer sets a placeholder (use height/width instead)
|
|
13
|
-
|
|
14
3
|
## WIP
|
|
15
4
|
|
|
16
5
|
### Added
|
|
17
6
|
|
|
7
|
+
- Add support for `<picture>` element to Image component
|
|
8
|
+
- Add `sources` option to emulate `<picture>` element for background images to Image component
|
|
9
|
+
- Add `loading` option to avoid lazy loading background images in first visible viewport to Image component
|
|
10
|
+
- Add support for `loading="lazy"` attribute to SVG component
|
|
18
11
|
- Add `position` option with `top`, `bottom` and `auto` values to Sticky component
|
|
19
12
|
- Add support for basic math operands in `offset` option of Sticky component
|
|
13
|
+
- Add animation stop positions to Parallax component
|
|
14
|
+
- Add object fit and position classes to Utility component
|
|
15
|
+
- Add support for specifying location for steps in Parallax component
|
|
20
16
|
|
|
21
17
|
### Changed
|
|
22
18
|
|
|
19
|
+
- Image elements need `width` and `height` attributes to prevent layout shifts
|
|
20
|
+
- Image component no longer relies on session storage to check for cached images to immediately show an image
|
|
21
|
+
- Slideshow and Slider remove native `loading="lazy"` attribute from adjacent slides
|
|
23
22
|
- Improve sticky behavior if sticky content is larger than the viewport
|
|
23
|
+
- Sticky component's `bottom` option checks for bottom padding if sticky element is within referenced element
|
|
24
|
+
|
|
25
|
+
### Deprecated
|
|
26
|
+
|
|
27
|
+
- Deprecate `uk-img` for `<img>` element: Use native `loading="lazy"` attribute instead
|
|
28
|
+
|
|
29
|
+
## Removed
|
|
30
|
+
|
|
31
|
+
- Remove IE11 support
|
|
32
|
+
- Removed `data-width` and `data-height` for `<img>` element from Image component. Use native attributes instead.
|
|
24
33
|
|
|
25
34
|
### Fixed
|
|
26
35
|
|
|
@@ -28,6 +37,7 @@
|
|
|
28
37
|
- Fix Sticky component setting wrong margin for placeholder
|
|
29
38
|
- Fix dropdowns not closing in Navbar component when hovering dropbar and navigation with keyboard
|
|
30
39
|
- Fix dropdown no longer closes if pointer is still moving towards it
|
|
40
|
+
- Fix `fadein` not transformed correctly to `fade-in` in scss build
|
|
31
41
|
|
|
32
42
|
## 3.11.1 (February 7, 2022)
|
|
33
43
|
|
|
@@ -66,7 +76,7 @@
|
|
|
66
76
|
- Fix usage of `data-` prefix for Cover and Responsive component
|
|
67
77
|
- Fix pointer events for iframes in Cover component
|
|
68
78
|
- Fix Slideshow component no longer throws if items list does not exist
|
|
69
|
-
- Fix space key no longer triggers Toggle on
|
|
79
|
+
- Fix space key no longer triggers Toggle on `<input>` element
|
|
70
80
|
|
|
71
81
|
## 3.10.0 (January 12, 2022)
|
|
72
82
|
|
|
@@ -383,7 +393,7 @@
|
|
|
383
393
|
|
|
384
394
|
- Fix component update handling
|
|
385
395
|
- Fix Tooltip position
|
|
386
|
-
- Fix Tooltip component applied to button
|
|
396
|
+
- Fix Tooltip component applied to `<button>` element in iOS
|
|
387
397
|
- Fix regression in Switcher component
|
|
388
398
|
|
|
389
399
|
## 3.6.8 (January 5, 2021)
|
|
@@ -932,7 +942,7 @@
|
|
|
932
942
|
### Fixed
|
|
933
943
|
|
|
934
944
|
- Fix Slideshow invisible after switching tabs in Switcher
|
|
935
|
-
- Fix lazy loading images in
|
|
945
|
+
- Fix lazy loading images in Image component in UC Browser
|
|
936
946
|
- Fix opening Offcanvas/Modal through buttons
|
|
937
947
|
|
|
938
948
|
## 3.1.8 (August 29, 2019)
|
|
@@ -1102,8 +1112,8 @@
|
|
|
1102
1112
|
### Fixed
|
|
1103
1113
|
|
|
1104
1114
|
- Fix touch event detection
|
|
1105
|
-
- Fix background images are shown too large on retina displays in
|
|
1106
|
-
- Fix correctly calculate offsetLeft in
|
|
1115
|
+
- Fix background images are shown too large on retina displays in Image component
|
|
1116
|
+
- Fix correctly calculate offsetLeft in Image component
|
|
1107
1117
|
- Fix autofocus elements not blurring within Toggable on hide
|
|
1108
1118
|
|
|
1109
1119
|
## 3.0.2 (January 15, 2019)
|
|
@@ -1112,7 +1122,7 @@
|
|
|
1112
1122
|
|
|
1113
1123
|
- Fix offcanvas overlay transition
|
|
1114
1124
|
- Fix active state in Switcher component
|
|
1115
|
-
- Fix background images on displays with higher devicePixelRatio in
|
|
1125
|
+
- Fix background images on displays with higher devicePixelRatio in Image component
|
|
1116
1126
|
|
|
1117
1127
|
## 3.0.1 (January 14, 2019)
|
|
1118
1128
|
|
|
@@ -1145,7 +1155,7 @@
|
|
|
1145
1155
|
### Fixed
|
|
1146
1156
|
|
|
1147
1157
|
- Fix visible toggle and its child elements not being focusable through keyboard navigation
|
|
1148
|
-
- Fix
|
|
1158
|
+
- Fix Image component correctly escapes urls on background images
|
|
1149
1159
|
|
|
1150
1160
|
## 3.0.0 rc 26 (January 3, 2019)
|
|
1151
1161
|
|
|
@@ -1164,8 +1174,8 @@
|
|
|
1164
1174
|
- Fix `flex bug` mixin (IE 11)
|
|
1165
1175
|
- Fix properly resolving css custom properties in scss
|
|
1166
1176
|
- Fix order of variable assignments in scss
|
|
1167
|
-
- Fix background images are shown too large on retina displays in
|
|
1168
|
-
- Fix lazy loading images in
|
|
1177
|
+
- Fix background images are shown too large on retina displays in Image component
|
|
1178
|
+
- Fix lazy loading images in Image component in Safari
|
|
1169
1179
|
- Limit positioned element to container width and margin in Position component
|
|
1170
1180
|
|
|
1171
1181
|
## 3.0.0 rc 25 (November 30, 2018)
|
|
@@ -1253,7 +1263,7 @@
|
|
|
1253
1263
|
|
|
1254
1264
|
### Fixed
|
|
1255
1265
|
|
|
1256
|
-
- Fix preserve color not working if class is set on svg element in Icon component
|
|
1266
|
+
- Fix preserve color not working if class is set on `<svg>` element in Icon component
|
|
1257
1267
|
- Fix inverse hover color for accordion title
|
|
1258
1268
|
- Fix close color being overwritten from toolbar in Lightbox component
|
|
1259
1269
|
- Fix Modal not hiding upon being destroyed
|
|
@@ -1497,7 +1507,7 @@
|
|
|
1497
1507
|
|
|
1498
1508
|
### Added
|
|
1499
1509
|
|
|
1500
|
-
- Add
|
|
1510
|
+
- Add Image component to lazy load images
|
|
1501
1511
|
- Add Filter component to filter and sort any kind of layout
|
|
1502
1512
|
- Add `masonry` option to Grid component
|
|
1503
1513
|
- Add inverse style for form icon
|
|
@@ -1660,7 +1670,7 @@
|
|
|
1660
1670
|
|
|
1661
1671
|
### Changed
|
|
1662
1672
|
|
|
1663
|
-
- IMPORTANT: Use
|
|
1673
|
+
- IMPORTANT: Use `<a>` element instead of headings for the accordion title
|
|
1664
1674
|
- Calling a component constructor with data on an already initialized component will reset the component
|
|
1665
1675
|
- Dropbar no longer repositions Dropdowns in DOM upon opening
|
|
1666
1676
|
|
|
@@ -1761,7 +1771,7 @@
|
|
|
1761
1771
|
- Fix slide animations stacking when tab is not focused in Slideshow component
|
|
1762
1772
|
- Fix overlay not showing in Offcanvas component
|
|
1763
1773
|
- Fix Slideshow Parallax in Slideshow component for IE11
|
|
1764
|
-
- Fix default border-radius for button
|
|
1774
|
+
- Fix default border-radius for `<button>` element in Chrome 62.
|
|
1765
1775
|
|
|
1766
1776
|
## 3.0.0 beta 31 (October 20, 2017)
|
|
1767
1777
|
|
|
@@ -1870,7 +1880,7 @@
|
|
|
1870
1880
|
|
|
1871
1881
|
- Offcanvas will keep scroll position if anchor link was clicked
|
|
1872
1882
|
- Fix margin modifier in Position component for IE11
|
|
1873
|
-
- Fix divider-small text alignment for
|
|
1883
|
+
- Fix divider-small text alignment for `<hr>` element Edge and IE
|
|
1874
1884
|
- Fix setting the ratio of Spinner component
|
|
1875
1885
|
- Fix event handling in Sortable component
|
|
1876
1886
|
- Fix grid calculation (Firefox)
|
|
@@ -1906,7 +1916,7 @@
|
|
|
1906
1916
|
|
|
1907
1917
|
### Changed
|
|
1908
1918
|
|
|
1909
|
-
- Make Icon component work with button
|
|
1919
|
+
- Make Icon component work with `<button>` element
|
|
1910
1920
|
|
|
1911
1921
|
### Fixed
|
|
1912
1922
|
|
|
@@ -2236,7 +2246,7 @@
|
|
|
2236
2246
|
|
|
2237
2247
|
### Changed
|
|
2238
2248
|
|
|
2239
|
-
- UIkit observes
|
|
2249
|
+
- UIkit observes `<body>` element too now
|
|
2240
2250
|
- Performance improvements
|
|
2241
2251
|
|
|
2242
2252
|
### Fixed
|
|
@@ -2282,7 +2292,7 @@
|
|
|
2282
2292
|
|
|
2283
2293
|
### Fixed
|
|
2284
2294
|
|
|
2285
|
-
- Fix Icon component on canvas elements (Safari)
|
|
2295
|
+
- Fix Icon component on `<canvas>` elements (Safari)
|
|
2286
2296
|
|
|
2287
2297
|
## 3.0.0 beta 1 (January 09, 2017)
|
|
2288
2298
|
|
package/build/.eslintrc.json
CHANGED
package/build/build.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import camelize from 'camelcase';
|
|
2
|
-
import {basename, resolve} from 'path';
|
|
3
|
-
import {args, compile, glob, icons} from './util.js';
|
|
2
|
+
import { basename, resolve } from 'path';
|
|
3
|
+
import { args, compile, glob, icons } from './util.js';
|
|
4
4
|
|
|
5
5
|
const bundles = getBundleTasks();
|
|
6
6
|
const components = await getComponentTasks();
|
|
7
|
-
const buildAll =
|
|
8
|
-
|
|
9
|
-
).
|
|
7
|
+
const buildAll =
|
|
8
|
+
args.all ||
|
|
9
|
+
!Object.keys(args).filter((name) => !['d', 'debug', 'nominify', 'watch', '_'].includes(name))
|
|
10
|
+
.length;
|
|
10
11
|
|
|
11
12
|
if (args.h || args.help) {
|
|
12
13
|
console.log(`
|
|
@@ -30,62 +31,59 @@ if (args.h || args.help) {
|
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
let tasks;
|
|
33
|
-
const allTasks = {...bundles, ...components};
|
|
34
|
+
const allTasks = { ...bundles, ...components };
|
|
34
35
|
if (buildAll) {
|
|
35
36
|
tasks = allTasks;
|
|
36
37
|
} else if (args.components) {
|
|
37
38
|
tasks = components;
|
|
38
39
|
} else {
|
|
39
40
|
tasks = Object.keys(args)
|
|
40
|
-
.map(step => allTasks[step])
|
|
41
|
-
.filter(t => t);
|
|
41
|
+
.map((step) => allTasks[step])
|
|
42
|
+
.filter((t) => t);
|
|
42
43
|
}
|
|
43
44
|
|
|
44
|
-
await Promise.all(Object.values(tasks).map(task => task()));
|
|
45
|
+
await Promise.all(Object.values(tasks).map((task) => task()));
|
|
45
46
|
|
|
46
47
|
function getBundleTasks() {
|
|
47
48
|
return {
|
|
48
|
-
|
|
49
49
|
core: () => compile('src/js/uikit-core.js', 'dist/js/uikit-core'),
|
|
50
50
|
|
|
51
51
|
uikit: () => compile('src/js/uikit.js', 'dist/js/uikit'),
|
|
52
52
|
|
|
53
|
-
icons: async () =>
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
53
|
+
icons: async () =>
|
|
54
|
+
compile('build/wrapper/icons.js', 'dist/js/uikit-icons', {
|
|
55
|
+
name: 'icons',
|
|
56
|
+
replaces: { ICONS: await icons('{src/images,custom}/icons/*.svg') },
|
|
57
|
+
}),
|
|
58
|
+
|
|
59
|
+
tests: async () =>
|
|
60
|
+
compile('tests/js/index.js', 'tests/js/test', {
|
|
61
|
+
name: 'test',
|
|
62
|
+
replaces: { TESTS: await getTestFiles() },
|
|
63
|
+
}),
|
|
63
64
|
};
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
async function getComponentTasks() {
|
|
67
|
-
|
|
68
68
|
const components = await glob('src/js/components/!(index).js');
|
|
69
69
|
|
|
70
70
|
return components.reduce((components, file) => {
|
|
71
|
-
|
|
72
71
|
const name = basename(file, '.js');
|
|
73
72
|
|
|
74
73
|
components[name] = () =>
|
|
75
74
|
compile('build/wrapper/component.js', `dist/js/components/${name}`, {
|
|
76
75
|
name,
|
|
77
76
|
external: ['uikit', 'uikit-util'],
|
|
78
|
-
globals: {uikit: 'UIkit', 'uikit-util': 'UIkit.util'},
|
|
79
|
-
aliases: {component: resolve('src/js/components', name)},
|
|
80
|
-
replaces: {NAME: `'${camelize(name)}'`}
|
|
77
|
+
globals: { uikit: 'UIkit', 'uikit-util': 'UIkit.util' },
|
|
78
|
+
aliases: { component: resolve('src/js/components', name) },
|
|
79
|
+
replaces: { NAME: `'${camelize(name)}'` },
|
|
81
80
|
});
|
|
82
81
|
|
|
83
82
|
return components;
|
|
84
|
-
|
|
85
83
|
}, {});
|
|
86
84
|
}
|
|
87
85
|
|
|
88
86
|
async function getTestFiles() {
|
|
89
|
-
const files = await glob('tests/!(index).html', {nosort: true});
|
|
90
|
-
return JSON.stringify(files.map(file => basename(file, '.html')));
|
|
87
|
+
const files = await glob('tests/!(index).html', { nosort: true });
|
|
88
|
+
return JSON.stringify(files.map((file) => basename(file, '.html')));
|
|
91
89
|
}
|
package/build/icons.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {args, compile, glob, icons} from './util.js';
|
|
1
|
+
import { args, compile, glob, icons } from './util.js';
|
|
2
2
|
|
|
3
3
|
if (args.h || args.help) {
|
|
4
4
|
console.log(`
|
|
@@ -25,14 +25,10 @@ await Promise.all((await glob(path)).map(compileIcons));
|
|
|
25
25
|
|
|
26
26
|
async function compileIcons(folder) {
|
|
27
27
|
const [, name] = folder.toString().match(new RegExp(match, 'i'));
|
|
28
|
-
return compile(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
ICONS: await icons(`{src/images/icons,${folder}}/*.svg`)
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
);
|
|
28
|
+
return compile('build/wrapper/icons.js', `dist/js/uikit-icons-${name}`, {
|
|
29
|
+
name,
|
|
30
|
+
replaces: {
|
|
31
|
+
ICONS: await icons(`{src/images/icons,${folder}}/*.svg`),
|
|
32
|
+
},
|
|
33
|
+
});
|
|
38
34
|
}
|
package/build/less.js
CHANGED
|
@@ -1,59 +1,72 @@
|
|
|
1
1
|
import rtlcss from 'rtlcss';
|
|
2
|
-
import {basename} from 'path';
|
|
3
|
-
import {
|
|
2
|
+
import { basename } from 'path';
|
|
3
|
+
import {
|
|
4
|
+
args,
|
|
5
|
+
banner,
|
|
6
|
+
glob,
|
|
7
|
+
minify,
|
|
8
|
+
pathExists,
|
|
9
|
+
read,
|
|
10
|
+
readJson,
|
|
11
|
+
renderLess,
|
|
12
|
+
write,
|
|
13
|
+
} from './util.js';
|
|
4
14
|
|
|
5
|
-
const {rtl} = args;
|
|
15
|
+
const { rtl } = args;
|
|
6
16
|
const develop = args.develop || args.debug || args.d || args.nominify;
|
|
7
17
|
const sources = [
|
|
8
|
-
{src: 'src/less/uikit.less', dist: `dist/css/uikit-core${rtl ? '-rtl' : ''}.css`},
|
|
9
|
-
{src: 'src/less/uikit.theme.less', dist: `dist/css/uikit${rtl ? '-rtl' : ''}.css`}
|
|
18
|
+
{ src: 'src/less/uikit.less', dist: `dist/css/uikit-core${rtl ? '-rtl' : ''}.css` },
|
|
19
|
+
{ src: 'src/less/uikit.theme.less', dist: `dist/css/uikit${rtl ? '-rtl' : ''}.css` },
|
|
10
20
|
];
|
|
11
21
|
|
|
12
|
-
const themes = await pathExists('themes.json') ? await readJson('themes.json') : {};
|
|
22
|
+
const themes = (await pathExists('themes.json')) ? await readJson('themes.json') : {};
|
|
13
23
|
|
|
14
24
|
for (const src of await glob('custom/*.less')) {
|
|
15
25
|
const theme = basename(src, '.less');
|
|
16
26
|
const dist = `dist/css/uikit.${theme}${rtl ? '-rtl' : ''}.css`;
|
|
17
27
|
|
|
18
|
-
themes[theme] = {css: `../${dist}`};
|
|
28
|
+
themes[theme] = { css: `../${dist}` };
|
|
19
29
|
|
|
20
30
|
if (await pathExists(`dist/js/uikit-icons-${theme}.js`)) {
|
|
21
31
|
themes[theme].icons = `../dist/js/uikit-icons-${theme}.js`;
|
|
22
32
|
}
|
|
23
33
|
|
|
24
|
-
sources.push({src, dist});
|
|
34
|
+
sources.push({ src, dist });
|
|
25
35
|
}
|
|
26
36
|
|
|
27
|
-
await Promise.all(sources.map(({src, dist}) => compile(src, dist, develop, rtl)));
|
|
37
|
+
await Promise.all(sources.map(({ src, dist }) => compile(src, dist, develop, rtl)));
|
|
28
38
|
|
|
29
|
-
if (!rtl && (Object.keys(themes).length || !await pathExists('themes.json'))) {
|
|
39
|
+
if (!rtl && (Object.keys(themes).length || !(await pathExists('themes.json')))) {
|
|
30
40
|
await write('themes.json', JSON.stringify(themes));
|
|
31
41
|
}
|
|
32
42
|
|
|
33
43
|
async function compile(file, dist, develop, rtl) {
|
|
34
|
-
|
|
35
44
|
const less = await read(file);
|
|
36
45
|
|
|
37
|
-
let output = (
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
46
|
+
let output = (
|
|
47
|
+
await renderLess(less, {
|
|
48
|
+
relativeUrls: true,
|
|
49
|
+
rootpath: '../../',
|
|
50
|
+
paths: ['src/less/', 'custom/'],
|
|
51
|
+
})
|
|
52
|
+
).replace(/\.\.\/dist\//g, '');
|
|
42
53
|
|
|
43
54
|
if (rtl) {
|
|
44
55
|
output = rtlcss.process(
|
|
45
56
|
output,
|
|
46
57
|
{
|
|
47
|
-
stringMap: [
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
stringMap: [
|
|
59
|
+
{
|
|
60
|
+
name: 'previous-next',
|
|
61
|
+
priority: 100,
|
|
62
|
+
search: ['previous', 'Previous', 'PREVIOUS'],
|
|
63
|
+
replace: ['next', 'Next', 'NEXT'],
|
|
64
|
+
options: {
|
|
65
|
+
scope: '*',
|
|
66
|
+
ignoreCase: false,
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
],
|
|
57
70
|
},
|
|
58
71
|
[
|
|
59
72
|
{
|
|
@@ -61,23 +74,23 @@ async function compile(file, dist, develop, rtl) {
|
|
|
61
74
|
priority: 50,
|
|
62
75
|
directives: {
|
|
63
76
|
control: {},
|
|
64
|
-
value: []
|
|
77
|
+
value: [],
|
|
65
78
|
},
|
|
66
79
|
processors: [
|
|
67
80
|
{
|
|
68
81
|
expr: ['--uk-position-translate-x', 'stroke-dashoffset'].join('|'),
|
|
69
82
|
action(prop, value, context) {
|
|
70
|
-
return {prop, value: context.util.negate(value)};
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
]
|
|
74
|
-
}
|
|
83
|
+
return { prop, value: context.util.negate(value) };
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
},
|
|
75
88
|
],
|
|
76
89
|
{
|
|
77
90
|
pre(root, postcss) {
|
|
78
|
-
root.prepend(postcss.comment({text: 'rtl:begin:rename'}));
|
|
79
|
-
root.append(postcss.comment({text: 'rtl:end:rename'}));
|
|
80
|
-
}
|
|
91
|
+
root.prepend(postcss.comment({ text: 'rtl:begin:rename' }));
|
|
92
|
+
root.append(postcss.comment({ text: 'rtl:end:rename' }));
|
|
93
|
+
},
|
|
81
94
|
}
|
|
82
95
|
);
|
|
83
96
|
}
|
|
@@ -87,5 +100,4 @@ async function compile(file, dist, develop, rtl) {
|
|
|
87
100
|
if (!develop) {
|
|
88
101
|
await minify(dist);
|
|
89
102
|
}
|
|
90
|
-
|
|
91
103
|
}
|
package/build/package.json
CHANGED
package/build/prefix.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import inquirer from 'inquirer';
|
|
2
|
-
import {args, glob, read, replaceInFile, validClassName} from './util.js';
|
|
2
|
+
import { args, glob, read, replaceInFile, validClassName } from './util.js';
|
|
3
3
|
|
|
4
4
|
if (args.h || args.help) {
|
|
5
5
|
console.log(`
|
|
@@ -26,24 +26,27 @@ if (currentPrefix === prefix) {
|
|
|
26
26
|
await replacePrefix(currentPrefix, prefix);
|
|
27
27
|
|
|
28
28
|
async function findExistingPrefix() {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
return (await read('dist/css/uikit.css')).match(
|
|
30
|
+
new RegExp(`(${validClassName.source})(-[a-z]+)?-grid`)
|
|
31
|
+
)?.[1];
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
async function getPrefix() {
|
|
35
|
-
|
|
36
35
|
const prefixFromInput = args.p || args.prefix;
|
|
37
36
|
|
|
38
37
|
if (!prefixFromInput) {
|
|
39
|
-
|
|
40
38
|
const prompt = inquirer.createPromptModule();
|
|
41
39
|
|
|
42
|
-
return (
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
40
|
+
return (
|
|
41
|
+
await prompt({
|
|
42
|
+
name: 'prefix',
|
|
43
|
+
message: 'enter a prefix',
|
|
44
|
+
validate: (val, res) =>
|
|
45
|
+
val.length && val.match(validClassName)
|
|
46
|
+
? !!(res.prefix = val)
|
|
47
|
+
: 'invalid prefix',
|
|
48
|
+
})
|
|
49
|
+
).prefix;
|
|
47
50
|
}
|
|
48
51
|
|
|
49
52
|
if (validClassName.test(prefixFromInput)) {
|
|
@@ -55,16 +58,16 @@ async function getPrefix() {
|
|
|
55
58
|
|
|
56
59
|
async function replacePrefix(from, to) {
|
|
57
60
|
for (const file of await glob('dist/**/*.css')) {
|
|
58
|
-
await replaceInFile(file, data =>
|
|
59
|
-
new RegExp(`${from}-${/([a-z\d-]+)/.source}`, 'g'),
|
|
60
|
-
|
|
61
|
-
));
|
|
61
|
+
await replaceInFile(file, (data) =>
|
|
62
|
+
data.replace(new RegExp(`${from}-${/([a-z\d-]+)/.source}`, 'g'), `${to}-$1`)
|
|
63
|
+
);
|
|
62
64
|
}
|
|
63
65
|
|
|
64
66
|
for (const file of await glob('dist/**/*.js')) {
|
|
65
|
-
await replaceInFile(file, data =>
|
|
66
|
-
|
|
67
|
-
|
|
67
|
+
await replaceInFile(file, (data) =>
|
|
68
|
+
data
|
|
69
|
+
.replace(new RegExp(`${from}-`, 'g'), `${to}-`)
|
|
70
|
+
.replace(new RegExp(`(${from})?UIkit`, 'g'), `${to === 'uk' ? '' : to}UIkit`)
|
|
68
71
|
);
|
|
69
72
|
}
|
|
70
73
|
}
|