@dative-gpi/foundation-shared-components 0.0.4 → 0.0.5

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.
Files changed (35) hide show
  1. package/components/FSBreadcrumbs.vue +10 -7
  2. package/components/FSButton.vue +85 -27
  3. package/components/FSCheckbox.vue +21 -17
  4. package/components/FSCol.vue +56 -16
  5. package/components/FSFadeOut.vue +7 -2
  6. package/components/FSNumberField.vue +65 -0
  7. package/components/FSPasswordField.vue +108 -0
  8. package/components/FSRadio.vue +21 -17
  9. package/components/FSRadioGroup.vue +1 -1
  10. package/components/FSRow.vue +57 -17
  11. package/components/FSSlideGroup.vue +2 -2
  12. package/components/FSSpan.vue +2 -3
  13. package/components/FSSwitch.vue +22 -18
  14. package/components/FSTab.vue +32 -25
  15. package/components/FSTabs.vue +6 -5
  16. package/components/FSTag.vue +21 -18
  17. package/components/FSTextField.vue +64 -11
  18. package/components/FSWrapGroup.vue +2 -2
  19. package/composables/useColors.ts +7 -25
  20. package/defaults/FSButtons.ts +45 -15
  21. package/package.json +4 -4
  22. package/styles/components/fs_breadcrumbs.scss +23 -10
  23. package/styles/components/fs_button.scss +26 -0
  24. package/styles/components/fs_col.scss +87 -2
  25. package/styles/components/fs_icon.scss +4 -4
  26. package/styles/components/fs_password_field.scss +5 -0
  27. package/styles/components/fs_row.scss +86 -1
  28. package/styles/components/fs_span.scss +1 -1
  29. package/styles/components/fs_tabs.scss +0 -1
  30. package/styles/components/fs_text_field.scss +34 -16
  31. package/styles/components/index.scss +15 -14
  32. package/styles/globals/fixes.scss +5 -0
  33. package/styles/globals/index.scss +4 -1
  34. package/styles/globals/overrides.scss +13 -0
  35. package/styles/globals/text_fonts.scss +44 -24
@@ -5,59 +5,89 @@ import FSButton from "@dative-gpi/foundation-shared-components/components/FSButt
5
5
  export const FSButtonsAliases = {
6
6
  FSButtonSearch: FSButton,
7
7
  FSButtonSearchMini: FSButton,
8
+ FSButtonSearchIcon: FSButton,
8
9
  FSButtonRemove: FSButton,
9
10
  FSButtonRemoveMini: FSButton,
11
+ FSButtonRemoveIcon: FSButton,
10
12
  FSButtonSave: FSButton,
11
- FSButtonSaveMini: FSButton
13
+ FSButtonSaveMini: FSButton,
14
+ FSButtonSaveIcon: FSButton,
15
+ FSButtonCancel: FSButton,
16
+ FSButtonCancelMini: FSButton,
17
+ FSButtonCancelIcon: FSButton
12
18
  }
13
19
 
14
20
  export const FSButtonsProps = {
15
21
  FSButtonSearch: {
16
- icon: "mdi-magnify",
22
+ prependIcon: "mdi-magnify",
17
23
  label: "Search",
18
- full: false,
24
+ variant: "standard",
19
25
  color: ColorBase.Primary
20
26
  },
21
27
  FSButtonSearchMini: {
28
+ prependIcon: "mdi-magnify",
29
+ label: undefined,
30
+ variant: "standard",
31
+ color: ColorBase.Primary
32
+ },
33
+ FSButtonSearchIcon: {
22
34
  icon: "mdi-magnify",
23
35
  label: undefined,
24
- full: false,
36
+ variant: "icon",
25
37
  color: ColorBase.Primary
26
38
  },
27
39
  FSButtonRemove: {
28
- icon: "mdi-delete-outline",
40
+ prependIcon: "mdi-delete-outline",
29
41
  label: "Remove",
30
- full: false,
42
+ variant: "standard",
31
43
  color: ColorBase.Error
32
44
  },
33
45
  FSButtonRemoveMini: {
46
+ prependIcon: "mdi-delete-outline",
47
+ label: undefined,
48
+ variant: "standard",
49
+ color: ColorBase.Error
50
+ },
51
+ FSButtonRemoveIcon: {
34
52
  icon: "mdi-delete-outline",
35
53
  label: undefined,
36
- full: false,
54
+ variant: "icon",
37
55
  color: ColorBase.Error
38
56
  },
39
57
  FSButtonSave: {
40
- icon: "mdi-content-save-outline",
58
+ prependIcon: "mdi-content-save-outline",
41
59
  label: "Save",
42
- full: false,
60
+ variant: "standard",
43
61
  color: ColorBase.Success
44
62
  },
45
63
  FSButtonSaveMini: {
64
+ prependIcon: "mdi-content-save-outline",
65
+ label: undefined,
66
+ variant: "standard",
67
+ color: ColorBase.Success
68
+ },
69
+ FSButtonSaveIcon: {
46
70
  icon: "mdi-content-save-outline",
47
71
  label: undefined,
48
- full: false,
72
+ variant: "icon",
49
73
  color: ColorBase.Success
50
74
  },
51
75
  FSButtonCancel: {
52
- icon: "mdi-cancel",
76
+ prependIcon: "mdi-cancel",
53
77
  label: "Cancel",
54
- full: false,
55
- color: ColorBase.Light
78
+ variant: "standard",
79
+ color: ColorBase.Dark
56
80
  },
57
81
  FSButtonCancelMini: {
82
+ prependIcon: "mdi-cancel",
83
+ label: undefined,
84
+ variant: "standard",
85
+ color: ColorBase.Dark
86
+ },
87
+ FSButtonCancelIcon: {
58
88
  icon: "mdi-cancel",
59
89
  label: undefined,
60
- full: false,
61
- color: ColorBase.Light
90
+ variant: "icon",
91
+ color: ColorBase.Dark
62
92
  }
63
93
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dative-gpi/foundation-shared-components",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "description": "",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -9,8 +9,8 @@
9
9
  "author": "",
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
- "@dative-gpi/foundation-shared-domain": "0.0.4",
13
- "@dative-gpi/foundation-shared-services": "0.0.4",
12
+ "@dative-gpi/foundation-shared-domain": "0.0.5",
13
+ "@dative-gpi/foundation-shared-services": "0.0.5",
14
14
  "color": "^4.2.3",
15
15
  "vue": "^3.2.0"
16
16
  },
@@ -19,5 +19,5 @@
19
19
  "sass": "^1.69.5",
20
20
  "sass-loader": "^13.3.2"
21
21
  },
22
- "gitHead": "71c09afc7831594e6cc4529c01f1ed761f856929"
22
+ "gitHead": "609abe1b97549b28ff83dffe858030604df27a2e"
23
23
  }
@@ -1,3 +1,20 @@
1
+ .fs-breadcrumbs-label {
2
+ cursor: pointer;
3
+ color: var(--fs-breadcrumbs-base-text) !important;
4
+
5
+ &--disabled {
6
+ color: var(--fs-breadcrumbs-light-text) !important;
7
+ }
8
+
9
+ &:hover {
10
+ text-decoration: underline;
11
+ }
12
+ }
13
+
14
+ .fs-breadcrumbs-divider {
15
+ margin-bottom: 2px !important;
16
+ }
17
+
1
18
  .v-breadcrumbs {
2
19
  padding: 0 !important;
3
20
  gap: 8px !important;
@@ -6,23 +23,19 @@
6
23
  .v-breadcrumbs-item {
7
24
  padding: 0 !important;
8
25
 
26
+ &--disabled {
27
+ opacity: 1 !important;
28
+ color: var(--fs-breadcrumbs-light-text) !important;
29
+ }
30
+
9
31
  &:last-child > .fs-breadcrumbs-label--disabled {
10
32
  @extend .text-button;
11
33
 
12
- color: var(--fs-breadcrumbs-light-text) !important;
34
+ color: var(--fs-breadcrumbs-base-text) !important;
13
35
  }
14
36
  }
15
37
 
16
38
  .v-breadcrumbs-divider {
17
39
  padding: 0 !important;
18
40
  color: var(--fs-breadcrumbs-base-text) !important;
19
- }
20
-
21
- .fs-breadcrumbs-label {
22
- cursor: pointer;
23
- color: var(--fs-breadcrumbs-base-text) !important;
24
-
25
- &:hover {
26
- color: var(--fs-breadcrumbs-dark-text) !important;
27
- }
28
41
  }
@@ -25,4 +25,30 @@
25
25
  min-width: 36px !important;
26
26
  height: 36px !important;
27
27
  }
28
+ }
29
+
30
+ .fs-button-icon {
31
+ & .v-icon {
32
+ transition: color 0.28s cubic-bezier(0.4, 0, 0.2, 1) !important;
33
+ color: var(--fs-button-light-text) !important;
34
+ cursor: pointer !important;
35
+
36
+ &:hover {
37
+ color: var(--fs-button-base-text) !important;
38
+ }
39
+
40
+ &:active {
41
+ color: var(--fs-button-light-text) !important;
42
+ }
43
+ }
44
+
45
+ @include web {
46
+ width: 24px !important;
47
+ height: 24px !important;
48
+ }
49
+
50
+ @include mobile {
51
+ width: 18px !important;
52
+ height: 18px !important;
53
+ }
28
54
  }
@@ -1,6 +1,91 @@
1
1
  .fs-col {
2
2
  display: flex;
3
3
  flex-direction: column;
4
- align-items: flex-start;
5
- gap: var(--fs-col-gap)
4
+ gap: var(--fs-col-gap);
5
+
6
+ &-top-left {
7
+ justify-content: flex-start;
8
+ align-items: flex-start;
9
+ }
10
+
11
+ &-top-center {
12
+ justify-content: flex-start;
13
+ align-items: center;
14
+ }
15
+
16
+ &-top-right {
17
+ justify-content: flex-start;
18
+ align-items: flex-end;
19
+ }
20
+
21
+ &-center-left {
22
+ justify-content: center;
23
+ align-items: flex-start;
24
+ }
25
+
26
+ &-center-center {
27
+ justify-content: center;
28
+ align-items: center;
29
+ }
30
+
31
+ &-center-right {
32
+ justify-content: center;
33
+ align-items: flex-end;
34
+ }
35
+
36
+ &-bottom-left {
37
+ justify-content: flex-end;
38
+ align-items: flex-start;
39
+ }
40
+
41
+ &-bottom-center {
42
+ justify-content: flex-end;
43
+ align-items: center;
44
+ }
45
+
46
+ &-bottom-right {
47
+ justify-content: flex-end;
48
+ align-items: flex-end;
49
+ }
50
+ }
51
+
52
+ .fs-col > .fs-col-width {
53
+ &-fill {
54
+ align-self: stretch;
55
+ }
56
+
57
+ &-fixed {
58
+ width: var(--fs-col-width);
59
+ }
60
+ }
61
+
62
+ :not(.fs-col) > .fs-col-width {
63
+ &-fill {
64
+ flex: 1 0 0;
65
+ }
66
+
67
+ &-fixed {
68
+ width: var(--fs-col-width);
69
+ }
70
+ }
71
+
72
+ .fs-col > .fs-col-height {
73
+ &-fill {
74
+ flex: 1 0 0;
75
+ }
76
+
77
+ &-fixed {
78
+ height: var(--fs-col-height);
79
+ }
80
+
81
+ }
82
+
83
+ :not(.fs-col) > .fs-col-height {
84
+ &-fill {
85
+ align-self: stretch;
86
+ }
87
+
88
+ &-fixed {
89
+ height: var(--fs-col-height);
90
+ }
6
91
  }
@@ -3,12 +3,12 @@
3
3
  }
4
4
 
5
5
  .fs-icon-m {
6
- @include mobile {
7
- font-size: 18px !important;
6
+ @include web {
7
+ font-size: 20px !important;
8
8
  }
9
9
 
10
- @include web {
11
- font-size: 24px !important;
10
+ @include mobile {
11
+ font-size: 16px !important;
12
12
  }
13
13
  }
14
14
 
@@ -0,0 +1,5 @@
1
+ .fs-password-field-icon {
2
+ cursor: var(--fs-password-field-cursor) !important;
3
+ color: var(--fs-password-field-base-text) !important;
4
+ opacity: 1 !important;
5
+ }
@@ -1,6 +1,91 @@
1
1
  .fs-row {
2
2
  display: flex;
3
- align-items: flex-start;
4
3
  flex-wrap: var(--fs-row-flex-wrap);
5
4
  gap: var(--fs-row-gap);
5
+
6
+ &-top-left {
7
+ align-items: flex-start;
8
+ justify-content: flex-start;
9
+ }
10
+
11
+ &-top-center {
12
+ align-items: flex-start;
13
+ justify-content: center;
14
+ }
15
+
16
+ &-top-right {
17
+ align-items: flex-start;
18
+ justify-content: flex-end;
19
+ }
20
+
21
+ &-center-left {
22
+ align-items: center;
23
+ justify-content: flex-start;
24
+ }
25
+
26
+ &-center-center {
27
+ align-items: center;
28
+ justify-content: center;
29
+ }
30
+
31
+ &-center-right {
32
+ align-items: center;
33
+ justify-content: flex-end;
34
+ }
35
+
36
+ &-bottom-left {
37
+ align-items: flex-end;
38
+ justify-content: flex-start;
39
+ }
40
+
41
+ &-bottom-center {
42
+ align-items: flex-end;
43
+ justify-content: center;
44
+ }
45
+
46
+ &-bottom-right {
47
+ align-items: flex-end;
48
+ justify-content: flex-end;
49
+ }
50
+ }
51
+
52
+ :not(.fs-col) > .fs-row-width {
53
+ &-fill {
54
+ flex: 1 0 0;
55
+ }
56
+
57
+ &-fixed {
58
+ width: var(--fs-row-width);
59
+ }
60
+ }
61
+
62
+ .fs-col > .fs-row-width {
63
+ &-fill {
64
+ align-self: stretch;
65
+ }
66
+
67
+ &-fixed {
68
+ width: var(--fs-row-width);
69
+ }
70
+ }
71
+
72
+ :not(.fs-col) > .fs-row-height {
73
+ &-fill {
74
+ align-self: stretch;
75
+ }
76
+
77
+ &-fixed {
78
+ height: var(--fs-row-height);
79
+ }
80
+
81
+ }
82
+
83
+ .fs-col > .fs-row-height {
84
+ &-fill {
85
+ flex: 1 0 0;
86
+ }
87
+
88
+ &-fixed {
89
+ width: var(--fs-row-height);
90
+ }
6
91
  }
@@ -1,5 +1,5 @@
1
1
  .fs-span {
2
- height: 100%;
2
+ padding-inline-end: 2px;
3
3
  display: flex;
4
4
  align-items: center;
5
5
  overflow: hidden;
@@ -12,7 +12,6 @@
12
12
  }
13
13
 
14
14
  .fs-tab {
15
- display: flex;
16
15
  padding: 0 16px;
17
16
  border-bottom: 1px solid var(--fs-group-light-text) !important;
18
17
  color: var(--fs-group-light-text) !important;
@@ -1,24 +1,42 @@
1
- .fs-text-field > .v-input__control > .v-field {
2
- border: 1.3px solid #000000 !important;
1
+ .fs-text-field {
2
+ border: 1px solid var(--fs-text-field-base-color) !important;
3
3
  border-radius: 4px !important;
4
+ padding: 0 16px !important;
5
+ width: 100%;
4
6
 
5
- & > .v-field__outline {
6
- display: none;
7
+ &:focus-within {
8
+ border-color: var(--fs-text-field-dark-color) !important;
7
9
  }
8
- }
9
-
10
- .fs-text-field > .v-input__control > .v-field > .v-field__field > input {
11
- @extend .text-body;
12
10
 
13
- padding: 12px 16px !important;
11
+ & > .v-input__control > .v-field {
12
+ & > .v-field__outline {
13
+ display: none;
14
+ }
14
15
 
15
- @include web {
16
- min-height: 44px !important;
17
- height: 44px !important;
16
+ & > .v-field__field > input {
17
+ @extend .text-body;
18
+
19
+ padding-inline: 0 !important;
20
+ cursor: var(--fs-text-field-cursor) !important;
21
+ color: var(--fs-text-field-base-text);
22
+
23
+ @include web {
24
+ min-height: 48px !important;
25
+ height: 48px !important;
26
+ }
27
+
28
+ @include mobile {
29
+ min-height: 36px !important;
30
+ height: 36px !important;
31
+ }
32
+ }
18
33
  }
34
+ }
19
35
 
20
- @include mobile {
21
- min-height: 40px !important;
22
- height: 40px !important;
23
- }
36
+ .fs-text-field-label {
37
+ color: var(--fs-text-field-base-text);
38
+ }
39
+
40
+ .fs-text-field-description {
41
+ color: var(--fs-text-field-base-text);
24
42
  }
@@ -1,14 +1,15 @@
1
- @import 'fs_breadcrumbs.scss';
2
- @import 'fs_button.scss';
3
- @import 'fs_checkbox.scss';
4
- @import 'fs_col.scss';
5
- @import 'fs_fade_out.scss';
6
- @import 'fs_icon.scss';
7
- @import 'fs_radio.scss';
8
- @import 'fs_row.scss';
9
- @import 'fs_span.scss';
10
- @import 'fs_switch.scss';
11
- @import 'fs_tag.scss';
12
- @import 'fs_tabs.scss';
13
- @import 'fs_text_field.scss';
14
- @import 'fs_wrap_group.scss';
1
+ @import "fs_breadcrumbs.scss";
2
+ @import "fs_button.scss";
3
+ @import "fs_checkbox.scss";
4
+ @import "fs_col.scss";
5
+ @import "fs_fade_out.scss";
6
+ @import "fs_icon.scss";
7
+ @import "fs_password_field.scss";
8
+ @import "fs_radio.scss";
9
+ @import "fs_row.scss";
10
+ @import "fs_span.scss";
11
+ @import "fs_switch.scss";
12
+ @import "fs_tag.scss";
13
+ @import "fs_tabs.scss";
14
+ @import "fs_text_field.scss";
15
+ @import "fs_wrap_group.scss";
@@ -0,0 +1,5 @@
1
+ .fs-tab > .v-btn__content > .fs-row > .text-button {
2
+ @include web {
3
+ padding-top: 2px !important;
4
+ }
5
+ }
@@ -3,4 +3,7 @@
3
3
  @import 'text_fonts.scss';
4
4
  @import 'touchscreen.scss';
5
5
  @import 'scrollbars.scss';
6
- @import 'overrides.scss';
6
+ @import 'overrides.scss';
7
+
8
+ // Find a better way to fix this
9
+ @import 'fixes.scss';
@@ -8,6 +8,19 @@
8
8
  display: none;
9
9
  }
10
10
 
11
+ // No up / down buttons in input field of type number
12
+ input[type=number] {
13
+ -moz-appearance: textfield;
14
+ appearance: textfield;
15
+ margin: 0;
16
+ }
17
+
18
+ input[type=number]::-webkit-inner-spin-button,
19
+ input[type=number]::-webkit-outer-spin-button {
20
+ -webkit-appearance: none;
21
+ margin: 0;
22
+ }
23
+
11
24
  /***** Applies to all slide groups (FSTabs, FSSlideGroup, FSWrapGroup) *****/
12
25
 
13
26
  // On touchscreen, hide arrows
@@ -1,54 +1,54 @@
1
1
  .text-h1 {
2
2
  font-family: 'Montserrat', sans-serif !important;
3
- font-style: normal;
4
- font-weight: 700;
3
+ font-style: normal !important;
4
+ font-weight: 700 !important;
5
5
 
6
6
  @include web {
7
- font-size: 36px;
8
- line-height: 40px;
9
- letter-spacing: -0.72px;
7
+ font-size: 36px !important;
8
+ line-height: 40px !important;
9
+ letter-spacing: -0.72px !important;
10
10
  }
11
11
 
12
12
  @include mobile {
13
- font-size: 29px;
14
- line-height: 32px;
15
- letter-spacing: -1.45px;
13
+ font-size: 29px !important;
14
+ line-height: 32px !important;
15
+ letter-spacing: -1.45px !important;
16
16
  }
17
17
  }
18
18
 
19
19
  .text-h2 {
20
20
  font-family: 'Montserrat', sans-serif !important;
21
- font-style: normal;
22
- font-weight: 600;
21
+ font-style: normal !important;
22
+ font-weight: 600 !important;
23
23
 
24
24
  @include web {
25
- font-size: 27px;
26
- line-height: 32px;
27
- letter-spacing: -0.81px;
25
+ font-size: 27px !important;
26
+ line-height: 32px !important;
27
+ letter-spacing: -0.81px !important;
28
28
  }
29
29
 
30
30
  @include mobile {
31
- font-size: 22px;
32
- line-height: 24px;
33
- letter-spacing: -0.88px;
31
+ font-size: 22px !important;
32
+ line-height: 24px !important;
33
+ letter-spacing: -0.88px !important;
34
34
  }
35
35
  }
36
36
 
37
37
  .text-h3 {
38
38
  font-family: 'Montserrat', sans-serif !important;
39
- font-style: normal;
40
- font-weight: 600;
39
+ font-style: normal !important;
40
+ font-weight: 600 !important;
41
41
 
42
42
  @include web {
43
- font-size: 21px;
44
- line-height: 24px;
45
- letter-spacing: -0.63px;
43
+ font-size: 21px !important;
44
+ line-height: 24px !important;
45
+ letter-spacing: -0.63px !important;
46
46
  }
47
47
 
48
48
  @include mobile {
49
- font-size: 17px;
50
- line-height: 20px;
51
- letter-spacing: -0.51px;
49
+ font-size: 17px !important;
50
+ line-height: 20px !important;
51
+ letter-spacing: -0.51px !important;
52
52
  }
53
53
  }
54
54
 
@@ -91,6 +91,26 @@
91
91
  }
92
92
 
93
93
  .text-overline {
94
+ font-family: 'Montserrat', sans-serif !important;
95
+ font-style: normal !important;
96
+ text-transform: none !important;
97
+
98
+ @include web {
99
+ font-weight: 600 !important;
100
+ font-size: 12px !important;
101
+ line-height: 16px !important;
102
+ letter-spacing: 0.08px !important;
103
+ }
104
+
105
+ @include mobile {
106
+ font-weight: 500 !important;
107
+ font-size: 10px !important;
108
+ line-height: 16px !important;
109
+ letter-spacing: 0.19px !important;
110
+ }
111
+ }
112
+
113
+ .text-underline {
94
114
  font-family: 'Montserrat', sans-serif !important;
95
115
  font-style: normal !important;
96
116
  font-weight: 500 !important;