uikit 3.11.2-dev.ae39176f2 → 3.11.2-dev.b4d9c97d5

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 (211) hide show
  1. package/.eslintrc.json +4 -49
  2. package/.prettierignore +14 -0
  3. package/.prettierrc.json +13 -0
  4. package/.webstorm.js +3 -3
  5. package/CHANGELOG.md +35 -17
  6. package/build/.eslintrc.json +1 -3
  7. package/build/build.js +26 -28
  8. package/build/icons.js +7 -11
  9. package/build/less.js +48 -36
  10. package/build/package.json +2 -2
  11. package/build/prefix.js +21 -18
  12. package/build/publishDev.js +6 -8
  13. package/build/release.js +20 -17
  14. package/build/scope.js +21 -11
  15. package/build/scss.js +72 -39
  16. package/build/util.js +71 -62
  17. package/build/wrapper/icons.js +0 -2
  18. package/dist/css/uikit-core-rtl.css +80 -186
  19. package/dist/css/uikit-core-rtl.min.css +1 -1
  20. package/dist/css/uikit-core.css +80 -186
  21. package/dist/css/uikit-core.min.css +1 -1
  22. package/dist/css/uikit-rtl.css +82 -192
  23. package/dist/css/uikit-rtl.min.css +1 -1
  24. package/dist/css/uikit.css +82 -192
  25. package/dist/css/uikit.min.css +1 -1
  26. package/dist/js/components/countdown.js +88 -133
  27. package/dist/js/components/countdown.min.js +1 -1
  28. package/dist/js/components/filter.js +408 -439
  29. package/dist/js/components/filter.min.js +1 -1
  30. package/dist/js/components/lightbox-panel.js +1098 -1316
  31. package/dist/js/components/lightbox-panel.min.js +1 -1
  32. package/dist/js/components/lightbox.js +1144 -1393
  33. package/dist/js/components/lightbox.min.js +1 -1
  34. package/dist/js/components/notification.js +94 -114
  35. package/dist/js/components/notification.min.js +1 -1
  36. package/dist/js/components/parallax.js +324 -358
  37. package/dist/js/components/parallax.min.js +1 -1
  38. package/dist/js/components/slider-parallax.js +322 -357
  39. package/dist/js/components/slider-parallax.min.js +1 -1
  40. package/dist/js/components/slider.js +768 -843
  41. package/dist/js/components/slider.min.js +1 -1
  42. package/dist/js/components/slideshow-parallax.js +322 -357
  43. package/dist/js/components/slideshow-parallax.min.js +1 -1
  44. package/dist/js/components/slideshow.js +645 -793
  45. package/dist/js/components/slideshow.min.js +1 -1
  46. package/dist/js/components/sortable.js +588 -622
  47. package/dist/js/components/sortable.min.js +1 -1
  48. package/dist/js/components/tooltip.js +324 -356
  49. package/dist/js/components/tooltip.min.js +1 -1
  50. package/dist/js/components/upload.js +155 -167
  51. package/dist/js/components/upload.min.js +1 -1
  52. package/dist/js/uikit-core.js +5405 -6762
  53. package/dist/js/uikit-core.min.js +1 -1
  54. package/dist/js/uikit-icons.js +7 -9
  55. package/dist/js/uikit-icons.min.js +1 -1
  56. package/dist/js/uikit.js +8120 -9875
  57. package/dist/js/uikit.min.js +1 -1
  58. package/jsconfig.json +1 -1
  59. package/package.json +64 -60
  60. package/src/js/api/boot.js +25 -32
  61. package/src/js/api/component.js +15 -28
  62. package/src/js/api/global.js +6 -12
  63. package/src/js/api/hooks.js +14 -33
  64. package/src/js/api/instance.js +7 -15
  65. package/src/js/api/state.js +65 -82
  66. package/src/js/components/countdown.js +24 -50
  67. package/src/js/components/filter.js +70 -66
  68. package/src/js/components/index.js +13 -13
  69. package/src/js/components/internal/lightbox-animations.js +14 -25
  70. package/src/js/components/internal/slider-preload.js +37 -0
  71. package/src/js/components/internal/slider-transitioner.js +66 -45
  72. package/src/js/components/internal/slideshow-animations.js +46 -64
  73. package/src/js/components/lightbox-panel.js +107 -105
  74. package/src/js/components/lightbox.js +17 -39
  75. package/src/js/components/notification.js +49 -43
  76. package/src/js/components/parallax.js +16 -30
  77. package/src/js/components/slider-parallax.js +13 -23
  78. package/src/js/components/slider.js +95 -64
  79. package/src/js/components/slideshow-parallax.js +1 -1
  80. package/src/js/components/slideshow.js +15 -13
  81. package/src/js/components/sortable.js +122 -104
  82. package/src/js/components/tooltip.js +41 -31
  83. package/src/js/components/upload.js +52 -63
  84. package/src/js/core/accordion.js +53 -48
  85. package/src/js/core/alert.js +9 -17
  86. package/src/js/core/core.js +74 -53
  87. package/src/js/core/cover.js +11 -15
  88. package/src/js/core/drop.js +106 -92
  89. package/src/js/core/form-custom.js +20 -25
  90. package/src/js/core/gif.js +3 -7
  91. package/src/js/core/grid.js +57 -58
  92. package/src/js/core/height-match.js +16 -29
  93. package/src/js/core/height-viewport.js +28 -35
  94. package/src/js/core/icon.js +38 -50
  95. package/src/js/core/img.js +154 -138
  96. package/src/js/core/index.js +39 -39
  97. package/src/js/core/leader.js +9 -18
  98. package/src/js/core/margin.js +21 -37
  99. package/src/js/core/modal.js +49 -36
  100. package/src/js/core/nav.js +2 -4
  101. package/src/js/core/navbar.js +112 -88
  102. package/src/js/core/offcanvas.js +49 -53
  103. package/src/js/core/overflow-auto.js +13 -17
  104. package/src/js/core/responsive.js +14 -12
  105. package/src/js/core/scroll.js +10 -20
  106. package/src/js/core/scrollspy-nav.js +34 -31
  107. package/src/js/core/scrollspy.js +37 -54
  108. package/src/js/core/sticky.js +127 -90
  109. package/src/js/core/svg.js +68 -83
  110. package/src/js/core/switcher.js +47 -46
  111. package/src/js/core/tab.js +7 -10
  112. package/src/js/core/toggle.js +66 -67
  113. package/src/js/core/video.js +11 -22
  114. package/src/js/mixin/animate.js +19 -20
  115. package/src/js/mixin/class.js +2 -4
  116. package/src/js/mixin/container.js +7 -11
  117. package/src/js/mixin/internal/animate-fade.js +73 -30
  118. package/src/js/mixin/internal/animate-slide.js +58 -41
  119. package/src/js/mixin/internal/slideshow-animations.js +7 -14
  120. package/src/js/mixin/internal/slideshow-transitioner.js +10 -17
  121. package/src/js/mixin/media.js +5 -10
  122. package/src/js/mixin/modal.js +89 -66
  123. package/src/js/mixin/parallax.js +128 -106
  124. package/src/js/mixin/position.js +26 -20
  125. package/src/js/mixin/slider-autoplay.js +12 -21
  126. package/src/js/mixin/slider-drag.js +64 -65
  127. package/src/js/mixin/slider-nav.js +26 -35
  128. package/src/js/mixin/slider-reactive.js +2 -8
  129. package/src/js/mixin/slider.js +48 -55
  130. package/src/js/mixin/slideshow.js +13 -19
  131. package/src/js/mixin/togglable.js +89 -63
  132. package/src/js/uikit-core.js +2 -4
  133. package/src/js/uikit.js +2 -4
  134. package/src/js/util/ajax.js +20 -39
  135. package/src/js/util/animation.js +77 -75
  136. package/src/js/util/attr.js +17 -21
  137. package/src/js/util/class.js +14 -52
  138. package/src/js/util/dimensions.js +56 -43
  139. package/src/js/util/dom.js +39 -81
  140. package/src/js/util/env.js +7 -12
  141. package/src/js/util/event.js +60 -59
  142. package/src/js/util/fastdom.js +1 -6
  143. package/src/js/util/filter.js +17 -34
  144. package/src/js/util/index.js +0 -1
  145. package/src/js/util/lang.js +82 -121
  146. package/src/js/util/mouse.js +19 -17
  147. package/src/js/util/options.js +35 -49
  148. package/src/js/util/player.js +41 -36
  149. package/src/js/util/position.js +54 -46
  150. package/src/js/util/selector.js +43 -58
  151. package/src/js/util/style.js +39 -49
  152. package/src/js/util/viewport.js +75 -64
  153. package/src/less/components/base.less +10 -33
  154. package/src/less/components/form-range.less +52 -97
  155. package/src/less/components/form.less +0 -1
  156. package/src/less/components/leader.less +0 -1
  157. package/src/less/components/lightbox.less +0 -1
  158. package/src/less/components/modal.less +3 -7
  159. package/src/less/components/progress.less +14 -36
  160. package/src/less/components/slider.less +0 -3
  161. package/src/less/components/slideshow.less +0 -3
  162. package/src/less/components/text.less +16 -32
  163. package/src/scss/components/base.scss +10 -33
  164. package/src/scss/components/form-range.scss +52 -97
  165. package/src/scss/components/form.scss +0 -1
  166. package/src/scss/components/leader.scss +0 -1
  167. package/src/scss/components/lightbox.scss +0 -1
  168. package/src/scss/components/modal.scss +3 -7
  169. package/src/scss/components/progress.scss +14 -36
  170. package/src/scss/components/slider.scss +0 -3
  171. package/src/scss/components/slideshow.scss +0 -3
  172. package/src/scss/components/text.scss +16 -32
  173. package/src/scss/mixins-theme.scss +1 -1
  174. package/src/scss/mixins.scss +1 -1
  175. package/src/scss/variables-theme.scss +3 -3
  176. package/src/scss/variables.scss +3 -3
  177. package/tests/align.html +10 -10
  178. package/tests/animation.html +2 -2
  179. package/tests/article.html +2 -2
  180. package/tests/base.html +3 -3
  181. package/tests/card.html +10 -10
  182. package/tests/column.html +3 -3
  183. package/tests/comment.html +9 -9
  184. package/tests/dotnav.html +3 -3
  185. package/tests/image.html +296 -64
  186. package/tests/images/image-type.avif +0 -0
  187. package/tests/images/image-type.jpeg +0 -0
  188. package/tests/images/image-type.webp +0 -0
  189. package/tests/index.html +8 -8
  190. package/tests/js/index.js +114 -85
  191. package/tests/lightbox.html +10 -10
  192. package/tests/marker.html +2 -2
  193. package/tests/modal.html +8 -9
  194. package/tests/navbar.html +2 -2
  195. package/tests/overlay.html +7 -7
  196. package/tests/parallax.html +14 -5
  197. package/tests/position.html +12 -12
  198. package/tests/slidenav.html +12 -12
  199. package/tests/slider.html +20 -20
  200. package/tests/sortable.html +1 -1
  201. package/tests/sticky-parallax.html +47 -62
  202. package/tests/svg.html +6 -6
  203. package/tests/table.html +11 -11
  204. package/tests/thumbnav.html +12 -12
  205. package/tests/transition.html +30 -30
  206. package/tests/utility.html +33 -33
  207. package/tests/video.html +1 -1
  208. package/tests/width.html +1 -1
  209. package/src/js/mixin/flex-bug.js +0 -56
  210. package/src/js/util/promise.js +0 -191
  211. package/tests/images/animated.gif +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
  }
@@ -0,0 +1,14 @@
1
+ /*
2
+ !/*.js
3
+ !/*.json
4
+ !/.github
5
+ !/.circleci
6
+ !/build
7
+ !/src
8
+ /src/*
9
+ !/src/js
10
+ !/tests
11
+ /tests/*
12
+ !/tests/js
13
+ /tests/js/*
14
+ !/tests/js/index.js
@@ -0,0 +1,13 @@
1
+ {
2
+ "tabWidth": 4,
3
+ "printWidth": 100,
4
+ "singleQuote": true,
5
+ "overrides": [
6
+ {
7
+ "files": ["**/*.yml"],
8
+ "options": {
9
+ "tabWidth": 2
10
+ }
11
+ }
12
+ ]
13
+ }
package/.webstorm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // Webstorm Module resolution config
2
2
  System.config({
3
- "paths": {
4
- "uikit-util": "./src/js/util/index.js",
5
- }
3
+ paths: {
4
+ 'uikit-util': './src/js/util/index.js',
5
+ },
6
6
  });
package/CHANGELOG.md CHANGED
@@ -4,15 +4,33 @@
4
4
 
5
5
  ### Added
6
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
7
11
  - Add `position` option with `top`, `bottom` and `auto` values to Sticky component
8
12
  - Add support for basic math operands in `offset` option of Sticky component
13
+ - Add animation stop positions to Parallax component
9
14
  - Add object fit and position classes to Utility component
15
+ - Add support for specifying location for steps in Parallax component
10
16
 
11
17
  ### Changed
12
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
13
22
  - Improve sticky behavior if sticky content is larger than the viewport
14
23
  - Sticky component's `bottom` option checks for bottom padding if sticky element is within referenced element
15
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.
33
+
16
34
  ### Fixed
17
35
 
18
36
  - Fix infinite sliding in Slider component with equally sized slides
@@ -58,7 +76,7 @@
58
76
  - Fix usage of `data-` prefix for Cover and Responsive component
59
77
  - Fix pointer events for iframes in Cover component
60
78
  - Fix Slideshow component no longer throws if items list does not exist
61
- - Fix space key no longer triggers Toggle on `input` elements
79
+ - Fix space key no longer triggers Toggle on `<input>` element
62
80
 
63
81
  ## 3.10.0 (January 12, 2022)
64
82
 
@@ -375,7 +393,7 @@
375
393
 
376
394
  - Fix component update handling
377
395
  - Fix Tooltip position
378
- - Fix Tooltip component applied to button elements in iOS
396
+ - Fix Tooltip component applied to `<button>` element in iOS
379
397
  - Fix regression in Switcher component
380
398
 
381
399
  ## 3.6.8 (January 5, 2021)
@@ -924,7 +942,7 @@
924
942
  ### Fixed
925
943
 
926
944
  - Fix Slideshow invisible after switching tabs in Switcher
927
- - Fix lazy loading images in Img component in UC Browser
945
+ - Fix lazy loading images in Image component in UC Browser
928
946
  - Fix opening Offcanvas/Modal through buttons
929
947
 
930
948
  ## 3.1.8 (August 29, 2019)
@@ -1094,8 +1112,8 @@
1094
1112
  ### Fixed
1095
1113
 
1096
1114
  - Fix touch event detection
1097
- - Fix background images are shown too large on retina displays in Img component
1098
- - Fix correctly calculate offsetLeft in Img component
1115
+ - Fix background images are shown too large on retina displays in Image component
1116
+ - Fix correctly calculate offsetLeft in Image component
1099
1117
  - Fix autofocus elements not blurring within Toggable on hide
1100
1118
 
1101
1119
  ## 3.0.2 (January 15, 2019)
@@ -1104,7 +1122,7 @@
1104
1122
 
1105
1123
  - Fix offcanvas overlay transition
1106
1124
  - Fix active state in Switcher component
1107
- - Fix background images on displays with higher devicePixelRatio in Img component
1125
+ - Fix background images on displays with higher devicePixelRatio in Image component
1108
1126
 
1109
1127
  ## 3.0.1 (January 14, 2019)
1110
1128
 
@@ -1137,7 +1155,7 @@
1137
1155
  ### Fixed
1138
1156
 
1139
1157
  - Fix visible toggle and its child elements not being focusable through keyboard navigation
1140
- - Fix Img component correctly escapes urls on background images
1158
+ - Fix Image component correctly escapes urls on background images
1141
1159
 
1142
1160
  ## 3.0.0 rc 26 (January 3, 2019)
1143
1161
 
@@ -1156,8 +1174,8 @@
1156
1174
  - Fix `flex bug` mixin (IE 11)
1157
1175
  - Fix properly resolving css custom properties in scss
1158
1176
  - Fix order of variable assignments in scss
1159
- - Fix background images are shown too large on retina displays in Img component
1160
- - Fix lazy loading images in Img component in Safari
1177
+ - Fix background images are shown too large on retina displays in Image component
1178
+ - Fix lazy loading images in Image component in Safari
1161
1179
  - Limit positioned element to container width and margin in Position component
1162
1180
 
1163
1181
  ## 3.0.0 rc 25 (November 30, 2018)
@@ -1245,7 +1263,7 @@
1245
1263
 
1246
1264
  ### Fixed
1247
1265
 
1248
- - 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
1249
1267
  - Fix inverse hover color for accordion title
1250
1268
  - Fix close color being overwritten from toolbar in Lightbox component
1251
1269
  - Fix Modal not hiding upon being destroyed
@@ -1489,7 +1507,7 @@
1489
1507
 
1490
1508
  ### Added
1491
1509
 
1492
- - Add Img component to lazy load images
1510
+ - Add Image component to lazy load images
1493
1511
  - Add Filter component to filter and sort any kind of layout
1494
1512
  - Add `masonry` option to Grid component
1495
1513
  - Add inverse style for form icon
@@ -1652,7 +1670,7 @@
1652
1670
 
1653
1671
  ### Changed
1654
1672
 
1655
- - IMPORTANT: Use `a` element instead of headings for the accordion title
1673
+ - IMPORTANT: Use `<a>` element instead of headings for the accordion title
1656
1674
  - Calling a component constructor with data on an already initialized component will reset the component
1657
1675
  - Dropbar no longer repositions Dropdowns in DOM upon opening
1658
1676
 
@@ -1753,7 +1771,7 @@
1753
1771
  - Fix slide animations stacking when tab is not focused in Slideshow component
1754
1772
  - Fix overlay not showing in Offcanvas component
1755
1773
  - Fix Slideshow Parallax in Slideshow component for IE11
1756
- - Fix default border-radius for button elements in Chrome 62.
1774
+ - Fix default border-radius for `<button>` element in Chrome 62.
1757
1775
 
1758
1776
  ## 3.0.0 beta 31 (October 20, 2017)
1759
1777
 
@@ -1862,7 +1880,7 @@
1862
1880
 
1863
1881
  - Offcanvas will keep scroll position if anchor link was clicked
1864
1882
  - Fix margin modifier in Position component for IE11
1865
- - Fix divider-small text alignment for `hr` elements Edge and IE
1883
+ - Fix divider-small text alignment for `<hr>` element Edge and IE
1866
1884
  - Fix setting the ratio of Spinner component
1867
1885
  - Fix event handling in Sortable component
1868
1886
  - Fix grid calculation (Firefox)
@@ -1898,7 +1916,7 @@
1898
1916
 
1899
1917
  ### Changed
1900
1918
 
1901
- - Make Icon component work with button elements
1919
+ - Make Icon component work with `<button>` element
1902
1920
 
1903
1921
  ### Fixed
1904
1922
 
@@ -2228,7 +2246,7 @@
2228
2246
 
2229
2247
  ### Changed
2230
2248
 
2231
- - UIkit observes `body` element too now
2249
+ - UIkit observes `<body>` element too now
2232
2250
  - Performance improvements
2233
2251
 
2234
2252
  ### Fixed
@@ -2274,7 +2292,7 @@
2274
2292
 
2275
2293
  ### Fixed
2276
2294
 
2277
- - Fix Icon component on canvas elements (Safari)
2295
+ - Fix Icon component on `<canvas>` elements (Safari)
2278
2296
 
2279
2297
  ## 3.0.0 beta 1 (January 09, 2017)
2280
2298
 
@@ -6,9 +6,7 @@
6
6
  "browser": false,
7
7
  "commonjs": false
8
8
  },
9
- "extends": [
10
- "../.eslintrc.json"
11
- ],
9
+ "extends": ["../.eslintrc.json"],
12
10
  "parserOptions": {
13
11
  "ecmaVersion": 2022
14
12
  },
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 = args.all || !Object.keys(args).filter(name =>
8
- !['d', 'debug', 'nominify', 'watch', '_'].includes(name)
9
- ).length;
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 () => compile('build/wrapper/icons.js', 'dist/js/uikit-icons', {
54
- name: 'icons',
55
- replaces: {ICONS: await icons('{src/images,custom}/icons/*.svg')}
56
- }),
57
-
58
- tests: async () => compile('tests/js/index.js', 'tests/js/test', {
59
- name: 'test',
60
- replaces: {TESTS: await getTestFiles()}
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
- 'build/wrapper/icons.js',
30
- `dist/js/uikit-icons-${name}`,
31
- {
32
- name,
33
- replaces: {
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 {args, banner, glob, minify, pathExists, read, readJson, renderLess, write} from './util.js';
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 = (await renderLess(less, {
38
- relativeUrls: true,
39
- rootpath: '../../',
40
- paths: ['src/less/', 'custom/']
41
- })).replace(/\.\.\/dist\//g, '');
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
- name: 'previous-next',
49
- priority: 100,
50
- search: ['previous', 'Previous', 'PREVIOUS'],
51
- replace: ['next', 'Next', 'NEXT'],
52
- options: {
53
- scope: '*',
54
- ignoreCase: false
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
  }
@@ -1,4 +1,4 @@
1
1
  {
2
- "private": true,
3
- "type": "module"
2
+ "private": true,
3
+ "type": "module"
4
4
  }
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
- const data = await read('dist/css/uikit.css');
30
- const res = data.match(new RegExp(`(${validClassName.source})(-[a-z]+)?-grid`));
31
- return res && res[1];
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 (await prompt({
43
- name: 'prefix',
44
- message: 'enter a prefix',
45
- validate: (val, res) => val.length && val.match(validClassName) ? !!(res.prefix = val) : 'invalid prefix'
46
- })).prefix;
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 => data.replace(
59
- new RegExp(`${from}-${/([a-z\d-]+)/.source}`, 'g'),
60
- `${to}-$1`
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 => data
66
- .replace(new RegExp(`${from}-`, 'g'), `${to}-`)
67
- .replace(new RegExp(`(${from})?UIkit`, 'g'), `${to === 'uk' ? '' : to}UIkit`)
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
  }
@@ -1,11 +1,10 @@
1
1
  import semver from 'semver';
2
- import {args, getVersion, run} from './util.js';
2
+ import { args, getVersion, run } from './util.js';
3
3
 
4
- const {inc} = semver;
4
+ const { inc } = semver;
5
5
 
6
6
  // default exec options
7
- if (args.f || args.force || await isDevCommit()) {
8
-
7
+ if (args.f || args.force || (await isDevCommit())) {
9
8
  // increase version patch number
10
9
  const version = inc(await getVersion(), 'patch');
11
10
 
@@ -20,17 +19,16 @@ if (args.f || args.force || await isDevCommit()) {
20
19
 
21
20
  // publish to dev tag
22
21
  await run('npm publish --tag dev');
23
-
24
22
  }
25
23
 
26
24
  async function isDevCommit() {
27
-
28
25
  // check for changes to publish (%B: raw body (unwrapped subject and body)
29
26
  const message = await run('git log -1 --pretty=%B');
30
27
 
31
28
  // https://www.conventionalcommits.org/en/v1.0.0/
32
- const type = message.match(/^(revert: )?(feat|fix|polish|docs|style|refactor|perf|test|workflow|ci|chore|types|build)(\(.+\))?: .{1,50}/);
29
+ const type = message.match(
30
+ /^(revert: )?(feat|fix|polish|docs|style|refactor|perf|test|workflow|ci|chore|types|build)(\(.+\))?: .{1,50}/
31
+ );
33
32
 
34
33
  return type && ['feat', 'fix', 'refactor', 'perf'].includes(type[2]);
35
-
36
34
  }