uikit 3.8.1 → 3.9.2-dev.836238c9b

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