uikit 3.8.1 → 3.9.2-dev.774931570

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 (170) hide show
  1. package/{.eslintrc.js → .eslintrc.json} +5 -5
  2. package/CHANGELOG.md +20 -1
  3. package/build/.eslintrc.json +15 -0
  4. package/build/build.js +55 -83
  5. package/build/icons.js +30 -13
  6. package/build/less.js +23 -38
  7. package/build/package.json +4 -0
  8. package/build/prefix.js +38 -94
  9. package/build/publishDev.js +12 -18
  10. package/build/release.js +31 -60
  11. package/build/scope.js +49 -84
  12. package/build/scss.js +19 -21
  13. package/build/util.js +163 -94
  14. package/dist/css/uikit-core-rtl.css +8 -8
  15. package/dist/css/uikit-core-rtl.min.css +1 -1
  16. package/dist/css/uikit-core.css +8 -8
  17. package/dist/css/uikit-core.min.css +1 -1
  18. package/dist/css/uikit-rtl.css +8 -8
  19. package/dist/css/uikit-rtl.min.css +1 -1
  20. package/dist/css/uikit.css +8 -8
  21. package/dist/css/uikit.min.css +1 -1
  22. package/dist/js/components/countdown.js +1 -1
  23. package/dist/js/components/countdown.min.js +2 -2
  24. package/dist/js/components/filter.js +1 -1
  25. package/dist/js/components/filter.min.js +2 -2
  26. package/dist/js/components/lightbox-panel.js +1 -1
  27. package/dist/js/components/lightbox-panel.min.js +2 -2
  28. package/dist/js/components/lightbox.js +1 -1
  29. package/dist/js/components/lightbox.min.js +2 -2
  30. package/dist/js/components/notification.js +1 -1
  31. package/dist/js/components/notification.min.js +2 -2
  32. package/dist/js/components/parallax.js +1 -1
  33. package/dist/js/components/parallax.min.js +2 -2
  34. package/dist/js/components/slider-parallax.js +1 -1
  35. package/dist/js/components/slider-parallax.min.js +2 -2
  36. package/dist/js/components/slider.js +1 -1
  37. package/dist/js/components/slider.min.js +2 -2
  38. package/dist/js/components/slideshow-parallax.js +1 -1
  39. package/dist/js/components/slideshow-parallax.min.js +2 -2
  40. package/dist/js/components/slideshow.js +1 -1
  41. package/dist/js/components/slideshow.min.js +2 -2
  42. package/dist/js/components/sortable.js +1 -1
  43. package/dist/js/components/sortable.min.js +2 -2
  44. package/dist/js/components/tooltip.js +1 -1
  45. package/dist/js/components/tooltip.min.js +2 -2
  46. package/dist/js/components/upload.js +1 -1
  47. package/dist/js/components/upload.min.js +2 -2
  48. package/dist/js/uikit-core.js +16 -14
  49. package/dist/js/uikit-core.min.js +2 -2
  50. package/dist/js/uikit-icons.js +1 -1
  51. package/dist/js/uikit-icons.min.js +2 -2
  52. package/dist/js/uikit.js +16 -14
  53. package/dist/js/uikit.min.js +2 -2
  54. package/package.json +17 -19
  55. package/src/js/uikit-core.js +1 -1
  56. package/src/js/uikit.js +1 -1
  57. package/src/js/util/event.js +7 -7
  58. package/src/js/util/style.js +9 -7
  59. package/src/less/components/accordion.less +10 -10
  60. package/src/less/components/alert.less +9 -9
  61. package/src/less/components/align.less +2 -2
  62. package/src/less/components/animation.less +2 -2
  63. package/src/less/components/article.less +8 -8
  64. package/src/less/components/background.less +1 -1
  65. package/src/less/components/badge.less +6 -6
  66. package/src/less/components/base.less +30 -30
  67. package/src/less/components/breadcrumb.less +12 -12
  68. package/src/less/components/button.less +36 -36
  69. package/src/less/components/card.less +32 -32
  70. package/src/less/components/close.less +5 -5
  71. package/src/less/components/column.less +2 -2
  72. package/src/less/components/comment.less +12 -12
  73. package/src/less/components/container.less +2 -2
  74. package/src/less/components/countdown.less +10 -10
  75. package/src/less/components/cover.less +2 -2
  76. package/src/less/components/description-list.less +5 -5
  77. package/src/less/components/divider.less +11 -11
  78. package/src/less/components/dotnav.less +11 -11
  79. package/src/less/components/drop.less +1 -1
  80. package/src/less/components/dropdown.less +7 -7
  81. package/src/less/components/flex.less +2 -2
  82. package/src/less/components/form-range.less +12 -12
  83. package/src/less/components/form.less +27 -27
  84. package/src/less/components/grid.less +6 -6
  85. package/src/less/components/heading.less +21 -21
  86. package/src/less/components/height.less +1 -1
  87. package/src/less/components/icon.less +13 -13
  88. package/src/less/components/iconnav.less +9 -9
  89. package/src/less/components/inverse.less +3 -3
  90. package/src/less/components/label.less +7 -7
  91. package/src/less/components/leader.less +4 -4
  92. package/src/less/components/lightbox.less +9 -9
  93. package/src/less/components/link.less +12 -12
  94. package/src/less/components/list.less +5 -5
  95. package/src/less/components/margin.less +3 -3
  96. package/src/less/components/marker.less +5 -5
  97. package/src/less/components/modal.less +16 -16
  98. package/src/less/components/nav.less +31 -31
  99. package/src/less/components/navbar.less +33 -33
  100. package/src/less/components/notification.less +8 -8
  101. package/src/less/components/offcanvas.less +4 -4
  102. package/src/less/components/overlay.less +5 -5
  103. package/src/less/components/padding.less +1 -1
  104. package/src/less/components/pagination.less +10 -10
  105. package/src/less/components/placeholder.less +3 -3
  106. package/src/less/components/position.less +1 -1
  107. package/src/less/components/print.less +1 -1
  108. package/src/less/components/progress.less +6 -6
  109. package/src/less/components/search.less +15 -15
  110. package/src/less/components/section.less +8 -8
  111. package/src/less/components/slidenav.less +11 -11
  112. package/src/less/components/slider.less +2 -2
  113. package/src/less/components/slideshow.less +2 -2
  114. package/src/less/components/sortable.less +5 -5
  115. package/src/less/components/spinner.less +4 -4
  116. package/src/less/components/sticky.less +1 -1
  117. package/src/less/components/subnav.less +21 -21
  118. package/src/less/components/svg.less +1 -1
  119. package/src/less/components/switcher.less +2 -2
  120. package/src/less/components/tab.less +18 -18
  121. package/src/less/components/table.less +21 -21
  122. package/src/less/components/text.less +11 -11
  123. package/src/less/components/thumbnav.less +9 -9
  124. package/src/less/components/tile.less +10 -10
  125. package/src/less/components/tooltip.less +2 -2
  126. package/src/less/components/totop.less +7 -7
  127. package/src/less/components/transition.less +5 -5
  128. package/src/less/components/utility.less +10 -10
  129. package/src/less/components/visibility.less +1 -1
  130. package/src/less/components/width.less +1 -1
  131. package/src/scss/components/accordion.scss +1 -1
  132. package/src/scss/components/alert.scss +1 -1
  133. package/src/scss/components/align.scss +1 -1
  134. package/src/scss/components/animation.scss +1 -1
  135. package/src/scss/components/article.scss +1 -1
  136. package/src/scss/components/badge.scss +1 -1
  137. package/src/scss/components/base.scss +1 -1
  138. package/src/scss/components/card.scss +7 -7
  139. package/src/scss/components/column.scss +1 -0
  140. package/src/scss/components/comment.scss +1 -1
  141. package/src/scss/components/container.scss +1 -1
  142. package/src/scss/components/cover.scss +1 -1
  143. package/src/scss/components/description-list.scss +1 -1
  144. package/src/scss/components/dotnav.scss +1 -1
  145. package/src/scss/components/flex.scss +1 -1
  146. package/src/scss/components/form-range.scss +1 -1
  147. package/src/scss/components/grid.scss +1 -1
  148. package/src/scss/components/iconnav.scss +1 -1
  149. package/src/scss/components/inverse.scss +1 -1
  150. package/src/scss/components/label.scss +1 -1
  151. package/src/scss/components/leader.scss +1 -1
  152. package/src/scss/components/margin.scss +2 -2
  153. package/src/scss/components/nav.scss +1 -1
  154. package/src/scss/components/placeholder.scss +1 -1
  155. package/src/scss/components/section.scss +1 -1
  156. package/src/scss/components/spinner.scss +2 -2
  157. package/src/scss/components/subnav.scss +1 -1
  158. package/src/scss/components/switcher.scss +1 -1
  159. package/src/scss/components/tab.scss +1 -1
  160. package/src/scss/components/table.scss +3 -3
  161. package/src/scss/components/text.scss +3 -3
  162. package/src/scss/components/thumbnav.scss +1 -1
  163. package/src/scss/components/transition.scss +4 -4
  164. package/src/scss/components/utility.scss +1 -1
  165. package/src/scss/mixins-theme.scss +1 -1
  166. package/src/scss/mixins.scss +1 -1
  167. package/src/scss/variables-theme.scss +8 -8
  168. package/src/scss/variables.scss +8 -8
  169. package/tests/js/index.js +3 -2
  170. package/build/.eslintrc.js +0 -13
package/build/util.js CHANGED
@@ -1,55 +1,62 @@
1
- const fs = require('fs');
2
- const less = require('less');
3
- const SVGO = require('svgo');
4
- const rollup = require('rollup');
5
- const postcss = require('postcss');
6
- const uglify = require('uglify-js');
7
- const {promisify} = require('util');
8
- const CleanCSS = require('clean-css');
9
- const html = require('rollup-plugin-html');
10
- const buble = require('@rollup/plugin-buble');
11
- const replace = require('@rollup/plugin-replace');
12
- const alias = require('@rollup/plugin-alias');
13
- const {basename, dirname, resolve} = require('path');
14
- const {version} = require('../package.json');
15
- const banner = `/*! UIkit ${version} | https://www.getuikit.com | (c) 2014 - ${new Date().getFullYear()} YOOtheme | MIT License */\n`;
16
-
17
- exports.banner = banner;
18
- exports.validClassName = /[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/;
19
-
20
- exports.glob = promisify(require('glob'));
21
-
22
- const readFile = promisify(fs.readFile);
23
- exports.read = async function (file, cb) {
24
-
25
- const data = await readFile(file, 'utf8');
26
- cb && cb(data);
27
- return data;
28
-
29
- };
1
+ import less from 'less';
2
+ import fs from 'fs-extra';
3
+ import postcss from 'postcss';
4
+ import globImport from 'glob';
5
+ import {optimize} from 'svgo';
6
+ import {promisify} from 'util';
7
+ import minimist from 'minimist';
8
+ import CleanCSS from 'clean-css';
9
+ import html from 'rollup-plugin-html';
10
+ import buble from '@rollup/plugin-buble';
11
+ import alias from '@rollup/plugin-alias';
12
+ import modify from 'rollup-plugin-modify';
13
+ import {uglify} from 'rollup-plugin-uglify';
14
+ import replace from '@rollup/plugin-replace';
15
+ import {basename, dirname, join} from 'path';
16
+ import {exec as execImport} from 'child_process';
17
+ import {rollup, watch as rollupWatch} from 'rollup';
18
+
19
+ export const exec = promisify(execImport);
20
+ export const glob = promisify(globImport);
21
+ export const {pathExists, readJson} = fs;
22
+
23
+ export const banner = `/*! UIkit ${await getVersion()} | https://www.getuikit.com | (c) 2014 - ${new Date().getFullYear()} YOOtheme | MIT License */\n`;
24
+ export const validClassName = /[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/;
25
+
26
+ const argv = minimist(process.argv.slice(2));
27
+
28
+ argv._.forEach(arg => {
29
+ const tokens = arg.split('=');
30
+ argv[tokens[0]] = tokens[1] || true;
31
+ });
32
+
33
+ export const args = argv;
34
+
35
+ export function read(file) {
36
+ return fs.readFile(file, 'utf8');
37
+ }
30
38
 
31
- const writeFile = promisify(fs.writeFile);
32
- exports.write = async function (dest, data) {
39
+ export async function write(dest, data) {
33
40
 
34
- const err = await writeFile(dest, data);
41
+ const err = await fs.writeFile(dest, data);
35
42
 
36
43
  if (err) {
37
44
  console.log(err);
38
45
  throw err;
39
46
  }
40
47
 
41
- await exports.logFile(dest);
48
+ await logFile(dest);
42
49
 
43
50
  return dest;
44
51
 
45
- };
52
+ }
46
53
 
47
- exports.logFile = async function (file) {
48
- const data = await exports.read(file);
54
+ export async function logFile(file) {
55
+ const data = await read(file);
49
56
  console.log(`${cyan(file)} ${getSize(data)}`);
50
- };
57
+ }
51
58
 
52
- exports.minify = async function (file) {
59
+ export async function minify(file) {
53
60
 
54
61
  const {styles} = await new CleanCSS({
55
62
  advanced: false,
@@ -58,19 +65,19 @@ exports.minify = async function (file) {
58
65
  returnPromise: true
59
66
  }).minify([file]);
60
67
 
61
- await exports.write(`${resolve(dirname(file), basename(file, '.css'))}.min.css`, styles);
68
+ await write(`${join(dirname(file), basename(file, '.css'))}.min.css`, styles);
62
69
 
63
70
  return styles;
64
71
 
65
- };
72
+ }
66
73
 
67
- exports.renderLess = async function (data, options) {
74
+ export async function renderLess(data, options) {
68
75
  return postcss()
69
- .use(postcss.plugin('calc', () =>
70
- css => {
71
- css.walk(node => {
76
+ .use({
77
+ postcssPlugin: 'calc',
78
+ Once(root) {
79
+ root.walk(node => {
72
80
  const {type} = node;
73
-
74
81
  if (type === 'decl') {
75
82
  node.value = postcss.list.space(node.value).map(value =>
76
83
  value.startsWith('calc(')
@@ -80,29 +87,35 @@ exports.renderLess = async function (data, options) {
80
87
  }
81
88
  });
82
89
  }
83
- ))
90
+ })
84
91
  .process((await less.render(data, options)).css)
85
92
  .css;
86
- };
93
+ }
94
+
95
+ export async function compile(file, dest, {external, globals, name, aliases, replaces} = {}) {
87
96
 
88
- exports.compile = async function (file, dest, {external, globals, name, aliases, replaces, minify = true}) {
97
+ const minify = !args.nominify;
98
+ const debug = args.d || args.debug;
99
+ const watch = args.w || args.watch;
89
100
 
90
101
  name = (name || '').replace(/[^\w]/g, '_');
91
102
 
92
- const bundle = await rollup.rollup({
103
+ const inputOptions = {
93
104
  external,
94
- input: resolve(file),
105
+ input: file,
95
106
  plugins: [
96
107
  replace({
97
108
  preventAssignment: true,
98
- values: Object.assign({
99
- VERSION: `'${version}'`
100
- }, replaces)}
101
- ),
109
+ values: {
110
+ VERSION: `'${await getVersion()}'`,
111
+ ...replaces
112
+ }
113
+ }),
102
114
  alias({
103
- entries: Object.assign({
104
- 'uikit-util': './src/js/util/index.js'
105
- }, aliases)
115
+ entries: {
116
+ 'uikit-util': './src/js/util/index.js',
117
+ ...aliases
118
+ }
106
119
  }),
107
120
  html({
108
121
  include: '**/*.svg',
@@ -110,67 +123,123 @@ exports.compile = async function (file, dest, {external, globals, name, aliases,
110
123
  collapseWhitespace: true
111
124
  }
112
125
  }),
113
- buble({namedFunctionExpressions: false})
126
+ buble({namedFunctionExpressions: false}),
127
+ modify({
128
+ find: /(>)\\n\s+|\\n\s+(<)/,
129
+ replace: (m, m1, m2) => `${m1 || ''} ${m2 || ''}`
130
+ })
114
131
  ]
115
- });
132
+ };
116
133
 
117
- let {output: [{code, map}]} = await bundle.generate({
134
+ const outputOptions = {
118
135
  globals,
136
+ banner,
119
137
  format: 'umd',
120
- banner: exports.banner,
121
138
  amd: {id: `UIkit${name}`.toLowerCase()},
122
- name: `UIkit${exports.ucfirst(name)}`,
123
- sourcemap: !minify ? 'inline' : false
124
- });
139
+ name: `UIkit${ucfirst(name)}`,
140
+ sourcemap: debug ? 'inline' : false
141
+ };
142
+
143
+ const output = [{
144
+ ...outputOptions,
145
+ file: `${dest}.js`
146
+ }];
147
+
148
+ if (minify) {
149
+ output.push({
150
+ ...outputOptions,
151
+ file: `${dest}.min.js`,
152
+ plugins: [minify ? uglify({output: {preamble: banner}}) : undefined]
153
+ });
154
+ }
125
155
 
126
- code = code.replace(/(>)\\n\s+|\\n\s+(<)/g, '$1 $2');
156
+ if (!watch) {
157
+ const bundle = await rollup(inputOptions);
127
158
 
128
- return Promise.all([
129
- exports.write(`${dest}.js`, code + (!minify ? '\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,' + Buffer.from(map.toString()).toString('base64') : '')),
130
- minify ? exports.write(`${dest}.min.js`, uglify.minify(code, {output: {preamble: exports.banner}}).code) : null
131
- ])[0];
159
+ for (const options of output) {
160
+ await bundle.write(options);
161
+ logFile(options.file);
162
+ }
132
163
 
133
- };
164
+ await bundle.close();
165
+ } else {
166
+ const watcher = rollupWatch({
167
+ ...inputOptions,
168
+ output
169
+ });
134
170
 
135
- exports.icons = async function (src) {
171
+ watcher.on('event', ({code, result, output}) => {
172
+ if (result) {
173
+ result.close();
136
174
 
137
- const svgo = new SVGO({
175
+ }
176
+ if (code === 'BUNDLE_END' && output) {
177
+ output.map(logFile);
178
+ }
179
+ });
138
180
 
181
+ watcher.close();
182
+ }
183
+
184
+ }
185
+
186
+ export async function icons(src) {
187
+
188
+ const options = {
139
189
  plugins: [
140
- {removeViewBox: false},
141
190
  {
142
- cleanupNumericValues: {
143
- floatPrecision: 3
191
+ name: 'preset-default',
192
+ params: {
193
+ overrides: {
194
+ removeViewBox: false,
195
+ cleanupNumericValues: {
196
+ floatPrecision: 3
197
+ },
198
+ convertPathData: false,
199
+ convertShapeToPath: false,
200
+ mergePaths: false,
201
+ removeDimensions: false,
202
+ removeStyleElement: false,
203
+ removeScriptElement: false,
204
+ removeUnknownsAndDefaults: false,
205
+ removeUselessStrokeAndFill: false
206
+ }
144
207
  }
145
- },
146
- {convertPathData: false},
147
- {convertShapeToPath: false},
148
- {mergePaths: false},
149
- {removeDimensions: false},
150
- {removeStyleElement: false},
151
- {removeScriptElement: false},
152
- {removeUnknownsAndDefaults: false},
153
- {removeUselessStrokeAndFill: false}
208
+ }
154
209
  ]
210
+ };
155
211
 
156
- });
157
- const files = await exports.glob(src, {nosort: true});
158
- const icons = await Promise.all(files.map(async file => {
159
- const data = await exports.read(file);
160
- const {data: svg} = await svgo.optimize(data);
161
- return svg;
162
- }));
212
+ const files = await glob(src, {nosort: true});
213
+ const icons = await Promise.all(files.map(async file =>
214
+ (await optimize(await read(file), options)).data
215
+ ));
163
216
 
164
217
  return JSON.stringify(files.reduce((result, file, i) => {
165
218
  result[basename(file, '.svg')] = icons[i];
166
219
  return result;
167
220
  }, {}), null, ' ');
168
221
 
169
- };
222
+ }
223
+
224
+ export async function run(cmd) {
225
+ const {stdout, stderr} = await exec(cmd);
170
226
 
171
- exports.ucfirst = function (str) {
227
+ stderr && console.error(stderr.trim());
228
+
229
+ return stdout;
230
+ }
231
+
232
+ export function ucfirst(str) {
172
233
  return str.length ? str.charAt(0).toUpperCase() + str.slice(1) : '';
173
- };
234
+ }
235
+
236
+ export async function getVersion() {
237
+ return (await readJson('package.json')).version;
238
+ }
239
+
240
+ export async function replaceInFile(file, fn) {
241
+ await write(file, await fn(await read(file)));
242
+ }
174
243
 
175
244
  function cyan(str) {
176
245
  return `\x1b[1m\x1b[36m${str}\x1b[39m\x1b[22m`;
@@ -1,4 +1,4 @@
1
- /*! UIkit 3.8.1 | https://www.getuikit.com | (c) 2014 - 2021 YOOtheme | MIT License */
1
+ /*! UIkit 3.9.2-dev.774931570 | https://www.getuikit.com | (c) 2014 - 2021 YOOtheme | MIT License */
2
2
  /* ========================================================================
3
3
  Component: Base
4
4
  ========================================================================== */
@@ -396,7 +396,7 @@ pre code {
396
396
  /* Focus
397
397
  ========================================================================== */
398
398
  /*
399
- * Safari doesn't support `:focus-visible` yet. It also doesn't set focus if clicking a button or anchor.
399
+ * Safari doesn't support `:focus-visible` yet. It also doesn't set focus if clicking a button or anchor.
400
400
  * 1. Fallback: Remove `:focus` for a negative tabindexes.
401
401
  * 2. Fallback: Set `:focus` style but not for negative tabindexes.
402
402
  * 3. Fallback: Remove `:focus` style for browsers which support `:focus-visible`.
@@ -4068,7 +4068,7 @@ select.uk-form-width-xsmall {
4068
4068
  content: '.';
4069
4069
  }
4070
4070
  :root {
4071
- --uk-leader-fill-content: .;
4071
+ --uk-leader-fill-content: '.';
4072
4072
  }
4073
4073
  /* ========================================================================
4074
4074
  Component: Notification
@@ -5260,7 +5260,7 @@ ul.uk-nav-sub {
5260
5260
  /* Divider modifier
5261
5261
  ========================================================================== */
5262
5262
  /*
5263
- * Set gutter
5263
+ * Set gutter
5264
5264
  */
5265
5265
  .uk-subnav-divider {
5266
5266
  margin-right: -41px;
@@ -8674,25 +8674,25 @@ iframe.uk-cover {
8674
8674
  --uk-translate-x: 100%;
8675
8675
  }
8676
8676
  .uk-transition-slide-top-small {
8677
- --uk-translate-y: -10px;
8677
+ --uk-translate-y: calc(-1 * 10px);
8678
8678
  }
8679
8679
  .uk-transition-slide-bottom-small {
8680
8680
  --uk-translate-y: 10px;
8681
8681
  }
8682
8682
  .uk-transition-slide-right-small {
8683
- --uk-translate-x: -10px;
8683
+ --uk-translate-x: calc(-1 * 10px);
8684
8684
  }
8685
8685
  .uk-transition-slide-left-small {
8686
8686
  --uk-translate-x: 10px;
8687
8687
  }
8688
8688
  .uk-transition-slide-top-medium {
8689
- --uk-translate-y: -50px;
8689
+ --uk-translate-y: calc(-1 * 50px);
8690
8690
  }
8691
8691
  .uk-transition-slide-bottom-medium {
8692
8692
  --uk-translate-y: 50px;
8693
8693
  }
8694
8694
  .uk-transition-slide-right-medium {
8695
- --uk-translate-x: -50px;
8695
+ --uk-translate-x: calc(-1 * 50px);
8696
8696
  }
8697
8697
  .uk-transition-slide-left-medium {
8698
8698
  --uk-translate-x: 50px;