├── .gitignore ├── .vscode └── extensions.json ├── CHANGES.md ├── README.md ├── index.html ├── package-lock.json ├── package.json ├── public └── favicon.ico ├── src ├── App.vue ├── assets │ ├── form-wizard │ │ ├── _buttons.scss │ │ ├── _mixins.scss │ │ ├── _navs-pagination.scss │ │ ├── _variables.scss │ │ ├── _wizard-card.scss │ │ ├── bs_button.scss │ │ ├── bs_nav_pills.scss │ │ ├── bs_progress_bar.scss │ │ ├── bs_variables.scss │ │ └── mixins │ │ │ ├── _buttons.scss │ │ │ ├── _transparency.scss │ │ │ ├── _vendor-prefixes.scss │ │ │ └── _wizard-size.scss │ └── wizard.scss ├── components │ ├── FormWizard.vue │ ├── TabContent.vue │ ├── WizardButton.vue │ ├── WizardStep.vue │ └── helpers.js ├── env.d.ts ├── index.ts └── main.ts ├── tsconfig.json ├── vite.config.ts └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["johnsoncodehk.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /CHANGES.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | All notable changes to this project will be documented in this file. 3 | 4 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 5 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 6 | 7 | ## [Unreleased] 8 | ## [0.2.2] 9 | ### Fix 10 | - TS import component issue 11 | 12 | ## [0.1.9] 13 | ### Added 14 | 15 | 16 | ### Changed 17 | 18 | 19 | ### Deprecated 20 | 21 | 22 | ### Removed 23 | 24 | ### Fix 25 | - Fix decentered progress bar at step-sizes < 'md' 26 | 27 | ## [0.1.1] 28 | ### Added 29 | - Create customIcon props 30 | - Check text and background color 31 | 32 | ### Changed 33 | - Change icon section structors 34 | - Change add tab function structor (remove get index by slot) 35 | 36 | ### Deprecated 37 | 38 | 39 | ### Removed 40 | - Some transition 41 | - Source Folder in dist -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Vue3 form wizard

2 | 3 | 4 |

A dynamic wizard to split your forms easier

5 |
6 |

7 | Demo 8 |

Vue3-form-wizard is a vue based component with no external depenendcies which simplifies tab wizard management.

9 |

10 | 11 |

12 | 13 | version 14 | 15 | 16 | MIT license 17 | 18 | 19 | downloads 20 | 21 |
22 | 23 | gzip size 24 | 25 | 26 | no dependencies 27 | 28 | 29 | travis 30 | 31 |

32 | 33 |

34 |
35 | 36 | 📚Document ・ 37 | 🔎 Demos ・ 38 | 🔬 Playground 39 | 40 |

41 | 42 | ## Dependencies 43 | - required: Vuejs >= 3.x 44 | 45 | ## Installation 46 | ```bash 47 | npm install vue3-form-wizard --save 48 | ``` 49 | ```bash 50 | yarn add vue3-form-wizard 51 | ``` 52 | ## 🚀 Features 53 | 54 | - 🎪 [**Interactive docs & demos**](https://vue3-form-wizard-document.netlify.app/demos/) 55 | - 🦾 **Type Strong**: Written in [Typescript](https://www.typescriptlang.org/), with [TS Docs](https://github.com/microsoft/tsdoc) 56 | - 🌎 **No bundler required**: Usable via CDN 57 | - 🔩 **Flexible**: Configurable event filters and targets 58 | 59 | ## 🔧 [**Document**](https://vue3-form-wizard-document.netlify.app/usage/) 60 | 61 | - ➡️ [**Usagae**](https://vue3-form-wizard-document.netlify.app/usage/) 62 | - ➡️ [**Props**](https://vue3-form-wizard-document.netlify.app/props/) 63 | - ➡️ [**Slots**](https://vue3-form-wizard-document.netlify.app/slots/) 64 | - ➡️ [**Methods**](https://vue3-form-wizard-document.netlify.app/Mmthods/) 65 | - ➡️ [**Scoped-slots**](https://vue3-form-wizard-document.netlify.app/scoped-slots/) 66 | - ➡️ [**Demos**](https://vue3-form-wizard-document.netlify.app/demos/) 67 | 68 | 69 | 70 | ## Until the version is completely stable 71 | - [x] Updated To Vue3 ✅ 72 | - [x] Setup with Vite ✅ 73 | - [x] Add declaration type(Typescript Support)✅ 74 | - [ ] Fix All Issue on vue-form-wizard 🚧 75 | - [ ] Rewrite With Setup Function and ts 🚧 76 | - [ ] Setup New Features🚧 77 | - [x] Setup New Documentation ✅ 78 | 79 | ### This is a cloned package from [vue-form-wizard](https://github.com/BinarCode/vue-form-wizard).Updated to vue 3 with new features and bug fixes 80 | 81 | 82 | #### [Old Documentation](https://binarcode.github.io/vue-form-wizard/#/) -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Vite App 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue3-form-wizard", 3 | "private": false, 4 | "author": "parsa jiravand", 5 | "version": "0.2.4", 6 | "description": "vue3-form-wizard is a vue based component with no external depenendcies which simplifies tab wizard management.", 7 | "license": "MIT", 8 | "repository": "https://github.com/parsajiravand/vue3-form-wizard", 9 | "homepage": "https://github.com/parsajiravand/vue3-form-wizard", 10 | "files": [ 11 | "dist" 12 | ], 13 | "main": "./dist/vue3-form-wizard.umd.js", 14 | "module": "./dist/vue3-form-wizard.es.js", 15 | "exports": { 16 | ".": { 17 | "import": "./dist/vue3-form-wizard.es.js", 18 | "require": "./dist/vue3-form-wizard.umd.js", 19 | "types": "./dist/types/index.d.ts" 20 | }, 21 | "./dist/style.css": "./dist/style.css" 22 | }, 23 | "type": "module", 24 | "scripts": { 25 | "dev": "vite", 26 | "build": "vite build && vue-tsc --emitDeclarationOnly", 27 | "build:source": "mkdirp dist/source && cp -r ./src/**/ ./dist/source/", 28 | "preview": "vite preview" 29 | }, 30 | "keywords": [ 31 | "vue", 32 | "vue3", 33 | "steppers", 34 | "vue-stepper", 35 | "vuejs", 36 | "form", 37 | "wizard", 38 | "tab", 39 | "nuxt", 40 | "vue3-form-wizard", 41 | "vue form wizard", 42 | "vue3 form wizard", 43 | "vue3 wizard", 44 | "vue3 form", 45 | "nuxt3", 46 | "nuxt3 form wizard", 47 | "nuxt3 form", 48 | "nuxt3 wizard", 49 | "nuxt3 vue3 form wizard" 50 | ], 51 | "devDependencies": { 52 | "@vitejs/plugin-vue": "^3.1.0", 53 | "@vitejs/plugin-vue-jsx": "^1.3.10", 54 | "mkdirp": "^1.0.4", 55 | "sass": "^1.50.1", 56 | "sass-loader": "10", 57 | "typescript": "^4.5.4", 58 | "vite": "^3.1.0", 59 | "vite-plugin-banner": "^0.2.0", 60 | "vue": "3.2.25", 61 | "vue-tsc": "^0.34.7", 62 | "vue3-form-wizard": "^0.2.1" 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/parsajiravand/vue3-form-wizard/eae2e8a1421ef44674a7a187440eb1a182497ccb/public/favicon.ico -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 27 | 28 | 46 | 47 | 58 | -------------------------------------------------------------------------------- /src/assets/form-wizard/_buttons.scss: -------------------------------------------------------------------------------- 1 | .vue-form-wizard .wizard-btn, 2 | .vue-form-wizard .navbar .navbar-nav > li > a.wizard-btn { 3 | box-sizing: border-box; 4 | border-width: $border-thick; 5 | background-color: $transparent-bg; 6 | font-size: $font-size-base; 7 | font-weight: $font-weight-bold; 8 | padding: $padding-base-vertical $padding-base-horizontal; 9 | min-width: 140px; 10 | &:hover, 11 | &:focus { 12 | outline: 0 !important; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/assets/form-wizard/_mixins.scss: -------------------------------------------------------------------------------- 1 | @import "mixins/buttons"; 2 | @import "mixins/vendor-prefixes"; 3 | @import "mixins/transparency"; 4 | -------------------------------------------------------------------------------- /src/assets/form-wizard/_navs-pagination.scss: -------------------------------------------------------------------------------- 1 | .vue-form-wizard .wizard-nav-pills { 2 | margin-top:0; 3 | position: relative; 4 | text-align: center; 5 | display:flex; 6 | flex-wrap:wrap; 7 | li,a{ 8 | flex:1; 9 | align-items: center; 10 | flex-wrap:wrap; 11 | flex-grow: 1; 12 | } 13 | a{ 14 | display:flex; 15 | } 16 | > li > a { 17 | display:flex; 18 | flex-direction: column; 19 | padding: 0; 20 | margin: 0 auto; 21 | color: $form-placeholder-color; 22 | position: relative; 23 | top: 3px; 24 | &:hover, 25 | &:focus{ 26 | background-color: transparent; 27 | color: $form-placeholder-color; 28 | outline: 0 !important; 29 | } 30 | &.disabled { 31 | pointer-events: none; 32 | cursor: default; 33 | } 34 | } 35 | 36 | > li.active > a, 37 | > li.active > a:hover, 38 | > li.active > a:focus { 39 | background-color: transparent; 40 | @include transition-font-size(.2s, linear); 41 | 42 | 43 | .wizard-icon{ 44 | color: $white-color; 45 | font-size: 24px; 46 | display:flex; 47 | align-items:center; 48 | justify-content: center; 49 | @include transition(.2s, linear); 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/assets/form-wizard/_variables.scss: -------------------------------------------------------------------------------- 1 | $gray-input-bg: #F3F2EE !default; 2 | $danger-color: #EB5E28 !default; 3 | $white-color: #FFFFFF !default; 4 | 5 | $form-placeholder-color: rgba(0,0,0,.2) !default; 6 | 7 | $card-black-color: #252422 !default; 8 | 9 | $border-thick: 2px !default; 10 | $transparent-bg: transparent !default; 11 | $default-color: #66615B !default; 12 | $default-states-color: darken($default-color,11%) !default; 13 | $fill-font-color: rgba(255, 255, 255, 0.85); 14 | 15 | $fast-transition-time: 150ms !default; 16 | 17 | $danger-states-color: darken($danger-color,11%) !default; 18 | 19 | $font-weight-light: 300 !default; 20 | $font-weight-normal: 400 !default; 21 | $font-weight-bold: 600 !default; 22 | -------------------------------------------------------------------------------- /src/assets/form-wizard/_wizard-card.scss: -------------------------------------------------------------------------------- 1 | @import "mixins/wizard-size"; 2 | @import "variables"; 3 | 4 | .vue-form-wizard { 5 | padding-bottom: 20px; 6 | .is_error { 7 | border-color: $danger-states-color !important; 8 | .icon-container { 9 | background: $danger-states-color !important; 10 | } 11 | } 12 | @include wizard-size('xs', 40px, 16px); 13 | @include wizard-size('sm', 50px, 20px); 14 | @include wizard-size('md', 70px, 24px); 15 | @include wizard-size('lg', 90px, 28px); 16 | 17 | .wizard-icon-circle { 18 | font-size: 18px; 19 | border: 3px solid $gray-input-bg; 20 | border-radius: 50%; 21 | font-weight: $font-weight-bold; 22 | width: 70px; 23 | height: 70px; 24 | background-color: $white-color; 25 | position: relative; 26 | display: flex; 27 | justify-content: center; 28 | align-content: center; 29 | &.square_shape { 30 | border-radius: 0; 31 | } 32 | &.tab_shape { 33 | width: 100%; 34 | min-width: 100px; 35 | height: 40px; 36 | border: none; 37 | background-color: $gray-input-bg; 38 | border-radius: 0; 39 | } 40 | .wizard-icon-container { 41 | display: flex; 42 | justify-content: center; 43 | flex: 1; 44 | border-radius: 50%; 45 | margin: -3px; 46 | &.square_shape { 47 | border-radius: 0; 48 | } 49 | &.tab_shape { 50 | border-radius: 0; 51 | margin: 0; 52 | } 53 | } 54 | .wizard-icon { 55 | display: flex; 56 | align-items: center; 57 | justify-content: center; 58 | } 59 | } 60 | 61 | .wizard-tab-content { 62 | min-height: 100px; 63 | padding: 30px 20px 10px; 64 | } 65 | 66 | .wizard-header { 67 | padding: 15px 15px 15px 15px; 68 | position: relative; 69 | border-radius: 3px 3px 0 0; 70 | text-align: center; 71 | } 72 | 73 | .wizard-title { 74 | color: $card-black-color; 75 | font-weight: $font-weight-light; 76 | margin: 0; 77 | text-align: center; 78 | } 79 | 80 | .category { 81 | font-size: 14px; 82 | font-weight: 400; 83 | color: #9A9A9A; 84 | margin-bottom: 0px; 85 | text-align: center; 86 | } 87 | 88 | .wizard-navigation { 89 | .wizard-progress-with-circle { 90 | position: relative; 91 | top: 40px; 92 | height: 4px; 93 | 94 | .wizard-progress-bar { 95 | box-shadow: none; 96 | -webkit-transition: width .3s ease; 97 | -o-transition: width .3s ease; 98 | transition: width .3s ease; 99 | } 100 | } 101 | } 102 | .clearfix::after { 103 | content: ""; 104 | clear: both; 105 | display: table; 106 | } 107 | .wizard-card-footer { 108 | padding: 0 20px; 109 | .wizard-footer-left { 110 | float: left; 111 | } 112 | .wizard-footer-right { 113 | float: right; 114 | } 115 | } 116 | @media screen and (max-width: 350px) { 117 | .wizard-card-footer { 118 | display:flex; 119 | justify-content: center; 120 | flex-direction: column; 121 | .wizard-footer-left, 122 | .wizard-footer-right { 123 | float: none; 124 | flex:1; 125 | display: flex; 126 | justify-content:center; 127 | } 128 | .wizard-footer-right button{ 129 | margin-top:10px; 130 | } 131 | } 132 | } 133 | 134 | &.vertical { 135 | .wizard-card-footer { 136 | display: block; 137 | } 138 | .wizard-nav-pills { 139 | flex-direction: column; 140 | } 141 | .wizard-navigation { 142 | display: flex; 143 | flex-direction: row; 144 | } 145 | .wizard-card-footer { 146 | padding-top: 30px; 147 | 148 | } 149 | } 150 | } 151 | -------------------------------------------------------------------------------- /src/assets/form-wizard/bs_button.scss: -------------------------------------------------------------------------------- 1 | @import "bs_variables"; 2 | @import "mixins"; 3 | 4 | .vue-form-wizard .wizard-btn { 5 | display: inline-block; 6 | margin-bottom: 0; // For input.btn 7 | font-weight: $btn-font-weight; 8 | text-align: center; 9 | vertical-align: middle; 10 | touch-action: manipulation; 11 | cursor: pointer; 12 | background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 13 | border: 1px solid transparent; 14 | white-space: nowrap; 15 | @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $btn-border-radius-base); 16 | //@include user-select(none); 17 | 18 | &.disabled, 19 | &[disabled], 20 | fieldset[disabled] & { 21 | cursor: $cursor-disabled; 22 | @include opacity(.65); 23 | @include box-shadow(none); 24 | } 25 | 26 | } 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/assets/form-wizard/bs_nav_pills.scss: -------------------------------------------------------------------------------- 1 | @import "bs_variables"; 2 | 3 | .vue-form-wizard *{ 4 | box-sizing: border-box; 5 | } 6 | .vue-form-wizard a{ 7 | text-decoration: none; 8 | } 9 | .vue-form-wizard .wizard-nav { 10 | margin-bottom: 0; 11 | padding-left: 0; // Override default ul/ol 12 | list-style: none; 13 | //@include clearfix; 14 | 15 | > li { 16 | position: relative; 17 | display: block; 18 | 19 | > a { 20 | position: relative; 21 | display: block; 22 | padding: $nav-link-padding; 23 | &:hover, 24 | &:focus { 25 | text-decoration: none; 26 | background-color: $nav-link-hover-bg; 27 | } 28 | } 29 | 30 | // Disabled state sets text to gray and nukes hover/tab effects 31 | &.disabled > a { 32 | color: $nav-disabled-link-color; 33 | 34 | &:hover, 35 | &:focus { 36 | color: $nav-disabled-link-hover-color; 37 | text-decoration: none; 38 | background-color: transparent; 39 | cursor: $cursor-disabled; 40 | } 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/assets/form-wizard/bs_progress_bar.scss: -------------------------------------------------------------------------------- 1 | @import "bs_variables"; 2 | @import "mixins"; 3 | @mixin transition($transition...) { 4 | -webkit-transition: $transition; 5 | -o-transition: $transition; 6 | transition: $transition; 7 | } 8 | 9 | // Bar of progress 10 | .vue-form-wizard .wizard-progress-bar { 11 | float: left; 12 | width: 0%; 13 | height: 100%; 14 | font-size: $font-size-small; 15 | line-height: $line-height-computed; 16 | color: $progress-bar-color; 17 | text-align: center; 18 | background-color: $progress-bar-bg; 19 | @include box-shadow(inset 0 -1px 0 rgba(0,0,0,.15)); 20 | @include transition(width .6s ease); 21 | } 22 | -------------------------------------------------------------------------------- /src/assets/form-wizard/bs_variables.scss: -------------------------------------------------------------------------------- 1 | $bootstrap-sass-asset-helper: false !default; 2 | // 3 | // Variables 4 | // -------------------------------------------------- 5 | 6 | 7 | //== Colors 8 | // 9 | //## Gray and brand colors for use across Bootstrap. 10 | 11 | $gray-base: #000 !default; 12 | $gray-darker: lighten($gray-base, 13.5%) !default; // #222 13 | $gray-dark: lighten($gray-base, 20%) !default; // #333 14 | $gray: lighten($gray-base, 33.5%) !default; // #555 15 | $gray-light: lighten($gray-base, 46.7%) !default; // #777 16 | $gray-lighter: lighten($gray-base, 93.5%) !default; // #eee 17 | 18 | $brand-primary: darken(#428bca, 6.5%) !default; // #337ab7 19 | $brand-success: #5cb85c !default; 20 | $brand-info: #5bc0de !default; 21 | $brand-warning: #f0ad4e !default; 22 | $brand-danger: #d9534f !default; 23 | 24 | 25 | //== Scaffolding 26 | // 27 | //## Settings for some of the most global styles. 28 | 29 | //** Background color for ``. 30 | $body-bg: #fff !default; 31 | //** Global text color on ``. 32 | $text-color: $gray-dark !default; 33 | 34 | //** Global textual link color. 35 | $link-color: $brand-primary !default; 36 | //** Link hover color set via `darken()` function. 37 | $link-hover-color: darken($link-color, 15%) !default; 38 | //** Link hover decoration. 39 | $link-hover-decoration: underline !default; 40 | 41 | 42 | //== Typography 43 | // 44 | //## Font, line-height, and color for body text, headings, and more. 45 | 46 | $font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif !default; 47 | $font-family-serif: Georgia, "Times New Roman", Times, serif !default; 48 | //** Default monospace fonts for ``, ``, and `
`.
 49 | $font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace !default;
 50 | $font-family-base:        $font-family-sans-serif !default;
 51 | 
 52 | $font-size-base:          14px !default;
 53 | $font-size-large:         ceil(($font-size-base * 1.25)) !default; // ~18px
 54 | $font-size-small:         ceil(($font-size-base * 0.85)) !default; // ~12px
 55 | 
 56 | $font-size-h1:            floor(($font-size-base * 2.6)) !default; // ~36px
 57 | $font-size-h2:            floor(($font-size-base * 2.15)) !default; // ~30px
 58 | $font-size-h3:            ceil(($font-size-base * 1.7)) !default; // ~24px
 59 | $font-size-h4:            ceil(($font-size-base * 1.25)) !default; // ~18px
 60 | $font-size-h5:            $font-size-base !default;
 61 | $font-size-h6:            ceil(($font-size-base * 0.85)) !default; // ~12px
 62 | 
 63 | //** Unit-less `line-height` for use in components like buttons.
 64 | $line-height-base:        1.428571429 !default; // 20/14
 65 | //** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
 66 | $line-height-computed:    floor(($font-size-base * $line-height-base)) !default; // ~20px
 67 | 
 68 | //** By default, this inherits from the ``.
 69 | $headings-font-family:    inherit !default;
 70 | $headings-font-weight:    500 !default;
 71 | $headings-line-height:    1.1 !default;
 72 | $headings-color:          inherit !default;
 73 | 
 74 | 
 75 | //== Iconography
 76 | //
 77 | //## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
 78 | 
 79 | //** Load fonts from this directory.
 80 | 
 81 | // [converter] If $bootstrap-sass-asset-helper if used, provide path relative to the assets load path.
 82 | // [converter] This is because some asset helpers, such as Sprockets, do not work with file-relative paths.
 83 | $icon-font-path: if($bootstrap-sass-asset-helper, "bootstrap/", "../fonts/bootstrap/") !default;
 84 | 
 85 | //** File name for all font files.
 86 | $icon-font-name:          "glyphicons-halflings-regular" !default;
 87 | //** Element ID within SVG icon file.
 88 | $icon-font-svg-id:        "glyphicons_halflingsregular" !default;
 89 | 
 90 | 
 91 | //== Components
 92 | //
 93 | //## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
 94 | 
 95 | $padding-base-vertical:     6px !default;
 96 | $padding-base-horizontal:   12px !default;
 97 | 
 98 | $padding-large-vertical:    10px !default;
 99 | $padding-large-horizontal:  16px !default;
100 | 
101 | $padding-small-vertical:    5px !default;
102 | $padding-small-horizontal:  10px !default;
103 | 
104 | $padding-xs-vertical:       1px !default;
105 | $padding-xs-horizontal:     5px !default;
106 | 
107 | $line-height-large:         1.3333333 !default; // extra decimals for Win 8.1 Chrome
108 | $line-height-small:         1.5 !default;
109 | 
110 | $border-radius-base:        4px !default;
111 | $border-radius-large:       6px !default;
112 | $border-radius-small:       3px !default;
113 | 
114 | //** Global color for active items (e.g., navs or dropdowns).
115 | $component-active-color:    #fff !default;
116 | //** Global background color for active items (e.g., navs or dropdowns).
117 | $component-active-bg:       $brand-primary !default;
118 | 
119 | //** Width of the `border` for generating carets that indicate dropdowns.
120 | $caret-width-base:          4px !default;
121 | //** Carets increase slightly in size for larger components.
122 | $caret-width-large:         5px !default;
123 | 
124 | 
125 | //== Tables
126 | //
127 | //## Customizes the `.table` component with basic values, each used across all table variations.
128 | 
129 | //** Padding for ``s and ``s.
130 | $table-cell-padding:            8px !default;
131 | //** Padding for cells in `.table-condensed`.
132 | $table-condensed-cell-padding:  5px !default;
133 | 
134 | //** Default background color used for all tables.
135 | $table-bg:                      transparent !default;
136 | //** Background color used for `.table-striped`.
137 | $table-bg-accent:               #f9f9f9 !default;
138 | //** Background color used for `.table-hover`.
139 | $table-bg-hover:                #f5f5f5 !default;
140 | $table-bg-active:               $table-bg-hover !default;
141 | 
142 | //** Border color for table and cell borders.
143 | $table-border-color:            #ddd !default;
144 | 
145 | 
146 | //== Buttons
147 | //
148 | //## For each of Bootstrap's buttons, define text, background and border color.
149 | 
150 | $btn-font-weight:                normal !default;
151 | 
152 | $btn-default-color:              #333 !default;
153 | $btn-default-bg:                 #fff !default;
154 | $btn-default-border:             #ccc !default;
155 | 
156 | $btn-primary-color:              #fff !default;
157 | $btn-primary-bg:                 $brand-primary !default;
158 | $btn-primary-border:             darken($btn-primary-bg, 5%) !default;
159 | 
160 | $btn-success-color:              #fff !default;
161 | $btn-success-bg:                 $brand-success !default;
162 | $btn-success-border:             darken($btn-success-bg, 5%) !default;
163 | 
164 | $btn-info-color:                 #fff !default;
165 | $btn-info-bg:                    $brand-info !default;
166 | $btn-info-border:                darken($btn-info-bg, 5%) !default;
167 | 
168 | $btn-warning-color:              #fff !default;
169 | $btn-warning-bg:                 $brand-warning !default;
170 | $btn-warning-border:             darken($btn-warning-bg, 5%) !default;
171 | 
172 | $btn-danger-color:               #fff !default;
173 | $btn-danger-bg:                  $brand-danger !default;
174 | $btn-danger-border:              darken($btn-danger-bg, 5%) !default;
175 | 
176 | $btn-link-disabled-color:        $gray-light !default;
177 | 
178 | // Allows for customizing button radius independently from global border radius
179 | $btn-border-radius-base:         $border-radius-base !default;
180 | $btn-border-radius-large:        $border-radius-large !default;
181 | $btn-border-radius-small:        $border-radius-small !default;
182 | 
183 | 
184 | //== Forms
185 | //
186 | //##
187 | 
188 | //** `` background color
189 | $input-bg:                       #fff !default;
190 | //** `` background color
191 | $input-bg-disabled:              $gray-lighter !default;
192 | 
193 | //** Text color for ``s
194 | $input-color:                    $gray !default;
195 | //** `` border color
196 | $input-border:                   #ccc !default;
197 | 
198 | // TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4
199 | //** Default `.form-control` border radius
200 | // This has no effect on ``s in CSS.
201 | $input-border-radius:            $border-radius-base !default;
202 | //** Large `.form-control` border radius
203 | $input-border-radius-large:      $border-radius-large !default;
204 | //** Small `.form-control` border radius
205 | $input-border-radius-small:      $border-radius-small !default;
206 | 
207 | //** Border color for inputs on focus
208 | $input-border-focus:             #66afe9 !default;
209 | 
210 | //** Placeholder text color
211 | $input-color-placeholder:        #999 !default;
212 | 
213 | //** Default `.form-control` height
214 | $input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;
215 | //** Large `.form-control` height
216 | $input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;
217 | //** Small `.form-control` height
218 | $input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;
219 | 
220 | //** `.form-group` margin
221 | $form-group-margin-bottom:       15px !default;
222 | 
223 | $legend-color:                   $gray-dark !default;
224 | $legend-border-color:            #e5e5e5 !default;
225 | 
226 | //** Background color for textual input addons
227 | $input-group-addon-bg:           $gray-lighter !default;
228 | //** Border color for textual input addons
229 | $input-group-addon-border-color: $input-border !default;
230 | 
231 | //** Disabled cursor for form controls and buttons.
232 | $cursor-disabled:                not-allowed !default;
233 | 
234 | 
235 | //== Dropdowns
236 | //
237 | //## Dropdown menu container and contents.
238 | 
239 | //** Background for the dropdown menu.
240 | $dropdown-bg:                    #fff !default;
241 | //** Dropdown menu `border-color`.
242 | $dropdown-border:                rgba(0,0,0,.15) !default;
243 | //** Dropdown menu `border-color` **for IE8**.
244 | $dropdown-fallback-border:       #ccc !default;
245 | //** Divider color for between dropdown items.
246 | $dropdown-divider-bg:            #e5e5e5 !default;
247 | 
248 | //** Dropdown link text color.
249 | $dropdown-link-color:            $gray-dark !default;
250 | //** Hover color for dropdown links.
251 | $dropdown-link-hover-color:      darken($gray-dark, 5%) !default;
252 | //** Hover background for dropdown links.
253 | $dropdown-link-hover-bg:         #f5f5f5 !default;
254 | 
255 | //** Active dropdown menu item text color.
256 | $dropdown-link-active-color:     $component-active-color !default;
257 | //** Active dropdown menu item background color.
258 | $dropdown-link-active-bg:        $component-active-bg !default;
259 | 
260 | //** Disabled dropdown menu item background color.
261 | $dropdown-link-disabled-color:   $gray-light !default;
262 | 
263 | //** Text color for headers within dropdown menus.
264 | $dropdown-header-color:          $gray-light !default;
265 | 
266 | //** Deprecated `$dropdown-caret-color` as of v3.1.0
267 | $dropdown-caret-color:           #000 !default;
268 | 
269 | 
270 | //-- Z-index master list
271 | //
272 | // Warning: Avoid customizing these values. They're used for a bird's eye view
273 | // of components dependent on the z-axis and are designed to all work together.
274 | //
275 | // Note: These variables are not generated into the Customizer.
276 | 
277 | $zindex-navbar:            1000 !default;
278 | $zindex-dropdown:          1000 !default;
279 | $zindex-popover:           1060 !default;
280 | $zindex-tooltip:           1070 !default;
281 | $zindex-navbar-fixed:      1030 !default;
282 | $zindex-modal-background:  1040 !default;
283 | $zindex-modal:             1050 !default;
284 | 
285 | 
286 | //== Media queries breakpoints
287 | //
288 | //## Define the breakpoints at which your layout will change, adapting to different screen sizes.
289 | 
290 | // Extra small screen / phone
291 | //** Deprecated `$screen-xs` as of v3.0.1
292 | $screen-xs:                  480px !default;
293 | //** Deprecated `$screen-xs-min` as of v3.2.0
294 | $screen-xs-min:              $screen-xs !default;
295 | //** Deprecated `$screen-phone` as of v3.0.1
296 | $screen-phone:               $screen-xs-min !default;
297 | 
298 | // Small screen / tablet
299 | //** Deprecated `$screen-sm` as of v3.0.1
300 | $screen-sm:                  768px !default;
301 | $screen-sm-min:              $screen-sm !default;
302 | //** Deprecated `$screen-tablet` as of v3.0.1
303 | $screen-tablet:              $screen-sm-min !default;
304 | 
305 | // Medium screen / desktop
306 | //** Deprecated `$screen-md` as of v3.0.1
307 | $screen-md:                  992px !default;
308 | $screen-md-min:              $screen-md !default;
309 | //** Deprecated `$screen-desktop` as of v3.0.1
310 | $screen-desktop:             $screen-md-min !default;
311 | 
312 | // Large screen / wide desktop
313 | //** Deprecated `$screen-lg` as of v3.0.1
314 | $screen-lg:                  1200px !default;
315 | $screen-lg-min:              $screen-lg !default;
316 | //** Deprecated `$screen-lg-desktop` as of v3.0.1
317 | $screen-lg-desktop:          $screen-lg-min !default;
318 | 
319 | // So media queries don't overlap when required, provide a maximum
320 | $screen-xs-max:              ($screen-sm-min - 1) !default;
321 | $screen-sm-max:              ($screen-md-min - 1) !default;
322 | $screen-md-max:              ($screen-lg-min - 1) !default;
323 | 
324 | 
325 | //== Grid system
326 | //
327 | //## Define your custom responsive grid.
328 | 
329 | //** Number of columns in the grid.
330 | $grid-columns:              12 !default;
331 | //** Padding between columns. Gets divided in half for the left and right.
332 | $grid-gutter-width:         30px !default;
333 | // Navbar collapse
334 | //** Point at which the navbar becomes uncollapsed.
335 | $grid-float-breakpoint:     $screen-sm-min !default;
336 | //** Point at which the navbar begins collapsing.
337 | $grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;
338 | 
339 | 
340 | //== Container sizes
341 | //
342 | //## Define the maximum width of `.container` for different screen sizes.
343 | 
344 | // Small screen / tablet
345 | $container-tablet:             (720px + $grid-gutter-width) !default;
346 | //** For `$screen-sm-min` and up.
347 | $container-sm:                 $container-tablet !default;
348 | 
349 | // Medium screen / desktop
350 | $container-desktop:            (940px + $grid-gutter-width) !default;
351 | //** For `$screen-md-min` and up.
352 | $container-md:                 $container-desktop !default;
353 | 
354 | // Large screen / wide desktop
355 | $container-large-desktop:      (1140px + $grid-gutter-width) !default;
356 | //** For `$screen-lg-min` and up.
357 | $container-lg:                 $container-large-desktop !default;
358 | 
359 | 
360 | //== Navbar
361 | //
362 | //##
363 | 
364 | // Basics of a navbar
365 | $navbar-height:                    50px !default;
366 | $navbar-margin-bottom:             $line-height-computed !default;
367 | $navbar-border-radius:             $border-radius-base !default;
368 | $navbar-padding-horizontal:        math(($grid-gutter-width , 2)) !default;
369 | $navbar-padding-vertical:          math(($navbar-height - $line-height-computed) , 2) !default;
370 | $navbar-collapse-max-height:       340px !default;
371 | 
372 | $navbar-default-color:             #777 !default;
373 | $navbar-default-bg:                #f8f8f8 !default;
374 | $navbar-default-border:            darken($navbar-default-bg, 6.5%) !default;
375 | 
376 | // Navbar links
377 | $navbar-default-link-color:                #777 !default;
378 | $navbar-default-link-hover-color:          #333 !default;
379 | $navbar-default-link-hover-bg:             transparent !default;
380 | $navbar-default-link-active-color:         #555 !default;
381 | $navbar-default-link-active-bg:            darken($navbar-default-bg, 6.5%) !default;
382 | $navbar-default-link-disabled-color:       #ccc !default;
383 | $navbar-default-link-disabled-bg:          transparent !default;
384 | 
385 | // Navbar brand label
386 | $navbar-default-brand-color:               $navbar-default-link-color !default;
387 | $navbar-default-brand-hover-color:         darken($navbar-default-brand-color, 10%) !default;
388 | $navbar-default-brand-hover-bg:            transparent !default;
389 | 
390 | // Navbar toggle
391 | $navbar-default-toggle-hover-bg:           #ddd !default;
392 | $navbar-default-toggle-icon-bar-bg:        #888 !default;
393 | $navbar-default-toggle-border-color:       #ddd !default;
394 | 
395 | 
396 | //=== Inverted navbar
397 | // Reset inverted navbar basics
398 | $navbar-inverse-color:                      lighten($gray-light, 15%) !default;
399 | $navbar-inverse-bg:                         #222 !default;
400 | $navbar-inverse-border:                     darken($navbar-inverse-bg, 10%) !default;
401 | 
402 | // Inverted navbar links
403 | $navbar-inverse-link-color:                 lighten($gray-light, 15%) !default;
404 | $navbar-inverse-link-hover-color:           #fff !default;
405 | $navbar-inverse-link-hover-bg:              transparent !default;
406 | $navbar-inverse-link-active-color:          $navbar-inverse-link-hover-color !default;
407 | $navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 10%) !default;
408 | $navbar-inverse-link-disabled-color:        #444 !default;
409 | $navbar-inverse-link-disabled-bg:           transparent !default;
410 | 
411 | // Inverted navbar brand label
412 | $navbar-inverse-brand-color:                $navbar-inverse-link-color !default;
413 | $navbar-inverse-brand-hover-color:          #fff !default;
414 | $navbar-inverse-brand-hover-bg:             transparent !default;
415 | 
416 | // Inverted navbar toggle
417 | $navbar-inverse-toggle-hover-bg:            #333 !default;
418 | $navbar-inverse-toggle-icon-bar-bg:         #fff !default;
419 | $navbar-inverse-toggle-border-color:        #333 !default;
420 | 
421 | 
422 | //== Navs
423 | //
424 | //##
425 | 
426 | //=== Shared nav styles
427 | $nav-link-padding:                          10px 15px !default;
428 | $nav-link-hover-bg:                         $gray-lighter !default;
429 | 
430 | $nav-disabled-link-color:                   $gray-light !default;
431 | $nav-disabled-link-hover-color:             $gray-light !default;
432 | 
433 | //== Tabs
434 | $nav-tabs-border-color:                     #ddd !default;
435 | 
436 | $nav-tabs-link-hover-border-color:          $gray-lighter !default;
437 | 
438 | $nav-tabs-active-link-hover-bg:             $body-bg !default;
439 | $nav-tabs-active-link-hover-color:          $gray !default;
440 | $nav-tabs-active-link-hover-border-color:   #ddd !default;
441 | 
442 | $nav-tabs-justified-link-border-color:            #ddd !default;
443 | $nav-tabs-justified-active-link-border-color:     $body-bg !default;
444 | 
445 | //== Pills
446 | $nav-pills-border-radius:                   $border-radius-base !default;
447 | $nav-pills-active-link-hover-bg:            $component-active-bg !default;
448 | $nav-pills-active-link-hover-color:         $component-active-color !default;
449 | 
450 | 
451 | //== Pagination
452 | //
453 | //##
454 | 
455 | $pagination-color:                     $link-color !default;
456 | $pagination-bg:                        #fff !default;
457 | $pagination-border:                    #ddd !default;
458 | 
459 | $pagination-hover-color:               $link-hover-color !default;
460 | $pagination-hover-bg:                  $gray-lighter !default;
461 | $pagination-hover-border:              #ddd !default;
462 | 
463 | $pagination-active-color:              #fff !default;
464 | $pagination-active-bg:                 $brand-primary !default;
465 | $pagination-active-border:             $brand-primary !default;
466 | 
467 | $pagination-disabled-color:            $gray-light !default;
468 | $pagination-disabled-bg:               #fff !default;
469 | $pagination-disabled-border:           #ddd !default;
470 | 
471 | 
472 | //== Pager
473 | //
474 | //##
475 | 
476 | $pager-bg:                             $pagination-bg !default;
477 | $pager-border:                         $pagination-border !default;
478 | $pager-border-radius:                  15px !default;
479 | 
480 | $pager-hover-bg:                       $pagination-hover-bg !default;
481 | 
482 | $pager-active-bg:                      $pagination-active-bg !default;
483 | $pager-active-color:                   $pagination-active-color !default;
484 | 
485 | $pager-disabled-color:                 $pagination-disabled-color !default;
486 | 
487 | 
488 | //== Jumbotron
489 | //
490 | //##
491 | 
492 | $jumbotron-padding:              30px !default;
493 | $jumbotron-color:                inherit !default;
494 | $jumbotron-bg:                   $gray-lighter !default;
495 | $jumbotron-heading-color:        inherit !default;
496 | $jumbotron-font-size:            ceil(($font-size-base * 1.5)) !default;
497 | $jumbotron-heading-font-size:    ceil(($font-size-base * 4.5)) !default;
498 | 
499 | 
500 | //== Form states and alerts
501 | //
502 | //## Define colors for form feedback states and, by default, alerts.
503 | 
504 | $state-success-text:             #3c763d !default;
505 | $state-success-bg:               #dff0d8 !default;
506 | $state-success-border:           darken(adjust-hue($state-success-bg, -10), 5%) !default;
507 | 
508 | $state-info-text:                #31708f !default;
509 | $state-info-bg:                  #d9edf7 !default;
510 | $state-info-border:              darken(adjust-hue($state-info-bg, -10), 7%) !default;
511 | 
512 | $state-warning-text:             #8a6d3b !default;
513 | $state-warning-bg:               #fcf8e3 !default;
514 | $state-warning-border:           darken(adjust-hue($state-warning-bg, -10), 5%) !default;
515 | 
516 | $state-danger-text:              #a94442 !default;
517 | $state-danger-bg:                #f2dede !default;
518 | $state-danger-border:            darken(adjust-hue($state-danger-bg, -10), 5%) !default;
519 | 
520 | 
521 | //== Tooltips
522 | //
523 | //##
524 | 
525 | //** Tooltip max width
526 | $tooltip-max-width:           200px !default;
527 | //** Tooltip text color
528 | $tooltip-color:               #fff !default;
529 | //** Tooltip background color
530 | $tooltip-bg:                  #000 !default;
531 | $tooltip-opacity:             .9 !default;
532 | 
533 | //** Tooltip arrow width
534 | $tooltip-arrow-width:         5px !default;
535 | //** Tooltip arrow color
536 | $tooltip-arrow-color:         $tooltip-bg !default;
537 | 
538 | 
539 | //== Popovers
540 | //
541 | //##
542 | 
543 | //** Popover body background color
544 | $popover-bg:                          #fff !default;
545 | //** Popover maximum width
546 | $popover-max-width:                   276px !default;
547 | //** Popover border color
548 | $popover-border-color:                rgba(0,0,0,.2) !default;
549 | //** Popover fallback border color
550 | $popover-fallback-border-color:       #ccc !default;
551 | 
552 | //** Popover title background color
553 | $popover-title-bg:                    darken($popover-bg, 3%) !default;
554 | 
555 | //** Popover arrow width
556 | $popover-arrow-width:                 10px !default;
557 | //** Popover arrow color
558 | $popover-arrow-color:                 $popover-bg !default;
559 | 
560 | //** Popover outer arrow width
561 | $popover-arrow-outer-width:           ($popover-arrow-width + 1) !default;
562 | //** Popover outer arrow color
563 | $popover-arrow-outer-color:           fade_in($popover-border-color, 0.05) !default;
564 | //** Popover outer arrow fallback color
565 | $popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%) !default;
566 | 
567 | 
568 | //== Labels
569 | //
570 | //##
571 | 
572 | //** Default label background color
573 | $label-default-bg:            $gray-light !default;
574 | //** Primary label background color
575 | $label-primary-bg:            $brand-primary !default;
576 | //** Success label background color
577 | $label-success-bg:            $brand-success !default;
578 | //** Info label background color
579 | $label-info-bg:               $brand-info !default;
580 | //** Warning label background color
581 | $label-warning-bg:            $brand-warning !default;
582 | //** Danger label background color
583 | $label-danger-bg:             $brand-danger !default;
584 | 
585 | //** Default label text color
586 | $label-color:                 #fff !default;
587 | //** Default text color of a linked label
588 | $label-link-hover-color:      #fff !default;
589 | 
590 | 
591 | //== Modals
592 | //
593 | //##
594 | 
595 | //** Padding applied to the modal body
596 | $modal-inner-padding:         15px !default;
597 | 
598 | //** Padding applied to the modal title
599 | $modal-title-padding:         15px !default;
600 | //** Modal title line-height
601 | $modal-title-line-height:     $line-height-base !default;
602 | 
603 | //** Background color of modal content area
604 | $modal-content-bg:                             #fff !default;
605 | //** Modal content border color
606 | $modal-content-border-color:                   rgba(0,0,0,.2) !default;
607 | //** Modal content border color **for IE8**
608 | $modal-content-fallback-border-color:          #999 !default;
609 | 
610 | //** Modal backdrop background color
611 | $modal-backdrop-bg:           #000 !default;
612 | //** Modal backdrop opacity
613 | $modal-backdrop-opacity:      .5 !default;
614 | //** Modal header border color
615 | $modal-header-border-color:   #e5e5e5 !default;
616 | //** Modal footer border color
617 | $modal-footer-border-color:   $modal-header-border-color !default;
618 | 
619 | $modal-lg:                    900px !default;
620 | $modal-md:                    600px !default;
621 | $modal-sm:                    300px !default;
622 | 
623 | 
624 | //== Alerts
625 | //
626 | //## Define alert colors, border radius, and padding.
627 | 
628 | $alert-padding:               15px !default;
629 | $alert-border-radius:         $border-radius-base !default;
630 | $alert-link-font-weight:      bold !default;
631 | 
632 | $alert-success-bg:            $state-success-bg !default;
633 | $alert-success-text:          $state-success-text !default;
634 | $alert-success-border:        $state-success-border !default;
635 | 
636 | $alert-info-bg:               $state-info-bg !default;
637 | $alert-info-text:             $state-info-text !default;
638 | $alert-info-border:           $state-info-border !default;
639 | 
640 | $alert-warning-bg:            $state-warning-bg !default;
641 | $alert-warning-text:          $state-warning-text !default;
642 | $alert-warning-border:        $state-warning-border !default;
643 | 
644 | $alert-danger-bg:             $state-danger-bg !default;
645 | $alert-danger-text:           $state-danger-text !default;
646 | $alert-danger-border:         $state-danger-border !default;
647 | 
648 | 
649 | //== Progress bars
650 | //
651 | //##
652 | 
653 | //** Background color of the whole progress component
654 | $progress-bg:                 #f5f5f5 !default;
655 | //** Progress bar text color
656 | $progress-bar-color:          #fff !default;
657 | //** Variable for setting rounded corners on progress bar.
658 | $progress-border-radius:      $border-radius-base !default;
659 | 
660 | //** Default progress bar color
661 | $progress-bar-bg:             $brand-primary !default;
662 | //** Success progress bar color
663 | $progress-bar-success-bg:     $brand-success !default;
664 | //** Warning progress bar color
665 | $progress-bar-warning-bg:     $brand-warning !default;
666 | //** Danger progress bar color
667 | $progress-bar-danger-bg:      $brand-danger !default;
668 | //** Info progress bar color
669 | $progress-bar-info-bg:        $brand-info !default;
670 | 
671 | 
672 | //== List group
673 | //
674 | //##
675 | 
676 | //** Background color on `.list-group-item`
677 | $list-group-bg:                 #fff !default;
678 | //** `.list-group-item` border color
679 | $list-group-border:             #ddd !default;
680 | //** List group border radius
681 | $list-group-border-radius:      $border-radius-base !default;
682 | 
683 | //** Background color of single list items on hover
684 | $list-group-hover-bg:           #f5f5f5 !default;
685 | //** Text color of active list items
686 | $list-group-active-color:       $component-active-color !default;
687 | //** Background color of active list items
688 | $list-group-active-bg:          $component-active-bg !default;
689 | //** Border color of active list elements
690 | $list-group-active-border:      $list-group-active-bg !default;
691 | //** Text color for content within active list items
692 | $list-group-active-text-color:  lighten($list-group-active-bg, 40%) !default;
693 | 
694 | //** Text color of disabled list items
695 | $list-group-disabled-color:      $gray-light !default;
696 | //** Background color of disabled list items
697 | $list-group-disabled-bg:         $gray-lighter !default;
698 | //** Text color for content within disabled list items
699 | $list-group-disabled-text-color: $list-group-disabled-color !default;
700 | 
701 | $list-group-link-color:         #555 !default;
702 | $list-group-link-hover-color:   $list-group-link-color !default;
703 | $list-group-link-heading-color: #333 !default;
704 | 
705 | 
706 | //== Panels
707 | //
708 | //##
709 | 
710 | $panel-bg:                    #fff !default;
711 | $panel-body-padding:          15px !default;
712 | $panel-heading-padding:       10px 15px !default;
713 | $panel-footer-padding:        $panel-heading-padding !default;
714 | $panel-border-radius:         $border-radius-base !default;
715 | 
716 | //** Border color for elements within panels
717 | $panel-inner-border:          #ddd !default;
718 | $panel-footer-bg:             #f5f5f5 !default;
719 | 
720 | $panel-default-text:          $gray-dark !default;
721 | $panel-default-border:        #ddd !default;
722 | $panel-default-heading-bg:    #f5f5f5 !default;
723 | 
724 | $panel-primary-text:          #fff !default;
725 | $panel-primary-border:        $brand-primary !default;
726 | $panel-primary-heading-bg:    $brand-primary !default;
727 | 
728 | $panel-success-text:          $state-success-text !default;
729 | $panel-success-border:        $state-success-border !default;
730 | $panel-success-heading-bg:    $state-success-bg !default;
731 | 
732 | $panel-info-text:             $state-info-text !default;
733 | $panel-info-border:           $state-info-border !default;
734 | $panel-info-heading-bg:       $state-info-bg !default;
735 | 
736 | $panel-warning-text:          $state-warning-text !default;
737 | $panel-warning-border:        $state-warning-border !default;
738 | $panel-warning-heading-bg:    $state-warning-bg !default;
739 | 
740 | $panel-danger-text:           $state-danger-text !default;
741 | $panel-danger-border:         $state-danger-border !default;
742 | $panel-danger-heading-bg:     $state-danger-bg !default;
743 | 
744 | 
745 | //== Thumbnails
746 | //
747 | //##
748 | 
749 | //** Padding around the thumbnail image
750 | $thumbnail-padding:           4px !default;
751 | //** Thumbnail background color
752 | $thumbnail-bg:                $body-bg !default;
753 | //** Thumbnail border color
754 | $thumbnail-border:            #ddd !default;
755 | //** Thumbnail border radius
756 | $thumbnail-border-radius:     $border-radius-base !default;
757 | 
758 | //** Custom text color for thumbnail captions
759 | $thumbnail-caption-color:     $text-color !default;
760 | //** Padding around the thumbnail caption
761 | $thumbnail-caption-padding:   9px !default;
762 | 
763 | 
764 | //== Wells
765 | //
766 | //##
767 | 
768 | $well-bg:                     #f5f5f5 !default;
769 | $well-border:                 darken($well-bg, 7%) !default;
770 | 
771 | 
772 | //== Badges
773 | //
774 | //##
775 | 
776 | $badge-color:                 #fff !default;
777 | //** Linked badge text color on hover
778 | $badge-link-hover-color:      #fff !default;
779 | $badge-bg:                    $gray-light !default;
780 | 
781 | //** Badge text color in active nav link
782 | $badge-active-color:          $link-color !default;
783 | //** Badge background color in active nav link
784 | $badge-active-bg:             #fff !default;
785 | 
786 | $badge-font-weight:           bold !default;
787 | $badge-line-height:           1 !default;
788 | $badge-border-radius:         10px !default;
789 | 
790 | 
791 | //== Breadcrumbs
792 | //
793 | //##
794 | 
795 | $breadcrumb-padding-vertical:   8px !default;
796 | $breadcrumb-padding-horizontal: 15px !default;
797 | //** Breadcrumb background color
798 | $breadcrumb-bg:                 #f5f5f5 !default;
799 | //** Breadcrumb text color
800 | $breadcrumb-color:              #ccc !default;
801 | //** Text color of current page in the breadcrumb
802 | $breadcrumb-active-color:       $gray-light !default;
803 | //** Textual separator for between breadcrumb elements
804 | $breadcrumb-separator:          "/" !default;
805 | 
806 | 
807 | //== Carousel
808 | //
809 | //##
810 | 
811 | $carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6) !default;
812 | 
813 | $carousel-control-color:                      #fff !default;
814 | $carousel-control-width:                      15% !default;
815 | $carousel-control-opacity:                    .5 !default;
816 | $carousel-control-font-size:                  20px !default;
817 | 
818 | $carousel-indicator-active-bg:                #fff !default;
819 | $carousel-indicator-border-color:             #fff !default;
820 | 
821 | $carousel-caption-color:                      #fff !default;
822 | 
823 | 
824 | //== Close
825 | //
826 | //##
827 | 
828 | $close-font-weight:           bold !default;
829 | $close-color:                 #000 !default;
830 | $close-text-shadow:           0 1px 0 #fff !default;
831 | 
832 | 
833 | //== Code
834 | //
835 | //##
836 | 
837 | $code-color:                  #c7254e !default;
838 | $code-bg:                     #f9f2f4 !default;
839 | 
840 | $kbd-color:                   #fff !default;
841 | $kbd-bg:                      #333 !default;
842 | 
843 | $pre-bg:                      #f5f5f5 !default;
844 | $pre-color:                   $gray-dark !default;
845 | $pre-border-color:            #ccc !default;
846 | $pre-scrollable-max-height:   340px !default;
847 | 
848 | 
849 | //== Type
850 | //
851 | //##
852 | 
853 | //** Horizontal offset for forms and lists.
854 | $component-offset-horizontal: 180px !default;
855 | //** Text muted color
856 | $text-muted:                  $gray-light !default;
857 | //** Abbreviations and acronyms border color
858 | $abbr-border-color:           $gray-light !default;
859 | //** Headings small color
860 | $headings-small-color:        $gray-light !default;
861 | //** Blockquote small color
862 | $blockquote-small-color:      $gray-light !default;
863 | //** Blockquote font size
864 | $blockquote-font-size:        ($font-size-base * 1.25) !default;
865 | //** Blockquote border color
866 | $blockquote-border-color:     $gray-lighter !default;
867 | //** Page header border color
868 | $page-header-border-color:    $gray-lighter !default;
869 | //** Width of horizontal description list titles
870 | $dl-horizontal-offset:        $component-offset-horizontal !default;
871 | //** Point at which .dl-horizontal becomes horizontal
872 | $dl-horizontal-breakpoint:    $grid-float-breakpoint !default;
873 | //** Horizontal line color.
874 | $hr-border:                   $gray-lighter !default;
875 | 


--------------------------------------------------------------------------------
/src/assets/form-wizard/mixins/_buttons.scss:
--------------------------------------------------------------------------------
 1 | // Button sizes
 2 | @mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
 3 |   padding: $padding-vertical $padding-horizontal;
 4 |   font-size: $font-size;
 5 |   line-height: $line-height;
 6 |   border-radius: $border-radius;
 7 | }
 8 | 
 9 | // WebKit-style focus
10 | 
11 | @mixin tab-focus() {
12 |   // WebKit-specific. Other browsers will keep their default outline style.
13 |   // (Initially tried to also force default via `outline: initial`,
14 |   // but that seems to erroneously remove the outline in Firefox altogether.)
15 |   outline: 5px auto -webkit-focus-ring-color;
16 |   outline-offset: -2px;
17 | }
18 | 


--------------------------------------------------------------------------------
/src/assets/form-wizard/mixins/_transparency.scss:
--------------------------------------------------------------------------------
1 | @mixin opacity($opacity) {
2 |   opacity: $opacity;
3 |   // IE8 filter
4 |   $opacity-ie: ($opacity * 100);
5 |   filter: #{alpha(opacity=$opacity-ie)};
6 | }
7 | 


--------------------------------------------------------------------------------
/src/assets/form-wizard/mixins/_vendor-prefixes.scss:
--------------------------------------------------------------------------------
 1 | @mixin box-shadow($shadow...) {
 2 |   -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1
 3 |           box-shadow: $shadow;
 4 | }
 5 | 
 6 | @mixin transition($time, $type){
 7 |     -webkit-transition: all $time $type;
 8 |     -moz-transition: all $time $type;
 9 |     -o-transition: all $time $type;
10 |     -ms-transition: all $time $type;
11 |     transition: all $time $type;
12 | }
13 | 
14 | @mixin transition-font-size($time, $type) {
15 |     -webkit-transition: font-size $time $type;
16 |     -moz-transition: font-size $time $type;
17 |     -o-transition: font-size $time $type;
18 |     -ms-transition: font-size $time $type;
19 |     transition: font-size $time $type;
20 | }
21 | 


--------------------------------------------------------------------------------
/src/assets/form-wizard/mixins/_wizard-size.scss:
--------------------------------------------------------------------------------
 1 | @mixin wizard-size($name, $size, $font-size){
 2 |   $computed-font-size: calc($size/2) + 5px;
 3 | 
 4 |   &.#{$name}{
 5 |     .wizard-icon-circle{
 6 |       width: $size;
 7 |       height: $size;
 8 |       font-size: $font-size;
 9 |       &.tab_shape {
10 |         height: $computed-font-size;
11 |       }
12 |     }
13 |     .wizard-nav-pills > li.active > a .wizard-icon {
14 |       font-size: $font-size;
15 |     }
16 |     .wizard-navigation .wizard-progress-with-circle {
17 |       position: relative;
18 |       top: $computed-font-size;
19 |       height: 4px;
20 |     }
21 |   }
22 | }
23 | 


--------------------------------------------------------------------------------
/src/assets/wizard.scss:
--------------------------------------------------------------------------------
 1 | //Bootstrap imports just for general styling
 2 | @import "form-wizard/bs_button";
 3 | @import "form-wizard/bs_nav_pills";
 4 | @import "form-wizard/bs_progress_bar";
 5 | 
 6 | @import "form-wizard/variables";
 7 | @import "form-wizard/mixins";
 8 | //Form wizard related
 9 | @import "form-wizard/buttons";
10 | @import "form-wizard/navs-pagination";
11 | @import "form-wizard/wizard-card";
12 | 


--------------------------------------------------------------------------------
/src/components/FormWizard.vue:
--------------------------------------------------------------------------------
  1 | 
108 | 
527 | 
530 | 


--------------------------------------------------------------------------------
/src/components/TabContent.vue:
--------------------------------------------------------------------------------
 1 | 
12 | 
94 | 


--------------------------------------------------------------------------------
/src/components/WizardButton.vue:
--------------------------------------------------------------------------------
 1 | 
 6 | 
 9 | 
11 | 


--------------------------------------------------------------------------------
/src/components/WizardStep.vue:
--------------------------------------------------------------------------------
  1 | 
 74 | 
136 | 


--------------------------------------------------------------------------------
/src/components/helpers.js:
--------------------------------------------------------------------------------
 1 | export function getFocusedElementId () {
 2 |   return document.activeElement.id
 3 | }
 4 | export function getFocusedTabIndex (tabs = []) {
 5 |   let activeId = getFocusedElementId()
 6 |   let tabIndex = tabs.findIndex(tab => tab.tabId === activeId)
 7 |   return tabIndex
 8 | }
 9 | export function findElementAndFocus (elemId) {
10 |   let elem = document.getElementById(elemId)
11 |   elem.focus()
12 | }
13 | export function isPromise (func) {
14 |   return func.then && typeof func.then === 'function'
15 | }
16 | 


--------------------------------------------------------------------------------
/src/env.d.ts:
--------------------------------------------------------------------------------
1 | /// 
2 | 
3 | declare module '*.vue' {
4 |   import type { DefineComponent } from 'vue'
5 |   // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
6 |   const component: DefineComponent<{}, {}, any>
7 |   export default component
8 | }
9 | 


--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
 1 | import { App } from "vue";
 2 | import FormWizard from "./components/FormWizard.vue";
 3 | import TabContent from "./components/TabContent.vue";
 4 | import WizardButton from "./components/WizardButton.vue";
 5 | import WizardStep from "./components/WizardStep.vue";
 6 | 
 7 | const VueFormWizard = {
 8 |   install(Vue: App) {
 9 |     Vue.component("form-wizard", FormWizard);
10 |     Vue.component("tab-content", TabContent);
11 |     Vue.component("wizard-button", WizardButton);
12 |     Vue.component("wizard-step", WizardStep);
13 |   },
14 | };
15 | // Automatic installation if Vue has been added to the global scope.
16 | /* if (typeof window !== 'undefined' && window.Vue) {
17 |   window.Vue.use(VueFormWizard)
18 | } */
19 | 
20 | export default VueFormWizard;
21 | export { FormWizard, TabContent, WizardButton, WizardStep };
22 | 


--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue'
2 | import App from './App.vue'
3 | const app = createApp(App)
4 | 
5 | app.mount('#app')
6 | 


--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
 1 | {
 2 |   "compilerOptions": {
 3 |     "target": "esnext",
 4 |     "useDefineForClassFields": true,
 5 |     "module": "esnext",
 6 |     "moduleResolution": "node",
 7 |     "strict": false,
 8 |     "jsx": "preserve",
 9 |     "sourceMap": true,
10 |     "resolveJsonModule": true,
11 |     "esModuleInterop": true,
12 |     "lib": ["esnext", "dom"],
13 |     "outDir": "dist/types",
14 |     "declaration": true,
15 |     "allowJs": true
16 |   },
17 |   "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
18 | }
19 | 


--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
 1 | import { defineConfig } from "vite";
 2 | import vue from "@vitejs/plugin-vue";
 3 | import path from "path";
 4 | import banner from "vite-plugin-banner";
 5 | import pkg from "./package.json";
 6 | 
 7 | // https://vitejs.dev/config/
 8 | export default defineConfig({
 9 |   build: {
10 |     lib: {
11 |       banner,
12 |       entry: path.resolve(__dirname, "src/index.ts"),
13 |       name: "Vue3FormWizard",
14 |       fileName: (format) => `vue3-form-wizard.${format}.js`,
15 |     },
16 |     rollupOptions: {
17 |       external: ["vue"],
18 |       output: {
19 |         // Provide global variables to use in the UMD build
20 |         // Add external deps here
21 |         globals: {
22 |           vue: "Vue",
23 |         },
24 |       },
25 |     },
26 |   },
27 |   plugins: [
28 |     vue(),
29 |     banner(`/*
30 |  * ${pkg.name}
31 |  * Creator:${pkg.author}
32 |  * ${pkg.description}
33 |  * v${pkg.version}
34 |  * ${pkg.license} License
35 |  */
36 | `),
37 |   ],
38 | });
39 | 


--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
   1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
   2 | # yarn lockfile v1
   3 | 
   4 | 
   5 | "@ampproject/remapping@^2.1.0":
   6 |   version "2.2.0"
   7 |   dependencies:
   8 |     "@jridgewell/gen-mapping" "^0.1.0"
   9 |     "@jridgewell/trace-mapping" "^0.3.9"
  10 | 
  11 | "@babel/code-frame@^7.18.6":
  12 |   version "7.18.6"
  13 |   dependencies:
  14 |     "@babel/highlight" "^7.18.6"
  15 | 
  16 | "@babel/compat-data@^7.18.8":
  17 |   version "7.18.8"
  18 | 
  19 | "@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.17.9":
  20 |   version "7.18.10"
  21 |   dependencies:
  22 |     "@ampproject/remapping" "^2.1.0"
  23 |     "@babel/code-frame" "^7.18.6"
  24 |     "@babel/generator" "^7.18.10"
  25 |     "@babel/helper-compilation-targets" "^7.18.9"
  26 |     "@babel/helper-module-transforms" "^7.18.9"
  27 |     "@babel/helpers" "^7.18.9"
  28 |     "@babel/parser" "^7.18.10"
  29 |     "@babel/template" "^7.18.10"
  30 |     "@babel/traverse" "^7.18.10"
  31 |     "@babel/types" "^7.18.10"
  32 |     convert-source-map "^1.7.0"
  33 |     debug "^4.1.0"
  34 |     gensync "^1.0.0-beta.2"
  35 |     json5 "^2.2.1"
  36 |     semver "^6.3.0"
  37 | 
  38 | "@babel/generator@^7.18.10":
  39 |   version "7.18.12"
  40 |   dependencies:
  41 |     "@babel/types" "^7.18.10"
  42 |     "@jridgewell/gen-mapping" "^0.3.2"
  43 |     jsesc "^2.5.1"
  44 | 
  45 | "@babel/helper-annotate-as-pure@^7.18.6":
  46 |   version "7.18.6"
  47 |   dependencies:
  48 |     "@babel/types" "^7.18.6"
  49 | 
  50 | "@babel/helper-compilation-targets@^7.18.9":
  51 |   version "7.18.9"
  52 |   dependencies:
  53 |     "@babel/compat-data" "^7.18.8"
  54 |     "@babel/helper-validator-option" "^7.18.6"
  55 |     browserslist "^4.20.2"
  56 |     semver "^6.3.0"
  57 | 
  58 | "@babel/helper-create-class-features-plugin@^7.18.9":
  59 |   version "7.18.9"
  60 |   dependencies:
  61 |     "@babel/helper-annotate-as-pure" "^7.18.6"
  62 |     "@babel/helper-environment-visitor" "^7.18.9"
  63 |     "@babel/helper-function-name" "^7.18.9"
  64 |     "@babel/helper-member-expression-to-functions" "^7.18.9"
  65 |     "@babel/helper-optimise-call-expression" "^7.18.6"
  66 |     "@babel/helper-replace-supers" "^7.18.9"
  67 |     "@babel/helper-split-export-declaration" "^7.18.6"
  68 | 
  69 | "@babel/helper-environment-visitor@^7.18.9":
  70 |   version "7.18.9"
  71 | 
  72 | "@babel/helper-function-name@^7.18.9":
  73 |   version "7.18.9"
  74 |   dependencies:
  75 |     "@babel/template" "^7.18.6"
  76 |     "@babel/types" "^7.18.9"
  77 | 
  78 | "@babel/helper-hoist-variables@^7.18.6":
  79 |   version "7.18.6"
  80 |   dependencies:
  81 |     "@babel/types" "^7.18.6"
  82 | 
  83 | "@babel/helper-member-expression-to-functions@^7.18.9":
  84 |   version "7.18.9"
  85 |   dependencies:
  86 |     "@babel/types" "^7.18.9"
  87 | 
  88 | "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.18.6":
  89 |   version "7.18.6"
  90 |   dependencies:
  91 |     "@babel/types" "^7.18.6"
  92 | 
  93 | "@babel/helper-module-transforms@^7.18.9":
  94 |   version "7.18.9"
  95 |   dependencies:
  96 |     "@babel/helper-environment-visitor" "^7.18.9"
  97 |     "@babel/helper-module-imports" "^7.18.6"
  98 |     "@babel/helper-simple-access" "^7.18.6"
  99 |     "@babel/helper-split-export-declaration" "^7.18.6"
 100 |     "@babel/helper-validator-identifier" "^7.18.6"
 101 |     "@babel/template" "^7.18.6"
 102 |     "@babel/traverse" "^7.18.9"
 103 |     "@babel/types" "^7.18.9"
 104 | 
 105 | "@babel/helper-optimise-call-expression@^7.18.6":
 106 |   version "7.18.6"
 107 |   dependencies:
 108 |     "@babel/types" "^7.18.6"
 109 | 
 110 | "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9":
 111 |   version "7.18.9"
 112 | 
 113 | "@babel/helper-replace-supers@^7.18.9":
 114 |   version "7.18.9"
 115 |   dependencies:
 116 |     "@babel/helper-environment-visitor" "^7.18.9"
 117 |     "@babel/helper-member-expression-to-functions" "^7.18.9"
 118 |     "@babel/helper-optimise-call-expression" "^7.18.6"
 119 |     "@babel/traverse" "^7.18.9"
 120 |     "@babel/types" "^7.18.9"
 121 | 
 122 | "@babel/helper-simple-access@^7.18.6":
 123 |   version "7.18.6"
 124 |   dependencies:
 125 |     "@babel/types" "^7.18.6"
 126 | 
 127 | "@babel/helper-split-export-declaration@^7.18.6":
 128 |   version "7.18.6"
 129 |   dependencies:
 130 |     "@babel/types" "^7.18.6"
 131 | 
 132 | "@babel/helper-string-parser@^7.18.10":
 133 |   version "7.18.10"
 134 | 
 135 | "@babel/helper-validator-identifier@^7.18.6":
 136 |   version "7.18.6"
 137 | 
 138 | "@babel/helper-validator-option@^7.18.6":
 139 |   version "7.18.6"
 140 | 
 141 | "@babel/helpers@^7.18.9":
 142 |   version "7.18.9"
 143 |   dependencies:
 144 |     "@babel/template" "^7.18.6"
 145 |     "@babel/traverse" "^7.18.9"
 146 |     "@babel/types" "^7.18.9"
 147 | 
 148 | "@babel/highlight@^7.18.6":
 149 |   version "7.18.6"
 150 |   dependencies:
 151 |     "@babel/helper-validator-identifier" "^7.18.6"
 152 |     chalk "^2.0.0"
 153 |     js-tokens "^4.0.0"
 154 | 
 155 | "@babel/parser@^7.16.4", "@babel/parser@^7.18.10", "@babel/parser@^7.18.11":
 156 |   version "7.18.11"
 157 | 
 158 | "@babel/plugin-syntax-import-meta@^7.10.4":
 159 |   version "7.10.4"
 160 |   resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz"
 161 |   integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
 162 |   dependencies:
 163 |     "@babel/helper-plugin-utils" "^7.10.4"
 164 | 
 165 | "@babel/plugin-syntax-jsx@^7.0.0":
 166 |   version "7.18.6"
 167 |   dependencies:
 168 |     "@babel/helper-plugin-utils" "^7.18.6"
 169 | 
 170 | "@babel/plugin-syntax-typescript@^7.18.6":
 171 |   version "7.18.6"
 172 |   dependencies:
 173 |     "@babel/helper-plugin-utils" "^7.18.6"
 174 | 
 175 | "@babel/plugin-transform-typescript@^7.16.8":
 176 |   version "7.18.12"
 177 |   dependencies:
 178 |     "@babel/helper-create-class-features-plugin" "^7.18.9"
 179 |     "@babel/helper-plugin-utils" "^7.18.9"
 180 |     "@babel/plugin-syntax-typescript" "^7.18.6"
 181 | 
 182 | "@babel/template@^7.0.0", "@babel/template@^7.18.10", "@babel/template@^7.18.6":
 183 |   version "7.18.10"
 184 |   dependencies:
 185 |     "@babel/code-frame" "^7.18.6"
 186 |     "@babel/parser" "^7.18.10"
 187 |     "@babel/types" "^7.18.10"
 188 | 
 189 | "@babel/traverse@^7.0.0", "@babel/traverse@^7.18.10", "@babel/traverse@^7.18.9":
 190 |   version "7.18.11"
 191 |   dependencies:
 192 |     "@babel/code-frame" "^7.18.6"
 193 |     "@babel/generator" "^7.18.10"
 194 |     "@babel/helper-environment-visitor" "^7.18.9"
 195 |     "@babel/helper-function-name" "^7.18.9"
 196 |     "@babel/helper-hoist-variables" "^7.18.6"
 197 |     "@babel/helper-split-export-declaration" "^7.18.6"
 198 |     "@babel/parser" "^7.18.11"
 199 |     "@babel/types" "^7.18.10"
 200 |     debug "^4.1.0"
 201 |     globals "^11.1.0"
 202 | 
 203 | "@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9":
 204 |   version "7.18.10"
 205 |   dependencies:
 206 |     "@babel/helper-string-parser" "^7.18.10"
 207 |     "@babel/helper-validator-identifier" "^7.18.6"
 208 |     to-fast-properties "^2.0.0"
 209 | 
 210 | "@jridgewell/gen-mapping@^0.1.0":
 211 |   version "0.1.1"
 212 |   dependencies:
 213 |     "@jridgewell/set-array" "^1.0.0"
 214 |     "@jridgewell/sourcemap-codec" "^1.4.10"
 215 | 
 216 | "@jridgewell/gen-mapping@^0.3.0":
 217 |   version "0.3.2"
 218 |   dependencies:
 219 |     "@jridgewell/set-array" "^1.0.1"
 220 |     "@jridgewell/sourcemap-codec" "^1.4.10"
 221 |     "@jridgewell/trace-mapping" "^0.3.9"
 222 | 
 223 | "@jridgewell/gen-mapping@^0.3.2":
 224 |   version "0.3.2"
 225 |   dependencies:
 226 |     "@jridgewell/set-array" "^1.0.1"
 227 |     "@jridgewell/sourcemap-codec" "^1.4.10"
 228 |     "@jridgewell/trace-mapping" "^0.3.9"
 229 | 
 230 | "@jridgewell/resolve-uri@^3.0.3":
 231 |   version "3.1.0"
 232 | 
 233 | "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":
 234 |   version "1.1.2"
 235 | 
 236 | "@jridgewell/source-map@^0.3.2":
 237 |   version "0.3.2"
 238 |   dependencies:
 239 |     "@jridgewell/gen-mapping" "^0.3.0"
 240 |     "@jridgewell/trace-mapping" "^0.3.9"
 241 | 
 242 | "@jridgewell/sourcemap-codec@^1.4.10":
 243 |   version "1.4.14"
 244 | 
 245 | "@jridgewell/trace-mapping@^0.3.7", "@jridgewell/trace-mapping@^0.3.9":
 246 |   version "0.3.15"
 247 |   dependencies:
 248 |     "@jridgewell/resolve-uri" "^3.0.3"
 249 |     "@jridgewell/sourcemap-codec" "^1.4.10"
 250 | 
 251 | "@rollup/pluginutils@^4.2.0":
 252 |   version "4.2.1"
 253 |   resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz"
 254 |   integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==
 255 |   dependencies:
 256 |     estree-walker "^2.0.1"
 257 |     picomatch "^2.2.2"
 258 | 
 259 | "@types/eslint-scope@^3.7.3":
 260 |   version "3.7.4"
 261 |   dependencies:
 262 |     "@types/eslint" "*"
 263 |     "@types/estree" "*"
 264 | 
 265 | "@types/eslint@*":
 266 |   version "8.4.5"
 267 |   dependencies:
 268 |     "@types/estree" "*"
 269 |     "@types/json-schema" "*"
 270 | 
 271 | "@types/estree@*", "@types/estree@^0.0.51":
 272 |   version "0.0.51"
 273 | 
 274 | "@types/json-schema@*", "@types/json-schema@^7.0.8":
 275 |   version "7.0.11"
 276 |   resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz"
 277 |   integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==
 278 | 
 279 | "@types/node@*":
 280 |   version "18.7.2"
 281 | 
 282 | "@vitejs/plugin-vue-jsx@^1.3.10":
 283 |   version "1.3.10"
 284 |   resolved "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-1.3.10.tgz"
 285 |   integrity sha512-Cf5zznh4yNMiEMBfTOztaDVDmK1XXfgxClzOSUVUc8WAmHzogrCUeM8B05ABzuGtg0D1amfng+mUmSIOFGP3Pw==
 286 |   dependencies:
 287 |     "@babel/core" "^7.17.9"
 288 |     "@babel/plugin-syntax-import-meta" "^7.10.4"
 289 |     "@babel/plugin-transform-typescript" "^7.16.8"
 290 |     "@rollup/pluginutils" "^4.2.0"
 291 |     "@vue/babel-plugin-jsx" "^1.1.1"
 292 |     hash-sum "^2.0.0"
 293 | 
 294 | "@vitejs/plugin-vue@^3.1.0":
 295 |   version "3.1.0"
 296 |   resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.1.0.tgz"
 297 |   integrity sha512-fmxtHPjSOEIRg6vHYDaem+97iwCUg/uSIaTzp98lhELt2ISOQuDo2hbkBdXod0g15IhfPMQmAxh4heUks2zvDA==
 298 | 
 299 | "@volar/code-gen@0.34.17":
 300 |   version "0.34.17"
 301 |   dependencies:
 302 |     "@volar/source-map" "0.34.17"
 303 | 
 304 | "@volar/source-map@0.34.17":
 305 |   version "0.34.17"
 306 | 
 307 | "@volar/vue-code-gen@0.34.17":
 308 |   version "0.34.17"
 309 |   dependencies:
 310 |     "@volar/code-gen" "0.34.17"
 311 |     "@volar/source-map" "0.34.17"
 312 |     "@vue/compiler-core" "^3.2.36"
 313 |     "@vue/compiler-dom" "^3.2.36"
 314 |     "@vue/shared" "^3.2.36"
 315 | 
 316 | "@volar/vue-typescript@0.34.17":
 317 |   version "0.34.17"
 318 |   dependencies:
 319 |     "@volar/code-gen" "0.34.17"
 320 |     "@volar/source-map" "0.34.17"
 321 |     "@volar/vue-code-gen" "0.34.17"
 322 |     "@vue/compiler-sfc" "^3.2.36"
 323 |     "@vue/reactivity" "^3.2.36"
 324 | 
 325 | "@vue/babel-helper-vue-transform-on@^1.0.2":
 326 |   version "1.0.2"
 327 |   resolved "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz"
 328 |   integrity sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==
 329 | 
 330 | "@vue/babel-plugin-jsx@^1.1.1":
 331 |   version "1.1.1"
 332 |   resolved "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz"
 333 |   integrity sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==
 334 |   dependencies:
 335 |     "@babel/helper-module-imports" "^7.0.0"
 336 |     "@babel/plugin-syntax-jsx" "^7.0.0"
 337 |     "@babel/template" "^7.0.0"
 338 |     "@babel/traverse" "^7.0.0"
 339 |     "@babel/types" "^7.0.0"
 340 |     "@vue/babel-helper-vue-transform-on" "^1.0.2"
 341 |     camelcase "^6.0.0"
 342 |     html-tags "^3.1.0"
 343 |     svg-tags "^1.0.0"
 344 | 
 345 | "@vue/compiler-core@^3.2.36", "@vue/compiler-core@3.2.37":
 346 |   version "3.2.37"
 347 |   dependencies:
 348 |     "@babel/parser" "^7.16.4"
 349 |     "@vue/shared" "3.2.37"
 350 |     estree-walker "^2.0.2"
 351 |     source-map "^0.6.1"
 352 | 
 353 | "@vue/compiler-core@3.2.25":
 354 |   version "3.2.25"
 355 |   resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.25.tgz"
 356 |   integrity sha512-FlffKezIqztTCTyG0klkYRwhdyL6b1PTTCIerPb4p2R9qQaczccTX5g9ysi9w6tpLQ48a1WiXnFDJhWD7XoqwA==
 357 |   dependencies:
 358 |     "@babel/parser" "^7.16.4"
 359 |     "@vue/shared" "3.2.25"
 360 |     estree-walker "^2.0.2"
 361 |     source-map "^0.6.1"
 362 | 
 363 | "@vue/compiler-dom@^3.2.36":
 364 |   version "3.2.37"
 365 |   dependencies:
 366 |     "@vue/compiler-core" "3.2.37"
 367 |     "@vue/shared" "3.2.37"
 368 | 
 369 | "@vue/compiler-dom@3.2.25":
 370 |   version "3.2.25"
 371 |   resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.25.tgz"
 372 |   integrity sha512-4JrburkRg4VWbc8AKpzKFWbNY4MDXshqjFl53+vINq7zaw3Z7aSqnLv0EkKh8B8ynf/MYsAdygGutyVbEWYxOw==
 373 |   dependencies:
 374 |     "@vue/compiler-core" "3.2.25"
 375 |     "@vue/shared" "3.2.25"
 376 | 
 377 | "@vue/compiler-dom@3.2.37":
 378 |   version "3.2.37"
 379 |   dependencies:
 380 |     "@vue/compiler-core" "3.2.37"
 381 |     "@vue/shared" "3.2.37"
 382 | 
 383 | "@vue/compiler-sfc@^3.2.36":
 384 |   version "3.2.37"
 385 |   dependencies:
 386 |     "@babel/parser" "^7.16.4"
 387 |     "@vue/compiler-core" "3.2.37"
 388 |     "@vue/compiler-dom" "3.2.37"
 389 |     "@vue/compiler-ssr" "3.2.37"
 390 |     "@vue/reactivity-transform" "3.2.37"
 391 |     "@vue/shared" "3.2.37"
 392 |     estree-walker "^2.0.2"
 393 |     magic-string "^0.25.7"
 394 |     postcss "^8.1.10"
 395 |     source-map "^0.6.1"
 396 | 
 397 | "@vue/compiler-sfc@3.2.25":
 398 |   version "3.2.25"
 399 |   resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.25.tgz"
 400 |   integrity sha512-PminuOYIcFI7UZn+mdy2OPbogyAb0IHkVuqwmLDJiSRFhc/QAXQnO9KdS4nez3bQ9XlQmoAveQzcZuekHzdb5w==
 401 |   dependencies:
 402 |     "@babel/parser" "^7.16.4"
 403 |     "@vue/compiler-core" "3.2.25"
 404 |     "@vue/compiler-dom" "3.2.25"
 405 |     "@vue/compiler-ssr" "3.2.25"
 406 |     "@vue/reactivity-transform" "3.2.25"
 407 |     "@vue/shared" "3.2.25"
 408 |     estree-walker "^2.0.2"
 409 |     magic-string "^0.25.7"
 410 |     postcss "^8.1.10"
 411 |     source-map "^0.6.1"
 412 | 
 413 | "@vue/compiler-ssr@3.2.25":
 414 |   version "3.2.25"
 415 |   resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.25.tgz"
 416 |   integrity sha512-+BAl8U5D3JkGR6086PFx1BQQ5km3z9fT88hy/7lzf8i3vEDdPQodadnX2t6tndFjIux05MEKg43DeocOojT0mw==
 417 |   dependencies:
 418 |     "@vue/compiler-dom" "3.2.25"
 419 |     "@vue/shared" "3.2.25"
 420 | 
 421 | "@vue/compiler-ssr@3.2.37":
 422 |   version "3.2.37"
 423 |   dependencies:
 424 |     "@vue/compiler-dom" "3.2.37"
 425 |     "@vue/shared" "3.2.37"
 426 | 
 427 | "@vue/reactivity-transform@3.2.25":
 428 |   version "3.2.25"
 429 |   resolved "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.25.tgz"
 430 |   integrity sha512-fOiW67PUalicMfMr4Sc9l8mUtkN7ZD+G1/zJV8blzQ8GEZSeRcJm11gqve6Ps623ju5YORu7V/Q1gZoOJ9WO4g==
 431 |   dependencies:
 432 |     "@babel/parser" "^7.16.4"
 433 |     "@vue/compiler-core" "3.2.25"
 434 |     "@vue/shared" "3.2.25"
 435 |     estree-walker "^2.0.2"
 436 |     magic-string "^0.25.7"
 437 | 
 438 | "@vue/reactivity-transform@3.2.37":
 439 |   version "3.2.37"
 440 |   dependencies:
 441 |     "@babel/parser" "^7.16.4"
 442 |     "@vue/compiler-core" "3.2.37"
 443 |     "@vue/shared" "3.2.37"
 444 |     estree-walker "^2.0.2"
 445 |     magic-string "^0.25.7"
 446 | 
 447 | "@vue/reactivity@^3.2.36":
 448 |   version "3.2.37"
 449 |   dependencies:
 450 |     "@vue/shared" "3.2.37"
 451 | 
 452 | "@vue/reactivity@3.2.25":
 453 |   version "3.2.25"
 454 |   resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.25.tgz"
 455 |   integrity sha512-Dxc/u/dxoneIDqyfmuwPVBR0G3OQJqe3Dtz4z3NGt+CGj4UuOZQfN5raJPmp6xGYgrtC6PAWoCgHhyrgr1qCtg==
 456 |   dependencies:
 457 |     "@vue/shared" "3.2.25"
 458 | 
 459 | "@vue/runtime-core@3.2.25":
 460 |   version "3.2.25"
 461 |   resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.25.tgz"
 462 |   integrity sha512-2+fo5+lofT4xr8W2rtjyz+AM+UB1U/UNLH6ISFdHWNWuveSWxF+vkCQaATmhp6O3XA7QJAbHoRqIZor20EWSfQ==
 463 |   dependencies:
 464 |     "@vue/reactivity" "3.2.25"
 465 |     "@vue/shared" "3.2.25"
 466 | 
 467 | "@vue/runtime-dom@3.2.25":
 468 |   version "3.2.25"
 469 |   resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.25.tgz"
 470 |   integrity sha512-3gGeyHnygn4yG6bssRKhQIxnE8vgB8FtYUUwoYoA/Pm0vZ+bGPoZax4TbtZD9eW9rvs8CY8boNp4t/sJaPJrRQ==
 471 |   dependencies:
 472 |     "@vue/runtime-core" "3.2.25"
 473 |     "@vue/shared" "3.2.25"
 474 |     csstype "^2.6.8"
 475 | 
 476 | "@vue/server-renderer@3.2.25":
 477 |   version "3.2.25"
 478 |   resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.25.tgz"
 479 |   integrity sha512-qFRmcyeyyhWbnTPn6cbCZ4bjeuPLSkUpFa98p4LEJtFBFbxjGnrHXHOjYxCY3Lznmxe0kMM3qG4t3GnjcXP12w==
 480 |   dependencies:
 481 |     "@vue/compiler-ssr" "3.2.25"
 482 |     "@vue/shared" "3.2.25"
 483 | 
 484 | "@vue/shared@^3.2.36", "@vue/shared@3.2.37":
 485 |   version "3.2.37"
 486 | 
 487 | "@vue/shared@3.2.25":
 488 |   version "3.2.25"
 489 |   resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.2.25.tgz"
 490 |   integrity sha512-DkHJFV2gw9WBRmUCa21eyG0WvlF0l1QFOgTkWj29O4mt2Tv3BSE5PQOKhUruZIym4bBYCqx9ZGtoD1WohDprow==
 491 | 
 492 | "@webassemblyjs/ast@1.11.1":
 493 |   version "1.11.1"
 494 |   dependencies:
 495 |     "@webassemblyjs/helper-numbers" "1.11.1"
 496 |     "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
 497 | 
 498 | "@webassemblyjs/floating-point-hex-parser@1.11.1":
 499 |   version "1.11.1"
 500 | 
 501 | "@webassemblyjs/helper-api-error@1.11.1":
 502 |   version "1.11.1"
 503 | 
 504 | "@webassemblyjs/helper-buffer@1.11.1":
 505 |   version "1.11.1"
 506 | 
 507 | "@webassemblyjs/helper-numbers@1.11.1":
 508 |   version "1.11.1"
 509 |   dependencies:
 510 |     "@webassemblyjs/floating-point-hex-parser" "1.11.1"
 511 |     "@webassemblyjs/helper-api-error" "1.11.1"
 512 |     "@xtuc/long" "4.2.2"
 513 | 
 514 | "@webassemblyjs/helper-wasm-bytecode@1.11.1":
 515 |   version "1.11.1"
 516 | 
 517 | "@webassemblyjs/helper-wasm-section@1.11.1":
 518 |   version "1.11.1"
 519 |   dependencies:
 520 |     "@webassemblyjs/ast" "1.11.1"
 521 |     "@webassemblyjs/helper-buffer" "1.11.1"
 522 |     "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
 523 |     "@webassemblyjs/wasm-gen" "1.11.1"
 524 | 
 525 | "@webassemblyjs/ieee754@1.11.1":
 526 |   version "1.11.1"
 527 |   dependencies:
 528 |     "@xtuc/ieee754" "^1.2.0"
 529 | 
 530 | "@webassemblyjs/leb128@1.11.1":
 531 |   version "1.11.1"
 532 |   dependencies:
 533 |     "@xtuc/long" "4.2.2"
 534 | 
 535 | "@webassemblyjs/utf8@1.11.1":
 536 |   version "1.11.1"
 537 | 
 538 | "@webassemblyjs/wasm-edit@1.11.1":
 539 |   version "1.11.1"
 540 |   dependencies:
 541 |     "@webassemblyjs/ast" "1.11.1"
 542 |     "@webassemblyjs/helper-buffer" "1.11.1"
 543 |     "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
 544 |     "@webassemblyjs/helper-wasm-section" "1.11.1"
 545 |     "@webassemblyjs/wasm-gen" "1.11.1"
 546 |     "@webassemblyjs/wasm-opt" "1.11.1"
 547 |     "@webassemblyjs/wasm-parser" "1.11.1"
 548 |     "@webassemblyjs/wast-printer" "1.11.1"
 549 | 
 550 | "@webassemblyjs/wasm-gen@1.11.1":
 551 |   version "1.11.1"
 552 |   dependencies:
 553 |     "@webassemblyjs/ast" "1.11.1"
 554 |     "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
 555 |     "@webassemblyjs/ieee754" "1.11.1"
 556 |     "@webassemblyjs/leb128" "1.11.1"
 557 |     "@webassemblyjs/utf8" "1.11.1"
 558 | 
 559 | "@webassemblyjs/wasm-opt@1.11.1":
 560 |   version "1.11.1"
 561 |   dependencies:
 562 |     "@webassemblyjs/ast" "1.11.1"
 563 |     "@webassemblyjs/helper-buffer" "1.11.1"
 564 |     "@webassemblyjs/wasm-gen" "1.11.1"
 565 |     "@webassemblyjs/wasm-parser" "1.11.1"
 566 | 
 567 | "@webassemblyjs/wasm-parser@1.11.1":
 568 |   version "1.11.1"
 569 |   dependencies:
 570 |     "@webassemblyjs/ast" "1.11.1"
 571 |     "@webassemblyjs/helper-api-error" "1.11.1"
 572 |     "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
 573 |     "@webassemblyjs/ieee754" "1.11.1"
 574 |     "@webassemblyjs/leb128" "1.11.1"
 575 |     "@webassemblyjs/utf8" "1.11.1"
 576 | 
 577 | "@webassemblyjs/wast-printer@1.11.1":
 578 |   version "1.11.1"
 579 |   dependencies:
 580 |     "@webassemblyjs/ast" "1.11.1"
 581 |     "@xtuc/long" "4.2.2"
 582 | 
 583 | "@xtuc/ieee754@^1.2.0":
 584 |   version "1.2.0"
 585 | 
 586 | "@xtuc/long@4.2.2":
 587 |   version "4.2.2"
 588 | 
 589 | acorn-import-assertions@^1.7.6:
 590 |   version "1.8.0"
 591 | 
 592 | acorn@^8, acorn@^8.5.0, acorn@^8.7.1:
 593 |   version "8.8.0"
 594 | 
 595 | ajv-keywords@^3.5.2:
 596 |   version "3.5.2"
 597 |   resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz"
 598 |   integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
 599 | 
 600 | ajv@^6.12.5, ajv@^6.9.1:
 601 |   version "6.12.6"
 602 |   resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
 603 |   integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
 604 |   dependencies:
 605 |     fast-deep-equal "^3.1.1"
 606 |     fast-json-stable-stringify "^2.0.0"
 607 |     json-schema-traverse "^0.4.1"
 608 |     uri-js "^4.2.2"
 609 | 
 610 | ansi-styles@^3.2.1:
 611 |   version "3.2.1"
 612 |   resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
 613 |   integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
 614 |   dependencies:
 615 |     color-convert "^1.9.0"
 616 | 
 617 | anymatch@~3.1.2:
 618 |   version "3.1.2"
 619 |   resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz"
 620 |   integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
 621 |   dependencies:
 622 |     normalize-path "^3.0.0"
 623 |     picomatch "^2.0.4"
 624 | 
 625 | atob@^2.1.2:
 626 |   version "2.1.2"
 627 | 
 628 | balanced-match@^1.0.0:
 629 |   version "1.0.2"
 630 | 
 631 | big.js@^5.2.2:
 632 |   version "5.2.2"
 633 |   resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz"
 634 |   integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
 635 | 
 636 | binary-extensions@^2.0.0:
 637 |   version "2.2.0"
 638 |   resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
 639 |   integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
 640 | 
 641 | brace-expansion@^1.1.7:
 642 |   version "1.1.11"
 643 |   dependencies:
 644 |     balanced-match "^1.0.0"
 645 |     concat-map "0.0.1"
 646 | 
 647 | braces@~3.0.2:
 648 |   version "3.0.2"
 649 |   resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
 650 |   integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
 651 |   dependencies:
 652 |     fill-range "^7.0.1"
 653 | 
 654 | browserslist@^4.14.5, browserslist@^4.20.2, "browserslist@>= 4.21.0":
 655 |   version "4.21.3"
 656 |   dependencies:
 657 |     caniuse-lite "^1.0.30001370"
 658 |     electron-to-chromium "^1.4.202"
 659 |     node-releases "^2.0.6"
 660 |     update-browserslist-db "^1.0.5"
 661 | 
 662 | buffer-from@^1.0.0:
 663 |   version "1.1.2"
 664 | 
 665 | camelcase@^6.0.0:
 666 |   version "6.3.0"
 667 |   resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz"
 668 |   integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
 669 | 
 670 | caniuse-lite@^1.0.30001370:
 671 |   version "1.0.30001375"
 672 | 
 673 | chalk@^2.0.0:
 674 |   version "2.4.2"
 675 |   resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
 676 |   integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
 677 |   dependencies:
 678 |     ansi-styles "^3.2.1"
 679 |     escape-string-regexp "^1.0.5"
 680 |     supports-color "^5.3.0"
 681 | 
 682 | "chokidar@>=3.0.0 <4.0.0":
 683 |   version "3.5.3"
 684 |   resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz"
 685 |   integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
 686 |   dependencies:
 687 |     anymatch "~3.1.2"
 688 |     braces "~3.0.2"
 689 |     glob-parent "~5.1.2"
 690 |     is-binary-path "~2.1.0"
 691 |     is-glob "~4.0.1"
 692 |     normalize-path "~3.0.0"
 693 |     readdirp "~3.6.0"
 694 |   optionalDependencies:
 695 |     fsevents "~2.3.2"
 696 | 
 697 | chrome-trace-event@^1.0.2:
 698 |   version "1.0.3"
 699 | 
 700 | color-convert@^1.9.0:
 701 |   version "1.9.3"
 702 |   resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
 703 |   integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
 704 |   dependencies:
 705 |     color-name "1.1.3"
 706 | 
 707 | color-name@1.1.3:
 708 |   version "1.1.3"
 709 |   resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
 710 |   integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
 711 | 
 712 | commander@^2.20.0:
 713 |   version "2.20.3"
 714 | 
 715 | concat-map@0.0.1:
 716 |   version "0.0.1"
 717 | 
 718 | convert-source-map@^1.7.0:
 719 |   version "1.8.0"
 720 |   resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz"
 721 |   integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
 722 |   dependencies:
 723 |     safe-buffer "~5.1.1"
 724 | 
 725 | css-parse@~2.0.0:
 726 |   version "2.0.0"
 727 |   dependencies:
 728 |     css "^2.0.0"
 729 | 
 730 | css@^2.0.0:
 731 |   version "2.2.4"
 732 |   dependencies:
 733 |     inherits "^2.0.3"
 734 |     source-map "^0.6.1"
 735 |     source-map-resolve "^0.5.2"
 736 |     urix "^0.1.0"
 737 | 
 738 | csstype@^2.6.8:
 739 |   version "2.6.20"
 740 |   resolved "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz"
 741 |   integrity sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==
 742 | 
 743 | debug@^4.1.0:
 744 |   version "4.3.4"
 745 |   resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
 746 |   integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
 747 |   dependencies:
 748 |     ms "2.1.2"
 749 | 
 750 | debug@~3.1.0:
 751 |   version "3.1.0"
 752 |   dependencies:
 753 |     ms "2.0.0"
 754 | 
 755 | decode-uri-component@^0.2.0:
 756 |   version "0.2.0"
 757 | 
 758 | electron-to-chromium@^1.4.202:
 759 |   version "1.4.217"
 760 | 
 761 | emojis-list@^3.0.0:
 762 |   version "3.0.0"
 763 |   resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz"
 764 |   integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
 765 | 
 766 | enhanced-resolve@^5.10.0:
 767 |   version "5.10.0"
 768 |   dependencies:
 769 |     graceful-fs "^4.2.4"
 770 |     tapable "^2.2.0"
 771 | 
 772 | es-module-lexer@^0.9.0:
 773 |   version "0.9.3"
 774 | 
 775 | esbuild-windows-64@0.15.7:
 776 |   version "0.15.7"
 777 |   resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.7.tgz"
 778 |   integrity sha512-7MI08Ec2sTIDv+zH6StNBKO+2hGUYIT42GmFyW6MBBWWtJhTcQLinKS6ldIN1d52MXIbiJ6nXyCJ+LpL4jBm3Q==
 779 | 
 780 | esbuild@^0.15.6:
 781 |   version "0.15.7"
 782 |   resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.15.7.tgz"
 783 |   integrity sha512-7V8tzllIbAQV1M4QoE52ImKu8hT/NLGlGXkiDsbEU5PS6K8Mn09ZnYoS+dcmHxOS9CRsV4IRAMdT3I67IyUNXw==
 784 |   optionalDependencies:
 785 |     "@esbuild/linux-loong64" "0.15.7"
 786 |     esbuild-android-64 "0.15.7"
 787 |     esbuild-android-arm64 "0.15.7"
 788 |     esbuild-darwin-64 "0.15.7"
 789 |     esbuild-darwin-arm64 "0.15.7"
 790 |     esbuild-freebsd-64 "0.15.7"
 791 |     esbuild-freebsd-arm64 "0.15.7"
 792 |     esbuild-linux-32 "0.15.7"
 793 |     esbuild-linux-64 "0.15.7"
 794 |     esbuild-linux-arm "0.15.7"
 795 |     esbuild-linux-arm64 "0.15.7"
 796 |     esbuild-linux-mips64le "0.15.7"
 797 |     esbuild-linux-ppc64le "0.15.7"
 798 |     esbuild-linux-riscv64 "0.15.7"
 799 |     esbuild-linux-s390x "0.15.7"
 800 |     esbuild-netbsd-64 "0.15.7"
 801 |     esbuild-openbsd-64 "0.15.7"
 802 |     esbuild-sunos-64 "0.15.7"
 803 |     esbuild-windows-32 "0.15.7"
 804 |     esbuild-windows-64 "0.15.7"
 805 |     esbuild-windows-arm64 "0.15.7"
 806 | 
 807 | escalade@^3.1.1:
 808 |   version "3.1.1"
 809 |   resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
 810 |   integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
 811 | 
 812 | escape-string-regexp@^1.0.5:
 813 |   version "1.0.5"
 814 |   resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
 815 |   integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
 816 | 
 817 | eslint-scope@5.1.1:
 818 |   version "5.1.1"
 819 |   dependencies:
 820 |     esrecurse "^4.3.0"
 821 |     estraverse "^4.1.1"
 822 | 
 823 | esrecurse@^4.3.0:
 824 |   version "4.3.0"
 825 |   dependencies:
 826 |     estraverse "^5.2.0"
 827 | 
 828 | estraverse@^4.1.1:
 829 |   version "4.3.0"
 830 | 
 831 | estraverse@^5.2.0:
 832 |   version "5.3.0"
 833 | 
 834 | estree-walker@^2.0.1, estree-walker@^2.0.2:
 835 |   version "2.0.2"
 836 |   resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz"
 837 |   integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
 838 | 
 839 | events@^3.2.0:
 840 |   version "3.3.0"
 841 | 
 842 | fast-deep-equal@^3.1.1:
 843 |   version "3.1.3"
 844 |   resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
 845 |   integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
 846 | 
 847 | fast-json-stable-stringify@^2.0.0:
 848 |   version "2.1.0"
 849 |   resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
 850 |   integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
 851 | 
 852 | fill-range@^7.0.1:
 853 |   version "7.0.1"
 854 |   resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
 855 |   integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
 856 |   dependencies:
 857 |     to-regex-range "^5.0.1"
 858 | 
 859 | fs.realpath@^1.0.0:
 860 |   version "1.0.0"
 861 | 
 862 | function-bind@^1.1.1:
 863 |   version "1.1.1"
 864 |   resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
 865 |   integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
 866 | 
 867 | gensync@^1.0.0-beta.2:
 868 |   version "1.0.0-beta.2"
 869 |   resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
 870 |   integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
 871 | 
 872 | glob-parent@~5.1.2:
 873 |   version "5.1.2"
 874 |   resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
 875 |   integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
 876 |   dependencies:
 877 |     is-glob "^4.0.1"
 878 | 
 879 | glob-to-regexp@^0.4.1:
 880 |   version "0.4.1"
 881 | 
 882 | glob@^7.1.6:
 883 |   version "7.2.3"
 884 |   dependencies:
 885 |     fs.realpath "^1.0.0"
 886 |     inflight "^1.0.4"
 887 |     inherits "2"
 888 |     minimatch "^3.1.1"
 889 |     once "^1.3.0"
 890 |     path-is-absolute "^1.0.0"
 891 | 
 892 | globals@^11.1.0:
 893 |   version "11.12.0"
 894 |   resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
 895 |   integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
 896 | 
 897 | graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9:
 898 |   version "4.2.10"
 899 | 
 900 | has-flag@^3.0.0:
 901 |   version "3.0.0"
 902 |   resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
 903 |   integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
 904 | 
 905 | has-flag@^4.0.0:
 906 |   version "4.0.0"
 907 | 
 908 | has@^1.0.3:
 909 |   version "1.0.3"
 910 |   resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
 911 |   integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
 912 |   dependencies:
 913 |     function-bind "^1.1.1"
 914 | 
 915 | hash-sum@^2.0.0:
 916 |   version "2.0.0"
 917 |   resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz"
 918 |   integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==
 919 | 
 920 | html-tags@^3.1.0:
 921 |   version "3.2.0"
 922 |   resolved "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz"
 923 |   integrity sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==
 924 | 
 925 | immutable@^4.0.0:
 926 |   version "4.1.0"
 927 | 
 928 | inflight@^1.0.4:
 929 |   version "1.0.6"
 930 |   dependencies:
 931 |     once "^1.3.0"
 932 |     wrappy "1"
 933 | 
 934 | inherits@^2.0.3, inherits@2:
 935 |   version "2.0.4"
 936 | 
 937 | is-binary-path@~2.1.0:
 938 |   version "2.1.0"
 939 |   resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"
 940 |   integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
 941 |   dependencies:
 942 |     binary-extensions "^2.0.0"
 943 | 
 944 | is-core-module@^2.9.0:
 945 |   version "2.10.0"
 946 |   dependencies:
 947 |     has "^1.0.3"
 948 | 
 949 | is-extglob@^2.1.1:
 950 |   version "2.1.1"
 951 |   resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
 952 |   integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
 953 | 
 954 | is-glob@^4.0.1, is-glob@~4.0.1:
 955 |   version "4.0.3"
 956 |   resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
 957 |   integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
 958 |   dependencies:
 959 |     is-extglob "^2.1.1"
 960 | 
 961 | is-number@^7.0.0:
 962 |   version "7.0.0"
 963 |   resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
 964 |   integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
 965 | 
 966 | jest-worker@^27.4.5:
 967 |   version "27.5.1"
 968 |   dependencies:
 969 |     "@types/node" "*"
 970 |     merge-stream "^2.0.0"
 971 |     supports-color "^8.0.0"
 972 | 
 973 | js-tokens@^4.0.0:
 974 |   version "4.0.0"
 975 |   resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
 976 |   integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
 977 | 
 978 | jsesc@^2.5.1:
 979 |   version "2.5.2"
 980 |   resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz"
 981 |   integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
 982 | 
 983 | json-parse-even-better-errors@^2.3.1:
 984 |   version "2.3.1"
 985 | 
 986 | json-schema-traverse@^0.4.1:
 987 |   version "0.4.1"
 988 |   resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
 989 |   integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
 990 | 
 991 | json5@^2.1.2, json5@^2.2.1:
 992 |   version "2.2.1"
 993 |   resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz"
 994 |   integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==
 995 | 
 996 | klona@^2.0.4:
 997 |   version "2.0.5"
 998 |   resolved "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz"
 999 |   integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==
1000 | 
1001 | loader-runner@^4.2.0:
1002 |   version "4.3.0"
1003 | 
1004 | loader-utils@^2.0.0:
1005 |   version "2.0.2"
1006 |   resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz"
1007 |   integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==
1008 |   dependencies:
1009 |     big.js "^5.2.2"
1010 |     emojis-list "^3.0.0"
1011 |     json5 "^2.1.2"
1012 | 
1013 | lru-cache@^6.0.0:
1014 |   version "6.0.0"
1015 |   resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"
1016 |   integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
1017 |   dependencies:
1018 |     yallist "^4.0.0"
1019 | 
1020 | magic-string@^0.25.7:
1021 |   version "0.25.9"
1022 |   resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz"
1023 |   integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==
1024 |   dependencies:
1025 |     sourcemap-codec "^1.4.8"
1026 | 
1027 | merge-stream@^2.0.0:
1028 |   version "2.0.0"
1029 | 
1030 | mime-db@1.52.0:
1031 |   version "1.52.0"
1032 | 
1033 | mime-types@^2.1.27:
1034 |   version "2.1.35"
1035 |   dependencies:
1036 |     mime-db "1.52.0"
1037 | 
1038 | minimatch@^3.1.1:
1039 |   version "3.1.2"
1040 |   dependencies:
1041 |     brace-expansion "^1.1.7"
1042 | 
1043 | mkdirp@^1.0.4, mkdirp@~1.0.4:
1044 |   version "1.0.4"
1045 |   resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz"
1046 |   integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
1047 | 
1048 | ms@2.0.0:
1049 |   version "2.0.0"
1050 |   resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
1051 |   integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
1052 | 
1053 | ms@2.1.2:
1054 |   version "2.1.2"
1055 |   resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
1056 |   integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1057 | 
1058 | nanoid@^3.3.4:
1059 |   version "3.3.4"
1060 | 
1061 | neo-async@^2.6.2:
1062 |   version "2.6.2"
1063 |   resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz"
1064 |   integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
1065 | 
1066 | node-releases@^2.0.6:
1067 |   version "2.0.6"
1068 | 
1069 | normalize-path@^3.0.0, normalize-path@~3.0.0:
1070 |   version "3.0.0"
1071 |   resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
1072 |   integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
1073 | 
1074 | once@^1.3.0:
1075 |   version "1.4.0"
1076 |   dependencies:
1077 |     wrappy "1"
1078 | 
1079 | path-is-absolute@^1.0.0:
1080 |   version "1.0.1"
1081 | 
1082 | path-parse@^1.0.7:
1083 |   version "1.0.7"
1084 |   resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
1085 |   integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1086 | 
1087 | picocolors@^1.0.0:
1088 |   version "1.0.0"
1089 |   resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
1090 |   integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
1091 | 
1092 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2:
1093 |   version "2.3.1"
1094 |   resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
1095 |   integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
1096 | 
1097 | postcss@^8.1.10, postcss@^8.4.16:
1098 |   version "8.4.16"
1099 |   dependencies:
1100 |     nanoid "^3.3.4"
1101 |     picocolors "^1.0.0"
1102 |     source-map-js "^1.0.2"
1103 | 
1104 | punycode@^2.1.0:
1105 |   version "2.1.1"
1106 |   resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
1107 |   integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
1108 | 
1109 | randombytes@^2.1.0:
1110 |   version "2.1.0"
1111 |   dependencies:
1112 |     safe-buffer "^5.1.0"
1113 | 
1114 | readdirp@~3.6.0:
1115 |   version "3.6.0"
1116 |   resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
1117 |   integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
1118 |   dependencies:
1119 |     picomatch "^2.2.1"
1120 | 
1121 | resolve-url@^0.2.1:
1122 |   version "0.2.1"
1123 | 
1124 | resolve@^1.22.1:
1125 |   version "1.22.1"
1126 |   dependencies:
1127 |     is-core-module "^2.9.0"
1128 |     path-parse "^1.0.7"
1129 |     supports-preserve-symlinks-flag "^1.0.0"
1130 | 
1131 | rollup@~2.78.0:
1132 |   version "2.78.1"
1133 |   resolved "https://registry.npmjs.org/rollup/-/rollup-2.78.1.tgz"
1134 |   integrity sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==
1135 |   optionalDependencies:
1136 |     fsevents "~2.3.2"
1137 | 
1138 | safe-buffer@^5.1.0, safe-buffer@~5.1.1:
1139 |   version "5.1.2"
1140 |   resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
1141 |   integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1142 | 
1143 | safer-buffer@^2.1.2:
1144 |   version "2.1.2"
1145 | 
1146 | sass-loader@10:
1147 |   version "10.3.1"
1148 |   dependencies:
1149 |     klona "^2.0.4"
1150 |     loader-utils "^2.0.0"
1151 |     neo-async "^2.6.2"
1152 |     schema-utils "^3.0.0"
1153 |     semver "^7.3.2"
1154 | 
1155 | sass@*, sass@^1.3.0, sass@^1.50.1:
1156 |   version "1.54.8"
1157 |   dependencies:
1158 |     chokidar ">=3.0.0 <4.0.0"
1159 |     immutable "^4.0.0"
1160 |     source-map-js ">=0.6.2 <2.0.0"
1161 | 
1162 | sax@~1.2.4:
1163 |   version "1.2.4"
1164 | 
1165 | schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1:
1166 |   version "3.1.1"
1167 |   resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz"
1168 |   integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==
1169 |   dependencies:
1170 |     "@types/json-schema" "^7.0.8"
1171 |     ajv "^6.12.5"
1172 |     ajv-keywords "^3.5.2"
1173 | 
1174 | semver@^6.3.0:
1175 |   version "6.3.0"
1176 |   resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"
1177 |   integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
1178 | 
1179 | semver@^7.3.2:
1180 |   version "7.3.7"
1181 |   resolved "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz"
1182 |   integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==
1183 |   dependencies:
1184 |     lru-cache "^6.0.0"
1185 | 
1186 | serialize-javascript@^6.0.0:
1187 |   version "6.0.0"
1188 |   dependencies:
1189 |     randombytes "^2.1.0"
1190 | 
1191 | source-map-js@^1.0.2, "source-map-js@>=0.6.2 <2.0.0":
1192 |   version "1.0.2"
1193 |   resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz"
1194 |   integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
1195 | 
1196 | source-map-resolve@^0.5.2:
1197 |   version "0.5.3"
1198 |   dependencies:
1199 |     atob "^2.1.2"
1200 |     decode-uri-component "^0.2.0"
1201 |     resolve-url "^0.2.1"
1202 |     source-map-url "^0.4.0"
1203 |     urix "^0.1.0"
1204 | 
1205 | source-map-support@~0.5.20:
1206 |   version "0.5.21"
1207 |   dependencies:
1208 |     buffer-from "^1.0.0"
1209 |     source-map "^0.6.0"
1210 | 
1211 | source-map-url@^0.4.0:
1212 |   version "0.4.1"
1213 | 
1214 | source-map@^0.6.0, source-map@^0.6.1:
1215 |   version "0.6.1"
1216 |   resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
1217 |   integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
1218 | 
1219 | source-map@^0.7.3:
1220 |   version "0.7.4"
1221 | 
1222 | sourcemap-codec@^1.4.8:
1223 |   version "1.4.8"
1224 |   resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz"
1225 |   integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
1226 | 
1227 | stylus@*:
1228 |   version "0.54.8"
1229 |   dependencies:
1230 |     css-parse "~2.0.0"
1231 |     debug "~3.1.0"
1232 |     glob "^7.1.6"
1233 |     mkdirp "~1.0.4"
1234 |     safer-buffer "^2.1.2"
1235 |     sax "~1.2.4"
1236 |     semver "^6.3.0"
1237 |     source-map "^0.7.3"
1238 | 
1239 | supports-color@^5.3.0:
1240 |   version "5.5.0"
1241 |   resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
1242 |   integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1243 |   dependencies:
1244 |     has-flag "^3.0.0"
1245 | 
1246 | supports-color@^8.0.0:
1247 |   version "8.1.1"
1248 |   dependencies:
1249 |     has-flag "^4.0.0"
1250 | 
1251 | supports-preserve-symlinks-flag@^1.0.0:
1252 |   version "1.0.0"
1253 |   resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
1254 |   integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
1255 | 
1256 | svg-tags@^1.0.0:
1257 |   version "1.0.0"
1258 |   resolved "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz"
1259 |   integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=
1260 | 
1261 | tapable@^2.1.1, tapable@^2.2.0:
1262 |   version "2.2.1"
1263 | 
1264 | terser-webpack-plugin@^5.1.3:
1265 |   version "5.3.3"
1266 |   dependencies:
1267 |     "@jridgewell/trace-mapping" "^0.3.7"
1268 |     jest-worker "^27.4.5"
1269 |     schema-utils "^3.1.1"
1270 |     serialize-javascript "^6.0.0"
1271 |     terser "^5.7.2"
1272 | 
1273 | terser@^5.4.0, terser@^5.7.2:
1274 |   version "5.14.2"
1275 |   dependencies:
1276 |     "@jridgewell/source-map" "^0.3.2"
1277 |     acorn "^8.5.0"
1278 |     commander "^2.20.0"
1279 |     source-map-support "~0.5.20"
1280 | 
1281 | to-fast-properties@^2.0.0:
1282 |   version "2.0.0"
1283 |   resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"
1284 |   integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
1285 | 
1286 | to-regex-range@^5.0.1:
1287 |   version "5.0.1"
1288 |   resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
1289 |   integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1290 |   dependencies:
1291 |     is-number "^7.0.0"
1292 | 
1293 | typescript@*, typescript@^4.5.4:
1294 |   version "4.7.4"
1295 | 
1296 | update-browserslist-db@^1.0.5:
1297 |   version "1.0.5"
1298 |   dependencies:
1299 |     escalade "^3.1.1"
1300 |     picocolors "^1.0.0"
1301 | 
1302 | uri-js@^4.2.2:
1303 |   version "4.4.1"
1304 |   resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
1305 |   integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
1306 |   dependencies:
1307 |     punycode "^2.1.0"
1308 | 
1309 | urix@^0.1.0:
1310 |   version "0.1.0"
1311 | 
1312 | vite-plugin-banner@^0.2.0:
1313 |   version "0.2.0"
1314 |   resolved "https://registry.npmjs.org/vite-plugin-banner/-/vite-plugin-banner-0.2.0.tgz"
1315 |   integrity sha512-IBRYVK6v92ihchBYxl6yhT57hr2cRnSX4RX6CJp84vNeWAg/Hht4B5Ywe0jwKA26Kkx/Yx4SGbMp8YLvAqm2pg==
1316 | 
1317 | vite@^3.0.0, vite@^3.1.0:
1318 |   version "3.1.0"
1319 |   resolved "https://registry.npmjs.org/vite/-/vite-3.1.0.tgz"
1320 |   integrity sha512-YBg3dUicDpDWFCGttmvMbVyS9ydjntwEjwXRj2KBFwSB8SxmGcudo1yb8FW5+M/G86aS8x828ujnzUVdsLjs9g==
1321 |   dependencies:
1322 |     esbuild "^0.15.6"
1323 |     postcss "^8.4.16"
1324 |     resolve "^1.22.1"
1325 |     rollup "~2.78.0"
1326 |   optionalDependencies:
1327 |     fsevents "~2.3.2"
1328 | 
1329 | vue-tsc@^0.34.7:
1330 |   version "0.34.17"
1331 |   dependencies:
1332 |     "@volar/vue-typescript" "0.34.17"
1333 | 
1334 | vue@^3.2.25, vue@3.2.25:
1335 |   version "3.2.25"
1336 |   resolved "https://registry.npmjs.org/vue/-/vue-3.2.25.tgz"
1337 |   integrity sha512-jU3t7fyQDHoCWCqhmRrnSmYZvHC35tOJTP704di7HGfq5EcFA1cU/1ZPjUV1eCxJev65Khjyfni+vk9oa+eTtw==
1338 |   dependencies:
1339 |     "@vue/compiler-dom" "3.2.25"
1340 |     "@vue/compiler-sfc" "3.2.25"
1341 |     "@vue/runtime-dom" "3.2.25"
1342 |     "@vue/server-renderer" "3.2.25"
1343 |     "@vue/shared" "3.2.25"
1344 | 
1345 | vue3-form-wizard@^0.2.1:
1346 |   version "0.2.1"
1347 |   resolved "https://registry.npmjs.org/vue3-form-wizard/-/vue3-form-wizard-0.2.1.tgz"
1348 |   integrity sha512-BpTEw5DWH0kNDuBB3aablT2jcH9iPBHxgdQ59Ve06XfaEwhqae47xXx1wRdC04E6CLZxHiTWHh3Xy/oNGGdObA==
1349 | 
1350 | watchpack@^2.4.0:
1351 |   version "2.4.0"
1352 |   dependencies:
1353 |     glob-to-regexp "^0.4.1"
1354 |     graceful-fs "^4.1.2"
1355 | 
1356 | webpack-sources@^3.2.3:
1357 |   version "3.2.3"
1358 | 
1359 | "webpack@^4.36.0 || ^5.0.0", webpack@^5.1.0:
1360 |   version "5.74.0"
1361 |   dependencies:
1362 |     "@types/eslint-scope" "^3.7.3"
1363 |     "@types/estree" "^0.0.51"
1364 |     "@webassemblyjs/ast" "1.11.1"
1365 |     "@webassemblyjs/wasm-edit" "1.11.1"
1366 |     "@webassemblyjs/wasm-parser" "1.11.1"
1367 |     acorn "^8.7.1"
1368 |     acorn-import-assertions "^1.7.6"
1369 |     browserslist "^4.14.5"
1370 |     chrome-trace-event "^1.0.2"
1371 |     enhanced-resolve "^5.10.0"
1372 |     es-module-lexer "^0.9.0"
1373 |     eslint-scope "5.1.1"
1374 |     events "^3.2.0"
1375 |     glob-to-regexp "^0.4.1"
1376 |     graceful-fs "^4.2.9"
1377 |     json-parse-even-better-errors "^2.3.1"
1378 |     loader-runner "^4.2.0"
1379 |     mime-types "^2.1.27"
1380 |     neo-async "^2.6.2"
1381 |     schema-utils "^3.1.0"
1382 |     tapable "^2.1.1"
1383 |     terser-webpack-plugin "^5.1.3"
1384 |     watchpack "^2.4.0"
1385 |     webpack-sources "^3.2.3"
1386 | 
1387 | wrappy@1:
1388 |   version "1.0.2"
1389 | 
1390 | yallist@^4.0.0:
1391 |   version "4.0.0"
1392 |   resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
1393 |   integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
1394 | 


--------------------------------------------------------------------------------