diff --git a/.browserslistrc b/.browserslistrc
new file mode 100644
index 0000000..b29aeba
--- /dev/null
+++ b/.browserslistrc
@@ -0,0 +1,3 @@
+current node
+last 2 versions and > 2%
+ie > 10
diff --git a/babel.config.js b/babel.config.js
new file mode 100644
index 0000000..de59089
--- /dev/null
+++ b/babel.config.js
@@ -0,0 +1,16 @@
+const devPresets = ['@vue/babel-preset-app'];
+const buildPresets = [
+ [
+ '@babel/preset-env',
+ // Config for @babel/preset-env
+ {
+ // Example: Always transpile optional chaining/nullish coalescing
+ // include: [
+ // /(optional-chaining|nullish-coalescing)/
+ // ],
+ },
+ ],
+];
+module.exports = {
+ presets: (process.env.NODE_ENV === 'development' ? devPresets : buildPresets),
+};
diff --git a/build/rollup.config.js b/build/rollup.config.js
new file mode 100644
index 0000000..dd41f12
--- /dev/null
+++ b/build/rollup.config.js
@@ -0,0 +1,172 @@
+// rollup.config.js
+import fs from 'fs';
+import path from 'path';
+import vue from 'rollup-plugin-vue';
+import alias from '@rollup/plugin-alias';
+import commonjs from '@rollup/plugin-commonjs';
+import resolve from '@rollup/plugin-node-resolve';
+import replace from '@rollup/plugin-replace';
+import babel from '@rollup/plugin-babel';
+import PostCSS from 'rollup-plugin-postcss';
+import { terser } from 'rollup-plugin-terser';
+import minimist from 'minimist';
+
+// Get browserslist config and remove ie from es build targets
+const esbrowserslist = fs.readFileSync('./.browserslistrc')
+ .toString()
+ .split('\n')
+ .filter((entry) => entry && entry.substring(0, 2) !== 'ie');
+
+// Extract babel preset-env config, to combine with esbrowserslist
+const babelPresetEnvConfig = require('../babel.config')
+ .presets.filter((entry) => entry[0] === '@babel/preset-env')[0][1];
+
+const argv = minimist(process.argv.slice(2));
+
+const projectRoot = path.resolve(__dirname, '..');
+
+const baseConfig = {
+ input: 'src/entry.js',
+ plugins: {
+ preVue: [
+ alias({
+ entries: [
+ {
+ find: '@',
+ replacement: `${path.resolve(projectRoot, 'src')}`,
+ },
+ ],
+ }),
+ ],
+ replace: {
+ 'process.env.NODE_ENV': JSON.stringify('production'),
+ },
+ vue: {
+ preprocessStyles: true
+ },
+ postVue: [
+ resolve({
+ extensions: ['.js', '.jsx', '.ts', '.tsx', '.vue'],
+ }),
+ // Process only `
diff --git a/src/components/Spinner.vue b/src/components/Spinner.vue
index 25a8674..c8f7a17 100644
--- a/src/components/Spinner.vue
+++ b/src/components/Spinner.vue
@@ -1,102 +1,39 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+