@fishawack/lab-velocity 0.6.4 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_defaults.scss +9 -0
- package/_variables.scss +2 -1
- package/basic/Button.vue +1 -1
- package/components/_alert.scss +5 -0
- package/components/_basic.scss +1 -1
- package/components/_button.scss +6 -3
- package/components/_collapse.scss +25 -0
- package/components/_datepicker.scss +24 -1
- package/components/_icon.scss +9 -3
- package/components/_inputNumber.scss +17 -0
- package/components/_loader.scss +6 -0
- package/components/_pageTitle.scss +2 -2
- package/components/_select.scss +1 -1
- package/components/_sidebar.scss +12 -2
- package/components/_tooltip.scss +1 -0
- package/components/_typography.scss +16 -3
- package/form/DatePicker.vue +6 -1
- package/form/InputNumber.vue +90 -0
- package/form/input.js +1 -1
- package/general.scss +5 -9
- package/index.js +4 -0
- package/layout/Alert.vue +38 -0
- package/layout/Footer.vue +2 -2
- package/layout/Tooltip.vue +36 -0
- package/layout/sideBar.vue +2 -2
- package/package.json +1 -1
package/_defaults.scss
CHANGED
package/_variables.scss
CHANGED
package/basic/Button.vue
CHANGED
package/components/_basic.scss
CHANGED
package/components/_button.scss
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
@import "element-plus/theme-chalk/el-button";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
.vel-button {
|
|
4
|
+
--el-font-size-base:get-ratio(16px);
|
|
5
|
+
}
|
|
4
6
|
.el-button--default {
|
|
5
7
|
border: solid get-ratio(1px) $color5;
|
|
6
8
|
&:hover {
|
|
@@ -17,6 +19,7 @@
|
|
|
17
19
|
.el-button--primary {
|
|
18
20
|
background-color: $color1;
|
|
19
21
|
color: $color0;
|
|
22
|
+
border-width: 0px;
|
|
20
23
|
|
|
21
24
|
&:hover, &.is-loading {
|
|
22
25
|
background-color: #5C5C5C;
|
|
@@ -105,11 +108,11 @@
|
|
|
105
108
|
.el-button--default {
|
|
106
109
|
font-size: get-ratio(16px);
|
|
107
110
|
line-height: get-ratio(24px);
|
|
108
|
-
padding:
|
|
111
|
+
padding: get-ratio(7px) get-ratio(16px);
|
|
109
112
|
}
|
|
110
113
|
|
|
111
114
|
.el-button--large {
|
|
112
|
-
padding:
|
|
115
|
+
padding: get-ratio(15px) get-ratio(24px);
|
|
113
116
|
}
|
|
114
117
|
|
|
115
118
|
.el-button--small {
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
|
|
2
|
+
@import "element-plus/theme-chalk/el-collapse";
|
|
3
|
+
@import "element-plus/theme-chalk/el-collapse-item";
|
|
4
|
+
|
|
5
|
+
.el-collapse-item__header {
|
|
6
|
+
align-items: center;
|
|
7
|
+
--el-collapse-header-font-size:get-ratio(16px);
|
|
8
|
+
.vel-icon {
|
|
9
|
+
vertical-align: middle;
|
|
10
|
+
width: 13px;
|
|
11
|
+
min-width: 13px;
|
|
12
|
+
fill: currentColor;
|
|
13
|
+
margin-right: 0.25rem;
|
|
14
|
+
|
|
15
|
+
svg {
|
|
16
|
+
vertical-align: middle;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.el-collapse {
|
|
22
|
+
--el-collapse-header-bg-color: transparent;
|
|
23
|
+
--el-collapse-content-bg-color: transparent;
|
|
24
|
+
--el-collapse-border-color: transparent;
|
|
25
|
+
}
|
|
@@ -1,8 +1,31 @@
|
|
|
1
1
|
@import "element-plus/theme-chalk/el-date-picker";
|
|
2
2
|
|
|
3
|
-
.vel-datepicker {
|
|
3
|
+
.vel-datepicker {
|
|
4
|
+
// --el-input-height:38px;
|
|
5
|
+
|
|
6
|
+
// &.el-input--large {
|
|
7
|
+
--el-input-height:46px;
|
|
8
|
+
// }
|
|
4
9
|
}
|
|
5
10
|
|
|
6
11
|
.vel-popper {
|
|
7
12
|
border-color: red !important;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.vel-date-picker, .el-date-picker {
|
|
16
|
+
&.has-sidebar {
|
|
17
|
+
width: auto;
|
|
18
|
+
|
|
19
|
+
.el-picker-panel__body-wrapper {
|
|
20
|
+
display: flex;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
.el-picker-panel__sidebar {
|
|
24
|
+
width: auto;
|
|
25
|
+
position: relative;
|
|
26
|
+
}
|
|
27
|
+
.el-picker-panel__body {
|
|
28
|
+
margin-left: 0px;
|
|
29
|
+
position: relative !important;
|
|
30
|
+
}
|
|
8
31
|
}
|
package/components/_icon.scss
CHANGED
|
@@ -2,9 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
.vel-icon {
|
|
4
4
|
|
|
5
|
-
.el-link &, .el-button &, .vel-
|
|
6
|
-
width:
|
|
7
|
-
min-width:
|
|
5
|
+
.el-link &, .el-button &, .vel-basic & {
|
|
6
|
+
width: get-ratio(16px);
|
|
7
|
+
min-width: get-ratio(16px);
|
|
8
|
+
padding-bottom: 0px;
|
|
9
|
+
line-height: 0px;
|
|
10
|
+
}
|
|
11
|
+
.vel-side-bar__button & {
|
|
12
|
+
width: get-ratio(20px);
|
|
13
|
+
min-width: get-ratio(20px);
|
|
8
14
|
padding-bottom: 0px;
|
|
9
15
|
line-height: 0px;
|
|
10
16
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
@import "element-plus/theme-chalk/el-input-number";
|
|
2
|
+
|
|
3
|
+
.vel-input-number {
|
|
4
|
+
display: block;
|
|
5
|
+
font-size: 1rem;
|
|
6
|
+
|
|
7
|
+
.el-input__wrapper {
|
|
8
|
+
// padding: .5 * $spacing $spacing;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.el-input__inner {
|
|
12
|
+
--el-input-inner-height:38px
|
|
13
|
+
}
|
|
14
|
+
.el-input-group__append, .el-input-group__prepend {
|
|
15
|
+
padding: 0 2 * $spacing;
|
|
16
|
+
}
|
|
17
|
+
}
|
package/components/_loader.scss
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
.vel-page-title {
|
|
2
|
-
padding:
|
|
2
|
+
padding: 3 * $spacing 6 * $spacing;
|
|
3
3
|
background-color: $color0;
|
|
4
4
|
border-bottom: .5 * $spacing solid;
|
|
5
5
|
border-image: linear-gradient(90deg, #FF558F 0%, #856DF6 100%) 1;
|
|
6
6
|
box-shadow: .5 * $spacing .5 * $spacing $spacing 0px #00000040;
|
|
7
7
|
margin-bottom: 2.5 * $spacing;
|
|
8
|
-
}
|
|
8
|
+
}
|
package/components/_select.scss
CHANGED
package/components/_sidebar.scss
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
display: flex;
|
|
4
4
|
flex-direction: column;
|
|
5
5
|
box-shadow: 0px $spacing * .5 $spacing * .5 0px hsla(0, 0%, 0%, 0.251);
|
|
6
|
-
min-height:
|
|
6
|
+
min-height: 10vh;
|
|
7
7
|
max-height: 100vh;
|
|
8
8
|
overflow: hidden;
|
|
9
9
|
transition: flex-basis .3s ease-in-out;
|
|
@@ -11,10 +11,12 @@
|
|
|
11
11
|
|
|
12
12
|
position: sticky;
|
|
13
13
|
top: 0vh;
|
|
14
|
+
padding-top: 2 * $spacing;
|
|
15
|
+
|
|
14
16
|
|
|
15
17
|
> div {
|
|
16
18
|
&:first-child {
|
|
17
|
-
flex-grow: .
|
|
19
|
+
flex-grow: .80;
|
|
18
20
|
}
|
|
19
21
|
&:last-child {
|
|
20
22
|
margin-bottom: 5.5vh;
|
|
@@ -23,6 +25,7 @@
|
|
|
23
25
|
|
|
24
26
|
&.active {
|
|
25
27
|
flex-basis: 31.5 * $spacing;
|
|
28
|
+
min-width: 31.5 * $spacing;
|
|
26
29
|
|
|
27
30
|
.vel-side-bar__button {
|
|
28
31
|
transform: rotateY(180deg);
|
|
@@ -40,6 +43,13 @@
|
|
|
40
43
|
}
|
|
41
44
|
}
|
|
42
45
|
|
|
46
|
+
.vel-side-bar__bottom {
|
|
47
|
+
display: flex;
|
|
48
|
+
justify-content: flex-end;
|
|
49
|
+
border-top: solid 1px #E6E6E6;
|
|
50
|
+
padding: $spacing $spacing * 1.5;
|
|
51
|
+
}
|
|
52
|
+
|
|
43
53
|
main {
|
|
44
54
|
overflow: hidden;
|
|
45
55
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "element-plus/theme-chalk/el-tooltip";
|
|
@@ -86,13 +86,13 @@
|
|
|
86
86
|
h1,.h1 {
|
|
87
87
|
font-size: get-ratio(48px);
|
|
88
88
|
line-height: get-ratio(56px);
|
|
89
|
-
font-family: $
|
|
89
|
+
font-family: $primaryFont;
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
h2, .h2 {
|
|
93
93
|
font-size: get-ratio(36px);
|
|
94
94
|
line-height: get-ratio(48px);
|
|
95
|
-
font-family : $
|
|
95
|
+
font-family : $secondaryFont;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
h3, .h3 {
|
|
@@ -119,6 +119,15 @@ h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5 {
|
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
// may be project specific
|
|
122
|
+
|
|
123
|
+
.font-secondary {
|
|
124
|
+
font-family: $secondaryFont;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.font-primary {
|
|
128
|
+
font-family: $primaryFont;
|
|
129
|
+
}
|
|
130
|
+
|
|
122
131
|
.text-10 {
|
|
123
132
|
font-size: get-ratio(10px);
|
|
124
133
|
line-height: get-ratio(16px);
|
|
@@ -131,10 +140,14 @@ h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5 {
|
|
|
131
140
|
font-size: get-ratio(14px);
|
|
132
141
|
line-height: get-ratio(20px);
|
|
133
142
|
}
|
|
143
|
+
.font-16 {
|
|
144
|
+
font-size: get-ratio(16px);
|
|
145
|
+
line-height: get-ratio(24px);
|
|
146
|
+
}
|
|
134
147
|
|
|
135
148
|
.text-60 {
|
|
136
149
|
font-size: get-ratio(60px);
|
|
137
150
|
line-height: get-ratio(68px);
|
|
138
151
|
font-weight: 500;
|
|
139
152
|
font-family : $primaryFont;
|
|
140
|
-
}
|
|
153
|
+
}
|
package/form/DatePicker.vue
CHANGED
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
:disabled-date="disabledDate"
|
|
12
12
|
- :placeholder="placeholder"
|
|
13
13
|
:shortcuts="shortcuts"
|
|
14
|
-
|
|
14
|
+
:size="size"
|
|
15
|
+
class="w-100 vel-datepicker"
|
|
15
16
|
v-model="content"
|
|
16
17
|
@change="handleInput"
|
|
17
18
|
:value-format="valueFormat"
|
|
@@ -56,6 +57,10 @@ export default {
|
|
|
56
57
|
type: Array,
|
|
57
58
|
default: [],
|
|
58
59
|
},
|
|
60
|
+
size: {
|
|
61
|
+
type: String,
|
|
62
|
+
default: "default",
|
|
63
|
+
},
|
|
59
64
|
},
|
|
60
65
|
components: {
|
|
61
66
|
XInput,
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<XInput v-bind="$props">
|
|
3
|
+
<template #label>
|
|
4
|
+
<slot name="label" />
|
|
5
|
+
</template>
|
|
6
|
+
|
|
7
|
+
<el-input-number
|
|
8
|
+
v-bind="{ ...$attrs, class: undefined }"
|
|
9
|
+
:class="[`${baseClass}`]"
|
|
10
|
+
:name="name"
|
|
11
|
+
:id="name"
|
|
12
|
+
:disabled="disabled"
|
|
13
|
+
:min="min"
|
|
14
|
+
:max="max"
|
|
15
|
+
:size="size"
|
|
16
|
+
:precision="precision"
|
|
17
|
+
:step="step"
|
|
18
|
+
:controls="controls"
|
|
19
|
+
:step-strictly="stepStrictly"
|
|
20
|
+
:placeholder="placeholder"
|
|
21
|
+
v-model="content"
|
|
22
|
+
:required="required"
|
|
23
|
+
@input="handleInput"
|
|
24
|
+
>
|
|
25
|
+
|
|
26
|
+
<template #prefix>
|
|
27
|
+
<slot name="prefix" />
|
|
28
|
+
</template>
|
|
29
|
+
<template #suffix>
|
|
30
|
+
<slot name="suffix" />
|
|
31
|
+
</template>
|
|
32
|
+
<template #decrease-icon>
|
|
33
|
+
<slot name="decrease-icon" />
|
|
34
|
+
</template>
|
|
35
|
+
<template #increase-icon>
|
|
36
|
+
<slot name="increase-icon" />
|
|
37
|
+
</template>
|
|
38
|
+
</el-input-number>
|
|
39
|
+
</XInput>
|
|
40
|
+
</template>
|
|
41
|
+
|
|
42
|
+
<script>
|
|
43
|
+
import { ElInputNumber } from "element-plus";
|
|
44
|
+
import input from "./input.js";
|
|
45
|
+
import XInput from "./input.vue";
|
|
46
|
+
|
|
47
|
+
export default {
|
|
48
|
+
mixins: [input],
|
|
49
|
+
props: {
|
|
50
|
+
...input.props,
|
|
51
|
+
baseClass: {
|
|
52
|
+
type: String,
|
|
53
|
+
default: "vel-input-number",
|
|
54
|
+
},
|
|
55
|
+
min: {
|
|
56
|
+
type: Number,
|
|
57
|
+
default: -Infinity,
|
|
58
|
+
},
|
|
59
|
+
max: {
|
|
60
|
+
type: Number,
|
|
61
|
+
default: Infinity,
|
|
62
|
+
},
|
|
63
|
+
precision: {
|
|
64
|
+
type: Number,
|
|
65
|
+
default: null,
|
|
66
|
+
},
|
|
67
|
+
step: {
|
|
68
|
+
type: Number,
|
|
69
|
+
default: 1,
|
|
70
|
+
},
|
|
71
|
+
stepStrictly: {
|
|
72
|
+
type: Boolean,
|
|
73
|
+
default: true,
|
|
74
|
+
},
|
|
75
|
+
size: {
|
|
76
|
+
type: String,
|
|
77
|
+
default: "default",
|
|
78
|
+
},
|
|
79
|
+
controls: {
|
|
80
|
+
type: Boolean,
|
|
81
|
+
default: true,
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
|
|
85
|
+
components: {
|
|
86
|
+
XInput,
|
|
87
|
+
ElInputNumber,
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
</script>
|
package/form/input.js
CHANGED
package/general.scss
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
@import "./components/_cascader.scss";
|
|
15
15
|
@import "./components/_wysiwyg.scss";
|
|
16
16
|
@import "./components/_upload.scss";
|
|
17
|
+
@import "./components/_inputNumber.scss";
|
|
17
18
|
|
|
18
19
|
@import "./components/_breadcrumbs.scss";
|
|
19
20
|
@import "./components/_sidebar.scss";
|
|
@@ -23,14 +24,9 @@
|
|
|
23
24
|
@import "./components/_header.scss";
|
|
24
25
|
@import "./components/_pageTitle.scss";
|
|
25
26
|
@import "./components/_form.scss";
|
|
27
|
+
@import "./components/_alert.scss";
|
|
28
|
+
@import "./components/_collapse.scss";
|
|
29
|
+
@import "./components/_tooltip.scss";
|
|
26
30
|
|
|
27
31
|
|
|
28
|
-
@import "./_base.scss";
|
|
29
|
-
|
|
30
|
-
body {
|
|
31
|
-
font-family: $primaryFont, sans-serif;
|
|
32
|
-
font-size: get-ratio(16px);
|
|
33
|
-
line-height: 1.5;
|
|
34
|
-
color: $color1;
|
|
35
|
-
background-color: $color3;
|
|
36
|
-
}
|
|
32
|
+
@import "./_base.scss";
|
package/index.js
CHANGED
|
@@ -11,11 +11,15 @@ export { default as Select } from "./form/Select.vue";
|
|
|
11
11
|
export { default as Switch } from "./form/Switch.vue";
|
|
12
12
|
export { default as Wysiwyg } from "./form/Wysiwyg.vue";
|
|
13
13
|
export { default as Upload } from "./form/Upload.vue";
|
|
14
|
+
export { default as InputNumber } from "./form/InputNumber.vue";
|
|
14
15
|
|
|
15
16
|
export { default as SideBar } from "./layout/sideBar.vue";
|
|
17
|
+
export { default as Tooltip } from "./layout/Tooltip.vue";
|
|
16
18
|
export { default as Footer } from "./layout/Footer.vue";
|
|
17
19
|
export { default as Header } from "./layout/Header.vue";
|
|
18
20
|
export { default as PageTitle } from "./layout/pageTitle.vue";
|
|
21
|
+
export { default as Alert } from "./layout/Alert.vue";
|
|
22
|
+
export { default as Tooltip } from "./layout/Tooltip.vue";
|
|
19
23
|
export { default as Menu } from "./navigation/Menu.vue";
|
|
20
24
|
export { default as MenuItem } from "./navigation/MenuItem.vue";
|
|
21
25
|
export { default as MenuItemGroup } from "./navigation/MenuItemGroup.vue";
|
package/layout/Alert.vue
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<el-alert
|
|
3
|
+
class="mb-4 vel-alert"
|
|
4
|
+
:effect="effect"
|
|
5
|
+
:title="title"
|
|
6
|
+
:type="type"
|
|
7
|
+
:show-icon="showIcon"
|
|
8
|
+
/>
|
|
9
|
+
</template>
|
|
10
|
+
|
|
11
|
+
<script>
|
|
12
|
+
import { ElAlert } from "element-plus";
|
|
13
|
+
export default {
|
|
14
|
+
name: "VPageTitle",
|
|
15
|
+
|
|
16
|
+
props: {
|
|
17
|
+
effect: {
|
|
18
|
+
type:String,
|
|
19
|
+
default:'dark'
|
|
20
|
+
},
|
|
21
|
+
title: {
|
|
22
|
+
type:String
|
|
23
|
+
},
|
|
24
|
+
type: {
|
|
25
|
+
type:String,
|
|
26
|
+
default:'error'
|
|
27
|
+
},
|
|
28
|
+
showIcon: {
|
|
29
|
+
type:Boolean,
|
|
30
|
+
default:true,
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
|
|
34
|
+
components: {
|
|
35
|
+
ElAlert,
|
|
36
|
+
},
|
|
37
|
+
}
|
|
38
|
+
</script>
|
package/layout/Footer.vue
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
</div>
|
|
8
8
|
<div class="vel-footer__bottom">
|
|
9
9
|
<div class="vel-footer__bottom__links">
|
|
10
|
-
<p class="color-0">©
|
|
10
|
+
<p class="color-0">©2025 Avalere Health.</p>
|
|
11
11
|
<el-link underline class="color-0 ml" href="https://avalerehealth.com/privacy-policy/" target="_blank">Privacy Policy</el-link>
|
|
12
|
-
<el-link underline class="color-0 ml" href="https://avalerehealth.com/
|
|
12
|
+
<el-link underline class="color-0 ml" href="https://avalerehealth.com/corporate-policies/" target="_blank">Corporate policies and compliance</el-link>
|
|
13
13
|
</div>
|
|
14
14
|
<div class="vel-footer__bottom__end">
|
|
15
15
|
<p class="color-0">Have a question?</p><el-link underline class="color-0 ml" :href="contact">Contact our Support Team</el-link>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<el-tooltip
|
|
3
|
+
class="vel-tooltip"
|
|
4
|
+
:trigger="trigger"
|
|
5
|
+
:placement="placement"
|
|
6
|
+
>
|
|
7
|
+
<template #content><slot name="content"></slot></template>
|
|
8
|
+
<slot/>
|
|
9
|
+
</el-tooltip>
|
|
10
|
+
</template>
|
|
11
|
+
|
|
12
|
+
<script>
|
|
13
|
+
import { ElTooltip } from "element-plus";
|
|
14
|
+
export default {
|
|
15
|
+
name: "Tooltip",
|
|
16
|
+
|
|
17
|
+
props: {
|
|
18
|
+
width: {
|
|
19
|
+
type:Number,
|
|
20
|
+
default:100
|
|
21
|
+
},
|
|
22
|
+
trigger: {
|
|
23
|
+
type:String,
|
|
24
|
+
default:'hover'
|
|
25
|
+
},
|
|
26
|
+
placement: {
|
|
27
|
+
type:String,
|
|
28
|
+
default:'top'
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
|
|
32
|
+
components: {
|
|
33
|
+
ElTooltip,
|
|
34
|
+
},
|
|
35
|
+
}
|
|
36
|
+
</script>
|
package/layout/sideBar.vue
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<slot name="navigation" />
|
|
5
5
|
</div>
|
|
6
6
|
|
|
7
|
-
<div class="
|
|
8
|
-
<button class="vel-side-bar__button
|
|
7
|
+
<div class="vel-side-bar__bottom">
|
|
8
|
+
<button class="vel-side-bar__button" @click="active = !active">
|
|
9
9
|
<slot name="expand">
|
|
10
10
|
>
|
|
11
11
|
</slot>
|