cja-phoenix 0.7.13 → 0.7.15
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/dist/cja-phoenix.es.js +3461 -3704
- package/dist/style.css +1 -1
- package/dist/types/components/forms/CurrencyInput.vue.d.ts +1 -2
- package/dist/types/components/forms/SliderInput.vue.d.ts +63 -0
- package/dist/types/components/index.d.ts +3 -1
- package/package.json +1 -2
- package/src/assets/iconia/demo.html +15 -29
- package/src/assets/iconia/fonts/CGG-icomoon.eot +0 -0
- package/src/assets/iconia/fonts/CGG-icomoon.svg +1 -2
- package/src/assets/iconia/fonts/CGG-icomoon.ttf +0 -0
- package/src/assets/iconia/fonts/CGG-icomoon.woff +0 -0
- package/src/assets/iconia/selection.json +1 -1
- package/src/assets/iconia/style.css +8 -11
- package/src/assets/iconia/style.scss +10 -15
- package/src/assets/iconia/variables.scss +1 -2
- package/src/assets/variables/colors.scss +36 -0
- package/src/components/forms/CurrencyInput.vue +44 -29
- package/src/components/forms/SliderInput.vue +176 -0
- package/src/components/forms/TextInput.vue +20 -11
- package/src/components/index.ts +4 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
@font-face {
|
|
2
2
|
font-family: 'CGG-icomoon';
|
|
3
|
-
src: url('fonts/CGG-icomoon.eot?
|
|
4
|
-
src: url('fonts/CGG-icomoon.eot?
|
|
5
|
-
url('fonts/CGG-icomoon.ttf?
|
|
6
|
-
url('fonts/CGG-icomoon.woff?
|
|
7
|
-
url('fonts/CGG-icomoon.svg?
|
|
3
|
+
src: url('fonts/CGG-icomoon.eot?o80s4a');
|
|
4
|
+
src: url('fonts/CGG-icomoon.eot?o80s4a#iefix') format('embedded-opentype'),
|
|
5
|
+
url('fonts/CGG-icomoon.ttf?o80s4a') format('truetype'),
|
|
6
|
+
url('fonts/CGG-icomoon.woff?o80s4a') format('woff'),
|
|
7
|
+
url('fonts/CGG-icomoon.svg?o80s4a#CGG-icomoon') format('svg');
|
|
8
8
|
font-weight: normal;
|
|
9
9
|
font-style: normal;
|
|
10
10
|
font-display: block;
|
|
@@ -25,6 +25,9 @@
|
|
|
25
25
|
-moz-osx-font-smoothing: grayscale;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
+
.m-cgg-icon--home:before {
|
|
29
|
+
content: "\ea2b";
|
|
30
|
+
}
|
|
28
31
|
.m-cgg-icon--categories:before {
|
|
29
32
|
content: "\ea39";
|
|
30
33
|
}
|
|
@@ -70,9 +73,6 @@
|
|
|
70
73
|
.m-cgg-icon--affiliates-dashboard:before {
|
|
71
74
|
content: "\ea2a";
|
|
72
75
|
}
|
|
73
|
-
.m-cgg-icon--affiliates-home:before {
|
|
74
|
-
content: "\ea2b";
|
|
75
|
-
}
|
|
76
76
|
.m-cgg-icon--affiliates-settings:before {
|
|
77
77
|
content: "\ea2c";
|
|
78
78
|
}
|
|
@@ -459,9 +459,6 @@
|
|
|
459
459
|
.m-cgg-icon--arrow-right:before {
|
|
460
460
|
content: "\e604";
|
|
461
461
|
}
|
|
462
|
-
.m-cgg-icon--home:before {
|
|
463
|
-
content: "\e605";
|
|
464
|
-
}
|
|
465
462
|
.m-cgg-icon--cross:before {
|
|
466
463
|
content: "\e606";
|
|
467
464
|
}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
@font-face {
|
|
4
4
|
font-family: '#{$icomoon-font-family}';
|
|
5
|
-
src: url('#{$icomoon-font-path}/#{$icomoon-font-family}.eot?
|
|
6
|
-
src: url('#{$icomoon-font-path}/#{$icomoon-font-family}.eot?
|
|
7
|
-
url('#{$icomoon-font-path}/#{$icomoon-font-family}.ttf?
|
|
8
|
-
url('#{$icomoon-font-path}/#{$icomoon-font-family}.woff?
|
|
9
|
-
url('#{$icomoon-font-path}/#{$icomoon-font-family}.svg?
|
|
5
|
+
src: url('#{$icomoon-font-path}/#{$icomoon-font-family}.eot?o80s4a');
|
|
6
|
+
src: url('#{$icomoon-font-path}/#{$icomoon-font-family}.eot?o80s4a#iefix') format('embedded-opentype'),
|
|
7
|
+
url('#{$icomoon-font-path}/#{$icomoon-font-family}.ttf?o80s4a') format('truetype'),
|
|
8
|
+
url('#{$icomoon-font-path}/#{$icomoon-font-family}.woff?o80s4a') format('woff'),
|
|
9
|
+
url('#{$icomoon-font-path}/#{$icomoon-font-family}.svg?o80s4a##{$icomoon-font-family}') format('svg');
|
|
10
10
|
font-weight: normal;
|
|
11
11
|
font-style: normal;
|
|
12
12
|
font-display: block;
|
|
@@ -27,6 +27,11 @@
|
|
|
27
27
|
-moz-osx-font-smoothing: grayscale;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
.m-cgg-icon--home {
|
|
31
|
+
&:before {
|
|
32
|
+
content: $m-cgg-icon--home;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
30
35
|
.m-cgg-icon--categories {
|
|
31
36
|
&:before {
|
|
32
37
|
content: $m-cgg-icon--categories;
|
|
@@ -102,11 +107,6 @@
|
|
|
102
107
|
content: $m-cgg-icon--affiliates-dashboard;
|
|
103
108
|
}
|
|
104
109
|
}
|
|
105
|
-
.m-cgg-icon--affiliates-home {
|
|
106
|
-
&:before {
|
|
107
|
-
content: $m-cgg-icon--affiliates-home;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
110
|
.m-cgg-icon--affiliates-settings {
|
|
111
111
|
&:before {
|
|
112
112
|
content: $m-cgg-icon--affiliates-settings;
|
|
@@ -743,11 +743,6 @@
|
|
|
743
743
|
content: $m-cgg-icon--arrow-right;
|
|
744
744
|
}
|
|
745
745
|
}
|
|
746
|
-
.m-cgg-icon--home {
|
|
747
|
-
&:before {
|
|
748
|
-
content: $m-cgg-icon--home;
|
|
749
|
-
}
|
|
750
|
-
}
|
|
751
746
|
.m-cgg-icon--cross {
|
|
752
747
|
&:before {
|
|
753
748
|
content: $m-cgg-icon--cross;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
$icomoon-font-family: "CGG-icomoon" !default;
|
|
2
2
|
$icomoon-font-path: "fonts" !default;
|
|
3
3
|
|
|
4
|
+
$m-cgg-icon--home: "\ea2b";
|
|
4
5
|
$m-cgg-icon--categories: "\ea39";
|
|
5
6
|
$m-cgg-icon--facebook-2: "\ea33";
|
|
6
7
|
$m-cgg-icon--linkedin-2: "\ea34";
|
|
@@ -16,7 +17,6 @@ $m-cgg-icon--macro-step-results: "\ea2f";
|
|
|
16
17
|
$m-cgg-icon--macro-step-funnel: "\ea30";
|
|
17
18
|
$m-cgg-icon--affiliates-add: "\e900";
|
|
18
19
|
$m-cgg-icon--affiliates-dashboard: "\ea2a";
|
|
19
|
-
$m-cgg-icon--affiliates-home: "\ea2b";
|
|
20
20
|
$m-cgg-icon--affiliates-settings: "\ea2c";
|
|
21
21
|
$m-cgg-icon--tiktok: "\ea27";
|
|
22
22
|
$m-cgg-icon--list-mode: "\ea22";
|
|
@@ -142,7 +142,6 @@ $m-cgg-icon--arrow-up: "\e601";
|
|
|
142
142
|
$m-cgg-icon--arrow-left: "\e602";
|
|
143
143
|
$m-cgg-icon--arrow-down: "\e603";
|
|
144
144
|
$m-cgg-icon--arrow-right: "\e604";
|
|
145
|
-
$m-cgg-icon--home: "\e605";
|
|
146
145
|
$m-cgg-icon--cross: "\e606";
|
|
147
146
|
$m-cgg-icon--signal: "\e607";
|
|
148
147
|
$m-cgg-icon--gift: "\e608";
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
|
|
1
3
|
$extra-dark-blue: #0d2745;
|
|
2
4
|
$dark-blue: #155072;
|
|
3
5
|
$main-blue: #076b9c;
|
|
@@ -51,3 +53,37 @@ $gradient-en: linear-gradient(75deg, #fffbef, #fff);
|
|
|
51
53
|
$gradient-bb: linear-gradient(75deg, #fff7f1, #fff);
|
|
52
54
|
$gradient-cc: linear-gradient(75deg, #fff4ff, #fff);
|
|
53
55
|
$gradient-cja-1: linear-gradient(90deg, #b5e187 2.5%, #076b9c 100%);
|
|
56
|
+
|
|
57
|
+
$colors: (
|
|
58
|
+
"extra-dark-blue": $extra-dark-blue,
|
|
59
|
+
"dark-blue": $dark-blue,
|
|
60
|
+
"main-blue": $main-blue,
|
|
61
|
+
"medium-blue": $medium-blue,
|
|
62
|
+
"bright-blue": $bright-blue,
|
|
63
|
+
"light-blue": $light-blue,
|
|
64
|
+
"extra-light-blue": $extra-light-blue,
|
|
65
|
+
"extra-dark-green": $extra-dark-green,
|
|
66
|
+
"dark-green": $dark-green,
|
|
67
|
+
"main-green": $main-green,
|
|
68
|
+
"bright-green": $bright-green,
|
|
69
|
+
"light-green": $light-green,
|
|
70
|
+
"extra-light-green": $extra-light-green,
|
|
71
|
+
"extra-dark-orange": $extra-dark-orange,
|
|
72
|
+
"dark-orange": $dark-orange,
|
|
73
|
+
"main-orange": $main-orange,
|
|
74
|
+
"bright-orange": $bright-orange,
|
|
75
|
+
"light-orange": $light-orange,
|
|
76
|
+
"main-yellow": $main-yellow,
|
|
77
|
+
"main-purple": $main-purple,
|
|
78
|
+
"medium-purple": $medium-purple,
|
|
79
|
+
"bright-purple": $bright-purple,
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
$gradients: (
|
|
83
|
+
"hl": $gradient-hl,
|
|
84
|
+
"pl": $gradient-pl,
|
|
85
|
+
"in": $gradient-in,
|
|
86
|
+
"en": $gradient-en,
|
|
87
|
+
"bb": $gradient-bb,
|
|
88
|
+
"cc": $gradient-cc,
|
|
89
|
+
);
|
|
@@ -11,10 +11,11 @@
|
|
|
11
11
|
<input
|
|
12
12
|
:class="[`size-${size}`]"
|
|
13
13
|
type="text"
|
|
14
|
+
:value="processedValue"
|
|
14
15
|
:id="id"
|
|
15
|
-
:placeholder="placeholder
|
|
16
|
+
:placeholder="placeholder"
|
|
16
17
|
:disabled="disabled"
|
|
17
|
-
|
|
18
|
+
@input="updateValue"
|
|
18
19
|
/>
|
|
19
20
|
|
|
20
21
|
<span class="input-currency">
|
|
@@ -28,11 +29,11 @@
|
|
|
28
29
|
|
|
29
30
|
<script lang="ts" setup>
|
|
30
31
|
import { useField } from "vee-validate";
|
|
31
|
-
import { InputHTMLAttributes
|
|
32
|
-
import { CurrencyDisplay, useCurrencyInput } from "vue-currency-input";
|
|
32
|
+
import { InputHTMLAttributes } from "vue";
|
|
33
33
|
import InputContainer from "./structure/InputContainer.vue";
|
|
34
34
|
import InputTitle from "./structure/InputTitle.vue";
|
|
35
35
|
import InputError from "./structure/InputError.vue";
|
|
36
|
+
import { computed } from "vue";
|
|
36
37
|
|
|
37
38
|
const props = withDefaults(
|
|
38
39
|
defineProps<{
|
|
@@ -56,29 +57,28 @@ const props = withDefaults(
|
|
|
56
57
|
}
|
|
57
58
|
);
|
|
58
59
|
|
|
59
|
-
const {
|
|
60
|
-
currency: "EUR",
|
|
61
|
-
locale: "de-DE",
|
|
62
|
-
hideCurrencySymbolOnFocus: false,
|
|
63
|
-
hideGroupingSeparatorOnFocus: false,
|
|
64
|
-
currencyDisplay: CurrencyDisplay.hidden,
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
const { errorMessage, meta, validate, setValue } = useField(
|
|
60
|
+
const { value, errorMessage, meta, validate, handleChange } = useField(
|
|
68
61
|
"input",
|
|
69
62
|
props.validation,
|
|
70
63
|
{ initialValue: props.modelValue }
|
|
71
64
|
);
|
|
72
65
|
|
|
73
|
-
|
|
74
|
-
(
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
setCurrency(newVal);
|
|
78
|
-
}
|
|
66
|
+
const processedValue = computed(() =>
|
|
67
|
+
Intl.NumberFormat("de-DE", { maximumFractionDigits: 2 }).format(
|
|
68
|
+
value.value || 0
|
|
69
|
+
)
|
|
79
70
|
);
|
|
80
71
|
|
|
81
|
-
const
|
|
72
|
+
const updateValue = (e: Event) => {
|
|
73
|
+
const parsedValue = parseFloat(
|
|
74
|
+
(e.target as HTMLInputElement).value.replaceAll(".", "").replace(",", ".")
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
handleChange(parsedValue);
|
|
78
|
+
emit("update:modelValue", parsedValue);
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
const emit = defineEmits(["update:modelValue"]);
|
|
82
82
|
|
|
83
83
|
defineExpose({ errorMessage, meta, validate });
|
|
84
84
|
</script>
|
|
@@ -91,15 +91,33 @@ defineExpose({ errorMessage, meta, validate });
|
|
|
91
91
|
@include input-template;
|
|
92
92
|
padding-right: 24px;
|
|
93
93
|
|
|
94
|
-
&:
|
|
94
|
+
&:disabled {
|
|
95
95
|
+ .input-currency {
|
|
96
|
-
color: $
|
|
96
|
+
color: $input-disabled-color;
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
|
|
100
|
+
&.size-sm {
|
|
101
|
+
padding-right: $sm-padding-h * 2 + 10;
|
|
102
|
+
|
|
101
103
|
+ .input-currency {
|
|
102
|
-
|
|
104
|
+
right: $sm-padding-h;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
&.size-md {
|
|
109
|
+
padding-right: $md-padding-h * 2 + 10;
|
|
110
|
+
|
|
111
|
+
+ .input-currency {
|
|
112
|
+
right: $md-padding-h;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
&.size-lg {
|
|
117
|
+
padding-right: $lg-padding-h * 2 + 10;
|
|
118
|
+
|
|
119
|
+
+ .input-currency {
|
|
120
|
+
right: $lg-padding-h;
|
|
103
121
|
}
|
|
104
122
|
}
|
|
105
123
|
}
|
|
@@ -114,11 +132,8 @@ defineExpose({ errorMessage, meta, validate });
|
|
|
114
132
|
position: absolute;
|
|
115
133
|
top: 50%;
|
|
116
134
|
transform: translateY(-50%);
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
font-size: 16px;
|
|
120
|
-
color: $blue-grey;
|
|
121
|
-
transition: color 0.1s ease-in;
|
|
135
|
+
line-height: 12px;
|
|
136
|
+
font-size: 12px;
|
|
122
137
|
}
|
|
123
138
|
}
|
|
124
139
|
</style>
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<InputContainer v-bind="{ layout }">
|
|
3
|
+
<InputTitle v-bind="{ title, tooltip, size, disabled }" v-if="title" />
|
|
4
|
+
|
|
5
|
+
<div
|
|
6
|
+
class="input-wrapper"
|
|
7
|
+
:class="{
|
|
8
|
+
error: errorMessage,
|
|
9
|
+
}"
|
|
10
|
+
:style="`--slider-progress-value:${sliderProgressValue}`"
|
|
11
|
+
>
|
|
12
|
+
<input
|
|
13
|
+
ref="inputEl"
|
|
14
|
+
type="range"
|
|
15
|
+
:min="min"
|
|
16
|
+
:max="max"
|
|
17
|
+
:step="step"
|
|
18
|
+
:value="modelValue ? modelValue : 0"
|
|
19
|
+
@input="
|
|
20
|
+
emit(
|
|
21
|
+
'update:modelValue',
|
|
22
|
+
(<HTMLInputElement>$event.target).valueAsNumber
|
|
23
|
+
)
|
|
24
|
+
"
|
|
25
|
+
/>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<InputError :error="errorMessage" v-if="errorMessage && errorDisplay" />
|
|
29
|
+
</InputContainer>
|
|
30
|
+
</template>
|
|
31
|
+
|
|
32
|
+
<script lang="ts" setup>
|
|
33
|
+
import { useField } from "vee-validate";
|
|
34
|
+
import { InputHTMLAttributes, ref } from "vue";
|
|
35
|
+
import InputTitle from "./structure/InputTitle.vue";
|
|
36
|
+
import InputError from "./structure/InputError.vue";
|
|
37
|
+
import InputContainer from "./structure/InputContainer.vue";
|
|
38
|
+
import { computed } from "vue";
|
|
39
|
+
|
|
40
|
+
const props = withDefaults(
|
|
41
|
+
defineProps<{
|
|
42
|
+
title?: string;
|
|
43
|
+
tooltip?: string;
|
|
44
|
+
layout?: "vertical" | "horizontal";
|
|
45
|
+
size?: "sm" | "md" | "lg";
|
|
46
|
+
validation?: any;
|
|
47
|
+
errorDisplay?: boolean;
|
|
48
|
+
modelValue: InputHTMLAttributes["value"];
|
|
49
|
+
disabled?: InputHTMLAttributes["disabled"];
|
|
50
|
+
min: number;
|
|
51
|
+
max: number;
|
|
52
|
+
step: number;
|
|
53
|
+
}>(),
|
|
54
|
+
{
|
|
55
|
+
layout: "vertical",
|
|
56
|
+
size: "md",
|
|
57
|
+
type: "text",
|
|
58
|
+
errorDisplay: true,
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
const { value, errorMessage, meta, validate } = useField(
|
|
63
|
+
"input",
|
|
64
|
+
props.validation,
|
|
65
|
+
{ initialValue: props.modelValue }
|
|
66
|
+
);
|
|
67
|
+
|
|
68
|
+
defineExpose({ errorMessage, meta, validate });
|
|
69
|
+
|
|
70
|
+
const emit = defineEmits(["update:modelValue"]);
|
|
71
|
+
|
|
72
|
+
const inputEl = ref();
|
|
73
|
+
|
|
74
|
+
const sliderProgressValue = computed(
|
|
75
|
+
() =>
|
|
76
|
+
(Math.round((props.modelValue / props.step) * props.step) - props.min) /
|
|
77
|
+
(props.max - props.min)
|
|
78
|
+
);
|
|
79
|
+
</script>
|
|
80
|
+
|
|
81
|
+
<style lang="scss" scoped>
|
|
82
|
+
$sliderHeight: 12px;
|
|
83
|
+
$sliderThumb: 20px;
|
|
84
|
+
$sliderProgress: calc(
|
|
85
|
+
0.5 * #{$sliderThumb} + var(--slider-progress-value) * (100% - #{$sliderThumb})
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
.input-wrapper {
|
|
89
|
+
input {
|
|
90
|
+
display: block;
|
|
91
|
+
margin: 4px 0;
|
|
92
|
+
width: 100%;
|
|
93
|
+
appearance: none;
|
|
94
|
+
cursor: pointer;
|
|
95
|
+
|
|
96
|
+
&:focus {
|
|
97
|
+
outline: none;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
&::-webkit-slider-thumb {
|
|
101
|
+
-webkit-appearance: none;
|
|
102
|
+
width: $sliderThumb;
|
|
103
|
+
height: $sliderThumb;
|
|
104
|
+
border-radius: 50%;
|
|
105
|
+
background: #77aa43;
|
|
106
|
+
border: none;
|
|
107
|
+
margin-top: calc($sliderHeight * 0.5 - $sliderThumb * 0.5);
|
|
108
|
+
cursor: grab;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
&::-webkit-slider-runnable-track {
|
|
112
|
+
height: $sliderHeight;
|
|
113
|
+
border: none;
|
|
114
|
+
border-radius: $sliderHeight;
|
|
115
|
+
box-shadow: inset 0px 0px 10px rgba(129, 129, 129, 0.25);
|
|
116
|
+
background: linear-gradient(#b5e187, #b5e187) 0 / $sliderProgress 100%
|
|
117
|
+
no-repeat,
|
|
118
|
+
#eef4e8;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
&::-moz-range-thumb {
|
|
122
|
+
width: $sliderThumb;
|
|
123
|
+
height: $sliderThumb;
|
|
124
|
+
border-radius: 50%;
|
|
125
|
+
background: #77aa43;
|
|
126
|
+
border: none;
|
|
127
|
+
cursor: grab;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
&::-moz-range-track {
|
|
131
|
+
height: $sliderHeight;
|
|
132
|
+
border: none;
|
|
133
|
+
border-radius: $sliderHeight;
|
|
134
|
+
box-shadow: none;
|
|
135
|
+
background: linear-gradient(#b5e187, #b5e187) 0 / $sliderProgress 100%
|
|
136
|
+
no-repeat,
|
|
137
|
+
#eef4e8;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
&::-ms-fill-upper {
|
|
141
|
+
background: transparent;
|
|
142
|
+
border-color: transparent;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
&::-ms-fill-lower {
|
|
146
|
+
background: transparent;
|
|
147
|
+
border-color: transparent;
|
|
148
|
+
height: $sliderHeight;
|
|
149
|
+
border-radius: $sliderHeight 0 0 $sliderHeight;
|
|
150
|
+
background: #b5e187;
|
|
151
|
+
border: none;
|
|
152
|
+
border-right-width: 0;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
&::-ms-thumb {
|
|
156
|
+
width: $sliderThumb;
|
|
157
|
+
height: $sliderThumb;
|
|
158
|
+
border-radius: 50%;
|
|
159
|
+
background: #77aa43;
|
|
160
|
+
border: none;
|
|
161
|
+
margin-top: 0;
|
|
162
|
+
box-sizing: border-box;
|
|
163
|
+
cursor: grab;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
&::-ms-track {
|
|
167
|
+
height: $sliderHeight;
|
|
168
|
+
border-radius: $sliderHeight;
|
|
169
|
+
background: #eef4e8;
|
|
170
|
+
border: none;
|
|
171
|
+
box-shadow: none;
|
|
172
|
+
box-sizing: border-box;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
</style>
|
|
@@ -103,12 +103,6 @@ const emit = defineEmits(["update:modelValue"]);
|
|
|
103
103
|
input {
|
|
104
104
|
@include input-template;
|
|
105
105
|
|
|
106
|
-
&:focus {
|
|
107
|
-
+ .input-suffix {
|
|
108
|
-
color: $extra-dark-blue;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
106
|
&[type="number"] {
|
|
113
107
|
/* Firefox */
|
|
114
108
|
-moz-appearance: textfield;
|
|
@@ -120,6 +114,24 @@ const emit = defineEmits(["update:modelValue"]);
|
|
|
120
114
|
margin: 0;
|
|
121
115
|
}
|
|
122
116
|
}
|
|
117
|
+
|
|
118
|
+
&.size-sm {
|
|
119
|
+
+ .input-suffix {
|
|
120
|
+
right: $sm-padding-h;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
&.size-md {
|
|
125
|
+
+ .input-suffix {
|
|
126
|
+
right: $md-padding-h;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
&.size-lg {
|
|
131
|
+
+ .input-suffix {
|
|
132
|
+
right: $lg-padding-h;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
123
135
|
}
|
|
124
136
|
|
|
125
137
|
&.error {
|
|
@@ -132,11 +144,8 @@ const emit = defineEmits(["update:modelValue"]);
|
|
|
132
144
|
position: absolute;
|
|
133
145
|
top: 50%;
|
|
134
146
|
transform: translateY(-50%);
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
font-size: 11px;
|
|
138
|
-
color: $blue-grey;
|
|
139
|
-
transition: color 0.1s ease-in;
|
|
147
|
+
line-height: 12px;
|
|
148
|
+
font-size: 12px;
|
|
140
149
|
}
|
|
141
150
|
}
|
|
142
151
|
</style>
|
package/src/components/index.ts
CHANGED
|
@@ -19,8 +19,10 @@ import SelectInput from "./forms/SelectInput.vue";
|
|
|
19
19
|
import FileInput from "./forms/FileInput.vue";
|
|
20
20
|
import NumberInput from "./forms/NumberInput.vue";
|
|
21
21
|
import ToggleInput from "./forms/ToggleInput.vue";
|
|
22
|
+
import SliderInput from "./forms/SliderInput.vue";
|
|
22
23
|
import CurrencyInput from "./forms/CurrencyInput.vue";
|
|
23
24
|
import SelectionTiles from "./forms/SelectionTiles.vue";
|
|
25
|
+
import InputError from "./forms/structure/InputError.vue";
|
|
24
26
|
|
|
25
27
|
import JourneyMacroSteps from "./composite/JourneyMacroSteps.vue";
|
|
26
28
|
import FunnelLayout from "./composite/FunnelLayout.vue";
|
|
@@ -48,10 +50,12 @@ export {
|
|
|
48
50
|
SelectInput,
|
|
49
51
|
CurrencyInput,
|
|
50
52
|
SelectionTiles,
|
|
53
|
+
InputError,
|
|
51
54
|
LoadingSpinner,
|
|
52
55
|
Scaffold,
|
|
53
56
|
ProductDetails,
|
|
54
57
|
ToggleInput,
|
|
58
|
+
SliderInput,
|
|
55
59
|
FileInput,
|
|
56
60
|
ContentTabs,
|
|
57
61
|
CollapseContainer,
|