├── .DS_Store ├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .ftpconfig ├── .gitignore ├── .npmignore ├── .postcssrc.js ├── README.md ├── babel.config.js ├── dist ├── demo.html ├── vue-fast-forms.common.js ├── vue-fast-forms.common.js.map ├── vue-fast-forms.css ├── vue-fast-forms.umd.js ├── vue-fast-forms.umd.js.map ├── vue-fast-forms.umd.min.js └── vue-fast-forms.umd.min.js.map ├── lib ├── button.vue ├── datepicker │ ├── datepicker.vue │ ├── days.vue │ ├── months.vue │ └── years.vue ├── form.vue ├── group.vue ├── index.js ├── inputs │ ├── _basic.vue │ ├── checkbox.vue │ ├── input-addon.vue │ ├── input-help.vue │ ├── input.vue │ ├── radio.vue │ └── select.vue └── timepicker │ └── timepicker.vue ├── package-lock.json ├── package.json ├── public ├── favicon.ico ├── img │ └── icons │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ ├── apple-touch-icon-120x120.png │ │ ├── apple-touch-icon-152x152.png │ │ ├── apple-touch-icon-180x180.png │ │ ├── apple-touch-icon-60x60.png │ │ ├── apple-touch-icon-76x76.png │ │ ├── apple-touch-icon.png │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── msapplication-icon-144x144.png │ │ ├── mstile-150x150.png │ │ └── safari-pinned-tab.svg ├── index.html └── manifest.json ├── src ├── App.vue ├── assets │ ├── fonts │ │ ├── Raleway-Black.ttf │ │ ├── Raleway-Black.woff2 │ │ ├── Raleway-Bold.ttf │ │ ├── Raleway-Bold.woff2 │ │ ├── Raleway-ExtraBold.ttf │ │ ├── Raleway-ExtraBold.woff2 │ │ ├── Raleway-ExtraLight.ttf │ │ ├── Raleway-ExtraLight.woff2 │ │ ├── Raleway-Light.ttf │ │ ├── Raleway-Light.woff2 │ │ ├── Raleway-Medium.ttf │ │ ├── Raleway-Medium.woff2 │ │ ├── Raleway-Regular.ttf │ │ ├── Raleway-Regular.woff2 │ │ ├── Raleway-SemiBold.ttf │ │ ├── Raleway-SemiBold.woff2 │ │ ├── Raleway-Thin.ttf │ │ ├── Raleway-Thin.woff2 │ │ ├── Roboto-Bold-webfont.eot │ │ ├── Roboto-Bold-webfont.svg │ │ ├── Roboto-Bold-webfont.ttf │ │ ├── Roboto-Bold-webfont.woff │ │ ├── Roboto-Light-webfont.eot │ │ ├── Roboto-Light-webfont.svg │ │ ├── Roboto-Light-webfont.ttf │ │ ├── Roboto-Light-webfont.woff │ │ ├── Roboto-Medium-webfont.eot │ │ ├── Roboto-Medium-webfont.svg │ │ ├── Roboto-Medium-webfont.ttf │ │ ├── Roboto-Medium-webfont.woff │ │ ├── Roboto-Regular-webfont.eot │ │ ├── Roboto-Regular-webfont.svg │ │ ├── Roboto-Regular-webfont.ttf │ │ ├── Roboto-Regular-webfont.woff │ │ ├── mplus-2m-medium.eot │ │ ├── mplus-2m-medium.ttf │ │ ├── mplus-2m-medium.woff │ │ ├── mplus-2m-regular.eot │ │ ├── mplus-2m-regular.ttf │ │ └── mplus-2m-regular.woff │ └── styles │ │ ├── app.scss │ │ └── prism.scss ├── components │ ├── CodeBlock.vue │ └── DocSection.vue ├── helpers.js ├── main.js ├── pages │ ├── Buttons.vue │ ├── Custom.vue │ ├── Datepicker.vue │ ├── Forms.vue │ ├── Home.vue │ └── Inputs.vue └── routes.js └── vue.config.js /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/.DS_Store -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | build/*.js 2 | config/*.js 3 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | 'extends': [ 7 | 'plugin:vue/essential', 8 | '@vue/airbnb' 9 | ], 10 | rules: { 11 | 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 12 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', 13 | 'import/extensions': ["error", "always", { 14 | "vue": "never", 15 | "js": "never", 16 | "json": "never", 17 | }], 18 | 'import/no-extraneous-dependencies': 0, 19 | 'no-prototype-builtins': 0, 20 | }, 21 | parserOptions: { 22 | parser: 'babel-eslint' 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /.ftpconfig: -------------------------------------------------------------------------------- 1 | { 2 | "protocol": "sftp", 3 | "host": "hovesyan.pro", 4 | "port": 22, 5 | "user": "andranik", 6 | "pass": "", 7 | "promptForPass": false, 8 | "remote": "/var/www/libs/vue-fast-forms", 9 | "local": "", 10 | "agent": "", 11 | "privatekey": "/home/andranik/.ssh/id_rsa", 12 | "passphrase": "Cwj58ASu9k", 13 | "hosthash": "", 14 | "ignorehost": true, 15 | "connTimeout": 10000, 16 | "keepalive": 10000, 17 | "keyboardInteractive": false, 18 | "watchTimeout": 500 19 | } 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | #/dist 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | *.sw* 22 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | dist/ 4 | npm-debug.log 5 | sftp-config.json -------------------------------------------------------------------------------- /.postcssrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {} 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Vue.js Fast Forms 2 | VueJS components for fast and easy forms build, validation and data bindning. 3 | 4 | ## Dependencies 5 | vue-fast-forms requires [Bootstrap 4 CSS](https://getbootstrap.com/) for forms styling and [moment.js](https://momentjs.com/) for a datepicker. 6 | 7 | ## Installation 8 | ```bash 9 | $ npm install vue-fast-forms bootstrap@4 moment --save 10 | ``` 11 | 12 | ## Docs and examples 13 | See the [documentation](http://vue-fast-forms.hovesyan.pro/). 14 | 15 | --- 16 | 17 | Sponsored by [Blockchain Today](https://blockchaintd.com/) 18 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/app', 4 | ], 5 | }; 6 | -------------------------------------------------------------------------------- /dist/demo.html: -------------------------------------------------------------------------------- 1 | vue-fast-forms demo 2 | 3 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /dist/vue-fast-forms.css: -------------------------------------------------------------------------------- 1 | .input-autocomplete{position:relative}.input-autosuggest{list-style:none;position:absolute;padding:0;width:auto;z-index:100}.input-autosuggest li{background:#fff;border:1px solid #e0e0e0;border-top:0;line-height:2.25rem;padding:0 1rem;cursor:pointer;min-width:10rem;width:auto}.input-autosuggest li:hover{background:#f5f5f5}.datepicker{position:relative}.calendar{padding:0 .5rem .5rem;position:absolute;z-index:100;background:#fff;width:20rem;border:1px solid #ccc}.calendar.calendar-inline{position:static}.calendar.align-right{right:0;float:right}.calendar.align-left{left:0;float:left}.calendar header{display:block;line-height:40px}.calendar header span{display:inline-block;text-align:center;width:calc(71.42857142857143% + 1rem);float:left}.calendar header .next,.calendar header .prev{width:14.285714285714286%;float:left;text-indent:-10000px;position:relative}.calendar header .next:after,.calendar header .prev:after{content:"";position:absolute;left:50%;top:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);border:6px solid transparent}.calendar header .prev{margin-left:-.5rem}.calendar header .prev:after{border-right:10px solid #000;margin-left:-5px}.calendar header .prev.disabled:after{border-right:10px solid #ddd}.calendar header .next{margin-right:-.5rem}.calendar header .next:after{border-left:10px solid #000;margin-left:5px}.calendar header .next.disabled:after{border-left:10px solid #ddd}.calendar header .next:not(.disabled),.calendar header .prev:not(.disabled),.calendar header .up:not(.disabled){cursor:pointer}.calendar header .next:not(.disabled):hover,.calendar header .prev:not(.disabled):hover,.calendar header .up:not(.disabled):hover{background:#eee}.calendar .disabled{color:#ddd;cursor:default}.calendar .cell{float:left;display:inline-block;padding:0 5px;width:calc(14.28% - .25rem);margin:.125rem;height:2.35rem;line-height:2.3rem;text-align:center;vertical-align:middle;border:1px solid transparent}.calendar .cell.selected,.calendar .cell:hover:not(.disabled){background:#39a1f4}.calendar .cell.selected{border:1px solid #0d8aed;-webkit-box-shadow:inset 0 0 1px #2196f3;box-shadow:inset 0 0 1px #2196f3}.calendar .cell:not(.blank):not(.disabled).day,.calendar .cell:not(.blank):not(.disabled).month,.calendar .cell:not(.blank):not(.disabled).year{cursor:pointer}.calendar .cell.day-header{font-size:75%;cursor:inherit}.calendar .cell.day-header:hover{background:inherit}.calendar .month,.calendar .year{width:calc(33.333% - .25rem)}.datepicker[data-v-7667e95a]{position:relative}.calendar[data-v-7667e95a]{padding:0 1rem;position:absolute;z-index:100;background:#fff;width:20rem;border:1px solid #ccc}.calendar.calendar-inline[data-v-7667e95a]{position:static}.calendar.align-right[data-v-7667e95a]{right:0;float:right}.calendar.align-left[data-v-7667e95a]{left:0;float:left}.calendar header[data-v-7667e95a]{display:block;line-height:40px}.calendar header span[data-v-7667e95a]{display:inline-block;text-align:center;width:calc(71.42857142857143% + 1rem);float:left}.calendar header .next[data-v-7667e95a],.calendar header .prev[data-v-7667e95a]{width:14.285714285714286%;float:left;text-indent:-10000px;position:relative}.calendar header .next[data-v-7667e95a]:after,.calendar header .prev[data-v-7667e95a]:after{content:"";position:absolute;left:50%;top:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);border:6px solid transparent}.calendar header .prev[data-v-7667e95a]{margin-left:-.5rem}.calendar header .prev[data-v-7667e95a]:after{border-right:10px solid #000;margin-left:-5px}.calendar header .prev.disabled[data-v-7667e95a]:after{border-right:10px solid #ddd}.calendar header .next[data-v-7667e95a]{margin-right:-.5rem}.calendar header .next[data-v-7667e95a]:after{border-left:10px solid #000;margin-left:5px}.calendar header .next.disabled[data-v-7667e95a]:after{border-left:10px solid #ddd}.calendar header .next[data-v-7667e95a]:not(.disabled),.calendar header .prev[data-v-7667e95a]:not(.disabled),.calendar header .up[data-v-7667e95a]:not(.disabled){cursor:pointer}.calendar header .next[data-v-7667e95a]:not(.disabled):hover,.calendar header .prev[data-v-7667e95a]:not(.disabled):hover,.calendar header .up[data-v-7667e95a]:not(.disabled):hover{background:#eee}.calendar .disabled[data-v-7667e95a]{color:#ddd;cursor:default}.calendar .cell[data-v-7667e95a]{font-size:1.25rem;padding:0;width:100%;margin:0;height:2.35rem;line-height:2.3rem;text-align:center}.calendar .cell.hour[data-v-7667e95a]{background:transparent;font-size:1rem;height:3rem;width:calc(100% - 1rem);margin:.5rem}.calendar .cell:not(.blank):not(.disabled).day[data-v-7667e95a],.calendar .cell:not(.blank):not(.disabled).month[data-v-7667e95a],.calendar .cell:not(.blank):not(.disabled).year[data-v-7667e95a]{cursor:pointer}.calendar .cell.day-header[data-v-7667e95a]{font-size:75%;cursor:inherit}.calendar .cell.day-header[data-v-7667e95a]:hover{background:inherit}.calendar .month[data-v-7667e95a],.calendar .year[data-v-7667e95a]{width:calc(33.333% - .25rem)}.btn-arrow[data-v-7667e95a]{background:transparent;border-radius:.15rem;border:none;color:#337ab7;height:2.25rem;line-height:2.25rem;margin:.5rem 0;text-align:center;width:100%}.btn-arrow[data-v-7667e95a]:hover{background:#f0f0f0} -------------------------------------------------------------------------------- /lib/button.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 145 | -------------------------------------------------------------------------------- /lib/datepicker/datepicker.vue: -------------------------------------------------------------------------------- 1 | 43 | 44 | 279 | 280 | 414 | -------------------------------------------------------------------------------- /lib/datepicker/days.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 73 | -------------------------------------------------------------------------------- /lib/datepicker/months.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 37 | -------------------------------------------------------------------------------- /lib/datepicker/years.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 43 | -------------------------------------------------------------------------------- /lib/form.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 113 | -------------------------------------------------------------------------------- /lib/group.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 43 | -------------------------------------------------------------------------------- /lib/index.js: -------------------------------------------------------------------------------- 1 | import Form from './form'; 2 | import Group from './group'; 3 | 4 | import Button from './button'; 5 | 6 | import Checkbox from './inputs/checkbox'; 7 | import Input from './inputs/input'; 8 | import Radio from './inputs/radio'; 9 | import Select from './inputs/select'; 10 | 11 | import Help from './inputs/input-help'; 12 | import Addon from './inputs/input-addon'; 13 | 14 | import Datepicker from './datepicker/datepicker'; 15 | import Timepicker from './timepicker/timepicker'; 16 | 17 | const VueFastForms = { 18 | Form, 19 | Group, 20 | Button, 21 | Checkbox, 22 | Input, 23 | Radio, 24 | Select, 25 | Help, 26 | Addon, 27 | Datepicker, 28 | Timepicker, 29 | }; 30 | 31 | export default VueFastForms; 32 | -------------------------------------------------------------------------------- /lib/inputs/_basic.vue: -------------------------------------------------------------------------------- 1 | 3 | 4 | 72 | -------------------------------------------------------------------------------- /lib/inputs/checkbox.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 94 | -------------------------------------------------------------------------------- /lib/inputs/input-addon.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 17 | -------------------------------------------------------------------------------- /lib/inputs/input-help.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 57 | -------------------------------------------------------------------------------- /lib/inputs/input.vue: -------------------------------------------------------------------------------- 1 | 40 | 41 | 243 | 268 | -------------------------------------------------------------------------------- /lib/inputs/radio.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 89 | -------------------------------------------------------------------------------- /lib/inputs/select.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 78 | -------------------------------------------------------------------------------- /lib/timepicker/timepicker.vue: -------------------------------------------------------------------------------- 1 | 97 | 98 | 281 | 282 | 426 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-fast-forms", 3 | "description": "VueJS forms builder and validator ", 4 | "author": "Andranik Hovesyan ", 5 | "version": "1.0.1", 6 | "private": false, 7 | "main": "dist/vue-fast-forms.common.js", 8 | "scripts": { 9 | "serve": "vue-cli-service serve", 10 | "build": "vue-cli-service build", 11 | "build:lib": "vue-cli-service build --target lib --name vue-fast-forms lib", 12 | "lint": "vue-cli-service lint" 13 | }, 14 | "repository": { 15 | "type": "git", 16 | "url": "git+https://github.com/Hovesyan/vue-fast-forms.git" 17 | }, 18 | "license": "ISC", 19 | "bugs": { 20 | "url": "https://github.com/Hovesyan/vue-fast-forms/issues" 21 | }, 22 | "homepage": "http://vue-fast-forms.hovesyan.pro/", 23 | "dependencies": { 24 | "bootstrap": "4.3.1", 25 | "moment": "^2.22.2", 26 | "register-service-worker": "^1.0.0", 27 | "vue": "^2.5.16", 28 | "vue-fontawesome": "0.0.2" 29 | }, 30 | "devDependencies": { 31 | "@vue/cli-plugin-babel": "3.11.0", 32 | "@vue/cli-plugin-eslint": "^3.0.0-beta.15", 33 | "@vue/cli-plugin-pwa": "^3.0.0-beta.15", 34 | "@vue/cli-service": "3.11.0", 35 | "@vue/eslint-config-airbnb": "^3.0.0-rc.3", 36 | "babel-preset-stage-0": "^6.24.1", 37 | "jquery": "3.4.1", 38 | "node-sass": "^7.0.0", 39 | "prismjs": "^1.15.0", 40 | "pug": "^2.0.3", 41 | "pug-plain-loader": "^1.0.0", 42 | "sass-loader": "^7.0.1", 43 | "vue-router": "^3.0.1", 44 | "vue-template-compiler": "^2.5.16", 45 | "vuex": "^3.0.1" 46 | }, 47 | "browserslist": [ 48 | "> 1%", 49 | "last 2 versions", 50 | "not ie <= 8" 51 | ] 52 | } 53 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/public/favicon.ico -------------------------------------------------------------------------------- /public/img/icons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/public/img/icons/android-chrome-192x192.png -------------------------------------------------------------------------------- /public/img/icons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/public/img/icons/android-chrome-512x512.png -------------------------------------------------------------------------------- /public/img/icons/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/public/img/icons/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /public/img/icons/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/public/img/icons/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /public/img/icons/apple-touch-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/public/img/icons/apple-touch-icon-180x180.png -------------------------------------------------------------------------------- /public/img/icons/apple-touch-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/public/img/icons/apple-touch-icon-60x60.png -------------------------------------------------------------------------------- /public/img/icons/apple-touch-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/public/img/icons/apple-touch-icon-76x76.png -------------------------------------------------------------------------------- /public/img/icons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/public/img/icons/apple-touch-icon.png -------------------------------------------------------------------------------- /public/img/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/public/img/icons/favicon-16x16.png -------------------------------------------------------------------------------- /public/img/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/public/img/icons/favicon-32x32.png -------------------------------------------------------------------------------- /public/img/icons/msapplication-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/public/img/icons/msapplication-icon-144x144.png -------------------------------------------------------------------------------- /public/img/icons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/public/img/icons/mstile-150x150.png -------------------------------------------------------------------------------- /public/img/icons/safari-pinned-tab.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | Created by potrace 1.11, written by Peter Selinger 2001-2013 9 | 10 | 12 | 148 | 149 | 150 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | my-project 10 | 11 | 12 | 15 |
16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "my-project", 3 | "short_name": "my-project", 4 | "icons": [ 5 | { 6 | "src": "/img/icons/android-chrome-192x192.png", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | }, 10 | { 11 | "src": "/img/icons/android-chrome-512x512.png", 12 | "sizes": "512x512", 13 | "type": "image/png" 14 | } 15 | ], 16 | "start_url": "/index.html", 17 | "display": "standalone", 18 | "background_color": "#000000", 19 | "theme_color": "#4DBA87" 20 | } 21 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 89 | 90 | 140 | 141 | 264 | -------------------------------------------------------------------------------- /src/assets/fonts/Raleway-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Raleway-Black.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Raleway-Black.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Raleway-Black.woff2 -------------------------------------------------------------------------------- /src/assets/fonts/Raleway-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Raleway-Bold.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Raleway-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Raleway-Bold.woff2 -------------------------------------------------------------------------------- /src/assets/fonts/Raleway-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Raleway-ExtraBold.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Raleway-ExtraBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Raleway-ExtraBold.woff2 -------------------------------------------------------------------------------- /src/assets/fonts/Raleway-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Raleway-ExtraLight.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Raleway-ExtraLight.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Raleway-ExtraLight.woff2 -------------------------------------------------------------------------------- /src/assets/fonts/Raleway-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Raleway-Light.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Raleway-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Raleway-Light.woff2 -------------------------------------------------------------------------------- /src/assets/fonts/Raleway-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Raleway-Medium.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Raleway-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Raleway-Medium.woff2 -------------------------------------------------------------------------------- /src/assets/fonts/Raleway-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Raleway-Regular.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Raleway-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Raleway-Regular.woff2 -------------------------------------------------------------------------------- /src/assets/fonts/Raleway-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Raleway-SemiBold.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Raleway-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Raleway-SemiBold.woff2 -------------------------------------------------------------------------------- /src/assets/fonts/Raleway-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Raleway-Thin.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Raleway-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Raleway-Thin.woff2 -------------------------------------------------------------------------------- /src/assets/fonts/Roboto-Bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Roboto-Bold-webfont.eot -------------------------------------------------------------------------------- /src/assets/fonts/Roboto-Bold-webfont.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | -------------------------------------------------------------------------------- /src/assets/fonts/Roboto-Bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Roboto-Bold-webfont.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Roboto-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Roboto-Bold-webfont.woff -------------------------------------------------------------------------------- /src/assets/fonts/Roboto-Light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Roboto-Light-webfont.eot -------------------------------------------------------------------------------- /src/assets/fonts/Roboto-Light-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Roboto-Light-webfont.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Roboto-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Roboto-Light-webfont.woff -------------------------------------------------------------------------------- /src/assets/fonts/Roboto-Medium-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Roboto-Medium-webfont.eot -------------------------------------------------------------------------------- /src/assets/fonts/Roboto-Medium-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Roboto-Medium-webfont.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Roboto-Medium-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Roboto-Medium-webfont.woff -------------------------------------------------------------------------------- /src/assets/fonts/Roboto-Regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Roboto-Regular-webfont.eot -------------------------------------------------------------------------------- /src/assets/fonts/Roboto-Regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Roboto-Regular-webfont.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Roboto-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/Roboto-Regular-webfont.woff -------------------------------------------------------------------------------- /src/assets/fonts/mplus-2m-medium.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/mplus-2m-medium.eot -------------------------------------------------------------------------------- /src/assets/fonts/mplus-2m-medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/mplus-2m-medium.ttf -------------------------------------------------------------------------------- /src/assets/fonts/mplus-2m-medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/mplus-2m-medium.woff -------------------------------------------------------------------------------- /src/assets/fonts/mplus-2m-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/mplus-2m-regular.eot -------------------------------------------------------------------------------- /src/assets/fonts/mplus-2m-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/mplus-2m-regular.ttf -------------------------------------------------------------------------------- /src/assets/fonts/mplus-2m-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/assets/fonts/mplus-2m-regular.woff -------------------------------------------------------------------------------- /src/assets/styles/app.scss: -------------------------------------------------------------------------------- 1 | $font-family-sans-serif: "Source Sans Pro", -apple-system, system-ui, BlinkMacSystemFont, 2 | "Segoe UI", "Roboto", "Helvetica Neue", Arial, sans-serif; 3 | 4 | $fa-font-path: "../node_modules/font-awesome/fonts"; 5 | 6 | @import "./prism.scss"; 7 | @import "~font-awesome/scss/font-awesome"; 8 | @import "~bootstrap/scss/bootstrap"; 9 | 10 | @font-face { 11 | font-family: "M+ 2m"; 12 | font-weight: 400; 13 | src: url("assets/fonts/mplus-2m-regular.eot"); 14 | src: 15 | url("assets/fonts/mplus-2m-regular.eot?#iefix") format("embedded-opentype"), 16 | url("assets/fonts/mplus-2m-regular.woff") format("woff"), 17 | url("assets/fonts/mplus-2m-regular.ttf") format("truetype"); 18 | } 19 | @font-face { 20 | font-family: "M+ 2m"; 21 | font-weight: 500; 22 | src: url("assets/fonts/mplus-2m-medium.eot"); 23 | src: 24 | url("assets/fonts/mplus-2m-medium.eot?#iefix") format("embedded-opentype"), 25 | url("assets/fonts/mplus-2m-medium.woff") format("woff"), 26 | url("assets/fonts/mplus-2m-medium.ttf") format("truetype"); 27 | } 28 | 29 | input::-webkit-input-placeholder { /* Chrome/Opera/Safari */ 30 | font-family: $font-family-sans-serif; 31 | } 32 | input::-moz-placeholder { /* Firefox 19+ */ 33 | font-family: $font-family-sans-serif; 34 | } 35 | input:-ms-input-placeholder { /* IE 10+ */ 36 | font-family: $font-family-sans-serif; 37 | } 38 | input:-moz-placeholder { /* Firefox 18- */ 39 | font-family: $font-family-sans-serif; 40 | } 41 | 42 | .btn { 43 | font-family: $font-family-sans-serif; 44 | } 45 | 46 | // /* latin */ 47 | // @font-face { 48 | // font-family: 'Raleway'; 49 | // font-style: normal; 50 | // font-weight: 100; 51 | // src: 52 | // local('Raleway Thin'), 53 | // local('Raleway-Thin'), 54 | // url("assets/fonts/Raleway-Thin.ttf") format('truetype'), 55 | // url("assets/fonts/Raleway-Thin.woff2") format('woff2'); 56 | // unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; 57 | // } 58 | // /* latin */ 59 | // @font-face { 60 | // font-family: 'Raleway'; 61 | // font-style: normal; 62 | // font-weight: 200; 63 | // src: 64 | // local('Raleway ExtraLight'), 65 | // local('Raleway-ExtraLight'), 66 | // url("assets/fonts/Raleway-ExtraLight.ttf") format('truetype'), 67 | // url("assets/fonts/Raleway-ExtraLight.woff2") format('woff2'); 68 | // unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; 69 | // } 70 | // /* latin */ 71 | // @font-face { 72 | // font-family: 'Raleway'; 73 | // font-style: normal; 74 | // font-weight: 300; 75 | // src: 76 | // local('Raleway Light'), 77 | // local('Raleway-Light'), 78 | // url("assets/fonts/Raleway-Light.ttf") format('truetype'), 79 | // url("assets/fonts/Raleway-Light.woff2") format('woff2'); 80 | // unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; 81 | // } 82 | // /* latin */ 83 | // @font-face { 84 | // font-family: 'Raleway'; 85 | // font-style: normal; 86 | // font-weight: 400; 87 | // src: 88 | // local('Raleway'), 89 | // local('Raleway-Regular'), 90 | // url("assets/fonts/Raleway-Regular.woff2") format('woff2'); 91 | // unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; 92 | // } 93 | // /* latin */ 94 | // @font-face { 95 | // font-family: 'Raleway'; 96 | // font-style: normal; 97 | // font-weight: 500; 98 | // src: 99 | // local('Raleway Medium'), 100 | // local('Raleway-Medium'), 101 | // url("assets/fonts/Raleway-Medium.ttf") format('truetype'), 102 | // url("assets/fonts/Raleway-Medium.woff2") format('woff2'); 103 | // unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; 104 | // } 105 | // /* latin */ 106 | // @font-face { 107 | // font-family: 'Raleway'; 108 | // font-style: normal; 109 | // font-weight: 600; 110 | // src: 111 | // local('Raleway SemiBold'), 112 | // local('Raleway-SemiBold'), 113 | // url("assets/fonts/Raleway-SemiBold.ttf") format('truetype'), 114 | // url("assets/fonts/Raleway-SemiBold.woff2") format('woff2'); 115 | // unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; 116 | // } 117 | // /* latin */ 118 | // @font-face { 119 | // font-family: 'Raleway'; 120 | // font-style: normal; 121 | // font-weight: 700; 122 | // src: 123 | // local('Raleway Bold'), 124 | // local('Raleway-Bold'), 125 | // url("assets/fonts/Raleway-Bold.ttf") format('truetype'), 126 | // url("assets/fonts/Raleway-Bold.woff2") format('woff2'); 127 | // unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; 128 | // } 129 | // /* latin */ 130 | // @font-face { 131 | // font-family: 'Raleway'; 132 | // font-style: normal; 133 | // font-weight: 800; 134 | // src: 135 | // local('Raleway ExtraBold'), 136 | // local('Raleway-ExtraBold'), 137 | // url("assets/fonts/Raleway-ExtraBold.ttf") format('truetype'), 138 | // url("assets/fonts/Raleway-ExtraBold.woff2") format('woff2'); 139 | // unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; 140 | // } 141 | // /* latin */ 142 | // @font-face { 143 | // font-family: 'Raleway'; 144 | // font-style: normal; 145 | // font-weight: 900; 146 | // src: 147 | // local('Raleway Black'), 148 | // local('Raleway-Black'), 149 | // url("assets/fonts/Raleway-Black.ttf") format('truetype'), 150 | // url("assets/fonts/Raleway-Black.woff2") format('woff2'); 151 | // unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; 152 | // } 153 | 154 | // @font-face { 155 | // font-family: 'Roboto'; 156 | // src: url('assets/fonts/Roboto-Light-webfont.eot'); 157 | // src: url('assets/fonts/Roboto-Light-webfont.eot?#iefix') format('embedded-opentype'), 158 | // url('assets/fonts/Roboto-Light-webfont.woff') format('woff'), 159 | // url('assets/fonts/Roboto-Light-webfont.ttf') format('truetype'), 160 | // url('assets/fonts/Roboto-Light-webfont.svg#robotoregular') format('svg'); 161 | // font-weight: 300; 162 | // font-style: normal; 163 | // } 164 | 165 | // @font-face { 166 | // font-family: 'Roboto'; 167 | // src: url('assets/fonts/Roboto-Regular-webfont.eot'); 168 | // src: url('assets/fonts/Roboto-Regular-webfont.eot?#iefix') format('embedded-opentype'), 169 | // url('assets/fonts/Roboto-Regular-webfont.woff') format('woff'), 170 | // url('assets/fonts/Roboto-Regular-webfont.ttf') format('truetype'), 171 | // url('assets/fonts/Roboto-Regular-webfont.svg#robotoregular') format('svg'); 172 | // font-weight: normal; 173 | // font-style: normal; 174 | // } 175 | 176 | // @font-face { 177 | // font-family: 'Roboto'; 178 | // src: url('assets/fonts/Roboto-Medium-webfont.eot'); 179 | // src: url('assets/fonts/Roboto-Medium-webfont.eot?#iefix') format('embedded-opentype'), 180 | // url('assets/fonts/Roboto-Medium-webfont.woff') format('woff'), 181 | // url('assets/fonts/Roboto-Medium-webfont.ttf') format('truetype'), 182 | // url('assets/fonts/Roboto-Medium-webfont.svg#robotoregular') format('svg'); 183 | // font-weight: 500; 184 | // font-style: normal; 185 | // } 186 | 187 | // @font-face { 188 | // font-family: 'Roboto'; 189 | // src: url('assets/fonts/Roboto-Medium-webfont.eot'); 190 | // src: url('assets/fonts/Roboto-Medium-webfont.eot?#iefix') format('embedded-opentype'), 191 | // url('assets/fonts/Roboto-Medium-webfont.woff') format('woff'), 192 | // url('assets/fonts/Roboto-Medium-webfont.ttf') format('truetype'), 193 | // url('assets/fonts/Roboto-Medium-webfont.svg#robotoregular') format('svg'); 194 | // font-weight: 500; 195 | // font-style: normal; 196 | // } 197 | 198 | 199 | // @font-face { 200 | // font-family: 'Roboto'; 201 | // src: url('assets/fonts/Roboto-Bold-webfont.eot'); 202 | // src: url('assets/fonts/Roboto-Bold-webfont.eot?#iefix') format('embedded-opentype'), 203 | // url('assets/fonts/Roboto-Bold-webfont.woff') format('woff'), 204 | // url('assets/fonts/Roboto-Bold-webfont.ttf') format('truetype'), 205 | // url('assets/fonts/Roboto-Bold-webfont.svg#robotoregular') format('svg'); 206 | // font-weight: 700; 207 | // font-style: normal; 208 | // } 209 | 210 | select, 211 | option, 212 | input { 213 | font-family: $font-family-sans-serif; 214 | } 215 | 216 | html { 217 | font-family: $font-family-sans-serif; 218 | overflow-y: scroll; 219 | } 220 | 221 | body { 222 | background: #fff; 223 | padding-top: 4rem; 224 | } 225 | 226 | pre, 227 | code { 228 | font-family: "M+ 2m", monospace !important; 229 | margin: 0; 230 | border-radius: inherit; 231 | } 232 | 233 | .navbar { 234 | border-bottom: 1px solid #e0e0e0; 235 | } 236 | 237 | .code-block { 238 | background: #F7F7F9; 239 | } 240 | 241 | .tag { 242 | font-size: 100% !important; 243 | } 244 | 245 | .card-example { 246 | border-color: #D8D8D8; 247 | border-radius: .1rem; 248 | overflow: hidden; 249 | padding-top: 1.75rem; 250 | 251 | &::before { 252 | position: absolute; 253 | left: 0; 254 | top: 0; 255 | padding: 1em; 256 | color: #aaa; 257 | font-size: smaller; 258 | font-weight: 500; 259 | content: "EXAMPLE"; 260 | } 261 | } 262 | 263 | .tag { 264 | padding: 0.15rem 0 !important; 265 | font-weight: 500 !important; 266 | } 267 | 268 | h1, h2, h3 { 269 | font-weight: 300; 270 | } 271 | 272 | .form-control { 273 | box-shadow: none!important; 274 | } 275 | 276 | .datepicker { 277 | .calendar { 278 | border-radius: $border-radius; 279 | } 280 | 281 | .cell:not(.day-header) { 282 | border-radius: $border-radius; 283 | 284 | &:hover:not(.blank):not(.disabled):not(.selected) { 285 | // background: $brand-primary; 286 | // border: 1px solid $brand-primary; 287 | color: #fff; 288 | } 289 | 290 | &.selected { 291 | // background: lighten($brand-primary, 10%); 292 | color: #fff; 293 | } 294 | } 295 | 296 | .form-control:not(.readonly) { 297 | background: $input-bg; 298 | } 299 | } 300 | 301 | 302 | .block.custom-control.custom-radio { 303 | display: block; 304 | margin-left: 0; 305 | } 306 | 307 | $cell-width: 100% / 7; 308 | 309 | .datepicker { 310 | position: relative; 311 | } 312 | 313 | .calendar { 314 | padding: 0 .5rem .5rem; 315 | position: absolute; 316 | z-index: 100; 317 | background: #fff; 318 | border: 1px solid #ccc; 319 | &.align-right { 320 | right: 0; 321 | } 322 | &.align-left { 323 | left: 0; 324 | } 325 | 326 | header { 327 | display: block; 328 | line-height: 40px; 329 | 330 | span { 331 | display: inline-block; 332 | text-align: center; 333 | width: calc(71.42857142857143% + 1rem); 334 | float: left; 335 | } 336 | 337 | .prev, 338 | .next { 339 | width: 14.285714285714286%; 340 | float: left; 341 | text-indent: -10000px; 342 | position: relative; 343 | &:after { 344 | content: ''; 345 | position: absolute; 346 | left: 50%; 347 | top: 50%; 348 | transform: translateX(-50%) translateY(-50%); 349 | border: 6px solid transparent; 350 | } 351 | } 352 | 353 | .prev { 354 | margin-left: -.5rem; 355 | &:after { 356 | border-right: 10px solid #000; 357 | margin-left: -5px; 358 | } 359 | &.disabled:after { 360 | border-right: 10px solid #ddd; 361 | } 362 | } 363 | 364 | .next { 365 | margin-right: -.5rem; 366 | &:after { 367 | border-left: 10px solid #000; 368 | margin-left: 5px; 369 | } 370 | &.disabled:after { 371 | border-left: 10px solid #ddd; 372 | } 373 | } 374 | 375 | .prev:not(.disabled), 376 | .next:not(.disabled), 377 | .up:not(.disabled) { 378 | cursor: pointer; 379 | &:hover { 380 | background: #eee; 381 | } 382 | } 383 | } 384 | 385 | .disabled { 386 | color: #ddd; 387 | cursor: default; 388 | } 389 | 390 | .cell { 391 | float: left; 392 | display: inline-block; 393 | padding: 0 5px; 394 | width: calc(14.28% - .25rem); 395 | margin: .125rem; 396 | height: 2.35rem; 397 | line-height: 2.3rem; 398 | text-align: center; 399 | vertical-align: middle; 400 | border: 1px solid transparent; 401 | 402 | &:not(.blank):not(.disabled) { 403 | &.day, 404 | &.month, 405 | &.year { 406 | cursor: pointer; 407 | } 408 | } 409 | 410 | &.grey { 411 | color: #888; 412 | &:hover { 413 | background: inherit; 414 | } 415 | } 416 | 417 | &.day-header { 418 | font-size: 75%; 419 | cursor: inherit; 420 | &:hover { 421 | background: inherit; 422 | } 423 | } 424 | } 425 | 426 | .month, 427 | .year { 428 | width: calc(33.333% - .25rem); 429 | } 430 | } -------------------------------------------------------------------------------- /src/assets/styles/prism.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * prism.js Monokai theme 3 | * @author Sam Clarke 4 | */ 5 | code[class*="language-"], 6 | pre[class*="language-"] { 7 | color: #f8f8f2; 8 | background: none; 9 | font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; 10 | text-align: left; 11 | white-space: pre; 12 | word-spacing: normal; 13 | word-break: normal; 14 | word-wrap: normal; 15 | line-height: 1.4; 16 | 17 | -moz-tab-size: 8; 18 | -o-tab-size: 8; 19 | tab-size: 8; 20 | 21 | -webkit-hyphens: none; 22 | -moz-hyphens: none; 23 | -ms-hyphens: none; 24 | hyphens: none; 25 | } 26 | 27 | /* Code blocks */ 28 | pre[class*="language-"] { 29 | padding: .8em; 30 | overflow: auto; 31 | background: #272822; 32 | } 33 | 34 | /* Inline code */ 35 | :not(pre) > code[class*="language-"] { 36 | padding: .1em; 37 | border-radius: .3em; 38 | white-space: normal; 39 | background: #272822; 40 | } 41 | 42 | .token.comment, 43 | .token.blockquote, 44 | .token.shebang.important, 45 | .token.shebang { 46 | color: #75715e; 47 | } 48 | 49 | .token.operator, 50 | .token.important, 51 | .token.keyword, 52 | .token.rule, 53 | .token.tag, 54 | .token.deleted, 55 | .token.selector, 56 | .token.prolog, 57 | .token.title .token.punctuation { 58 | color: #f92672; 59 | } 60 | 61 | .token.property, 62 | .token.entity, 63 | .token.atrule, 64 | .token.command, 65 | .token.code { 66 | color: #66d9ef; 67 | } 68 | 69 | .token.regex, 70 | .token.atrule .token.property { 71 | color: #fd971f; 72 | } 73 | 74 | .token.pseudo-element, 75 | .token.id, 76 | .token.class, 77 | .token.class-name, 78 | .token.pseudo-class, 79 | .token.function, 80 | .token.namespace, 81 | .token.inserted, 82 | .token.symbol, 83 | .token.url-reference .token.variable, 84 | .token.attr-name { 85 | color: #a6e22e; 86 | } 87 | 88 | .token.string, 89 | .token.url, 90 | .token.list, 91 | .token.cdata, 92 | .token.attr-value, 93 | .token.attr-value a.token.url-link { 94 | color: #e6db74; 95 | } 96 | 97 | .token.constant, 98 | .token.hexcode, 99 | .token.builtin, 100 | .token.number, 101 | .token.boolean { 102 | color: #ae81ff; 103 | } 104 | 105 | .token.doctype, 106 | .token.punctuation, 107 | .token.variable, 108 | .token.macro.property { 109 | color: #f8f8f2; 110 | } 111 | 112 | .token.entity { 113 | cursor: help; 114 | } 115 | 116 | .token.title, 117 | .token.title .token.punctuation { 118 | font-weight: bold; 119 | } 120 | 121 | .token.bold { 122 | font-weight: bold; 123 | } 124 | 125 | .token.italic { 126 | font-style: italic; 127 | } 128 | 129 | /* YAML */ 130 | .language-yaml .token.atrule { 131 | color: #f92672; 132 | } 133 | 134 | /* Bash */ 135 | .language-bash .token.function { 136 | color: #f92672; 137 | } 138 | 139 | 140 | pre.code-toolbar { 141 | position: relative; 142 | } 143 | 144 | pre.code-toolbar > .toolbar { 145 | position: absolute; 146 | top: .5rem; 147 | right: .25rem; 148 | transition: opacity 0.3s ease-in-out; 149 | opacity: 0; 150 | } 151 | 152 | pre.code-toolbar:hover > .toolbar { 153 | opacity: 1; 154 | } 155 | 156 | pre.code-toolbar > .toolbar .toolbar-item { 157 | display: inline-block; 158 | } 159 | 160 | pre.code-toolbar > .toolbar a { 161 | cursor: pointer; 162 | } 163 | 164 | pre.code-toolbar > .toolbar button { 165 | background: none; 166 | border: 0; 167 | color: inherit; 168 | font: inherit; 169 | line-height: normal; 170 | overflow: visible; 171 | padding: 0; 172 | -webkit-user-select: none; /* for button */ 173 | -moz-user-select: none; 174 | -ms-user-select: none; 175 | } 176 | 177 | pre.code-toolbar > .toolbar a, 178 | pre.code-toolbar > .toolbar button, 179 | pre.code-toolbar > .toolbar span { 180 | color: #bbb; 181 | font-size: .8rem; 182 | padding: .25rem .75rem .35rem; 183 | background: #f5f2f0; 184 | background: rgba(224, 224, 224, 0.2); 185 | box-shadow: 0 2px 0 0 rgba(0,0,0,0.2); 186 | border-radius: .15rem; 187 | } 188 | 189 | pre.code-toolbar > .toolbar a:hover, 190 | pre.code-toolbar > .toolbar a:focus, 191 | pre.code-toolbar > .toolbar button:hover, 192 | pre.code-toolbar > .toolbar button:focus, 193 | pre.code-toolbar > .toolbar span:hover, 194 | pre.code-toolbar > .toolbar span:focus { 195 | color: inherit; 196 | text-decoration: none; 197 | } 198 | -------------------------------------------------------------------------------- /src/components/CodeBlock.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 43 | -------------------------------------------------------------------------------- /src/components/DocSection.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 27 | -------------------------------------------------------------------------------- /src/helpers.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andhovesyan/vue-fast-forms/5b3e70da5bac578b10a8e1d9125807cf31f6a0e0/src/helpers.js -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import VueRouter from 'vue-router'; 3 | 4 | import VF from 'vue-fast-forms'; 5 | 6 | import DocSection from 'components/DocSection'; 7 | import CodeBlock from 'components/CodeBlock'; 8 | 9 | import App from './App'; 10 | import routes from './routes'; 11 | 12 | Vue.component('vf-btn', VF.Button); 13 | Vue.component('vf-checkbox', VF.Checkbox); 14 | Vue.component('vf-form', VF.Form); 15 | Vue.component('vf-group', VF.Group); 16 | Vue.component('vf-input', VF.Input); 17 | Vue.component('vf-radio', VF.Radio); 18 | Vue.component('vf-datepicker', VF.Datepicker); 19 | Vue.component('vf-timepicker', VF.Timepicker); 20 | Vue.component('vf-select', VF.Select); 21 | Vue.component('vf-addon', VF.Addon); 22 | Vue.component('vf-help', VF.Help); 23 | 24 | Vue.component('doc-section', DocSection); 25 | Vue.component('code-block', CodeBlock); 26 | 27 | Vue.use(VueRouter); 28 | 29 | const router = new VueRouter({ 30 | linkActiveClass: 'active', 31 | mode: 'history', 32 | routes, 33 | }); 34 | 35 | /* eslint-disable no-new */ 36 | new Vue({ 37 | strict: process.env.NODE_ENV !== 'production', 38 | router, 39 | render: h => h(App), 40 | el: '#app', 41 | }); 42 | -------------------------------------------------------------------------------- /src/pages/Buttons.vue: -------------------------------------------------------------------------------- 1 | 144 | 145 | 150 | -------------------------------------------------------------------------------- /src/pages/Custom.vue: -------------------------------------------------------------------------------- 1 | 127 | 128 | 145 | -------------------------------------------------------------------------------- /src/pages/Datepicker.vue: -------------------------------------------------------------------------------- 1 | 123 | 124 | 140 | -------------------------------------------------------------------------------- /src/pages/Forms.vue: -------------------------------------------------------------------------------- 1 | 153 | 154 | 180 | 181 | 197 | -------------------------------------------------------------------------------- /src/pages/Home.vue: -------------------------------------------------------------------------------- 1 | 151 | 152 | 178 | 179 | 195 | -------------------------------------------------------------------------------- /src/pages/Inputs.vue: -------------------------------------------------------------------------------- 1 | 93 | 94 | 109 | -------------------------------------------------------------------------------- /src/routes.js: -------------------------------------------------------------------------------- 1 | import Home from './pages/Home'; 2 | import Buttons from './pages/Buttons'; 3 | import Forms from './pages/Forms'; 4 | import Inputs from './pages/Inputs'; 5 | import Custom from './pages/Custom'; 6 | import Datepicker from './pages/Datepicker'; 7 | 8 | export default [{ 9 | name: 'home', 10 | path: '/', 11 | component: Home, 12 | }, { 13 | name: 'forms', 14 | path: '/forms', 15 | component: Forms, 16 | }, { 17 | name: 'inputs', 18 | path: '/inputs', 19 | component: Inputs, 20 | }, { 21 | name: 'custom', 22 | path: '/custom', 23 | component: Custom, 24 | }, { 25 | name: 'datepicker', 26 | path: '/datepicker', 27 | component: Datepicker, 28 | }, { 29 | name: 'buttons', 30 | path: '/buttons', 31 | component: Buttons, 32 | children: [{ 33 | path: 'test1', 34 | name: 'buttons.test1', 35 | component: Buttons, 36 | }, { 37 | path: 'test2', 38 | name: 'buttons.test2', 39 | component: Buttons, 40 | }], 41 | }]; 42 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | 3 | function resolve (dir) { 4 | return path.join(__dirname, dir) 5 | } 6 | 7 | module.exports = { 8 | configureWebpack: { 9 | output: { 10 | libraryExport: 'default' 11 | }, 12 | resolve: { 13 | extensions: ['.js', '.vue', '.json'], 14 | alias: { 15 | 'vue$': 'vue/dist/vue.esm.js', 16 | '@': resolve('docs'), 17 | 'components': resolve('src/components'), 18 | 'vue-fast-forms': resolve('lib'), 19 | } 20 | }, 21 | }, 22 | }; 23 | --------------------------------------------------------------------------------